码迷,mamicode.com
首页 > 其他好文 > 详细

pxe装机方式

时间:2016-02-04 19:14:46      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:pxe   批量安装操作系统   

一、概念与原理
什么是PXE
    严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment,直译为启动前的执行环境)协议使计算机可以通过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
什么是KickStart
    KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文 件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根 据ks.cfg中设置的重启选项来重启系统,并结束安装。


二,安装环境
安装pxe+kickstart批量部署系统
1  dhcp服务,这个是用来分发ip,裸机用来和pxe引导机通信获取文件
2  tftp 服务器  用来和裸机传输文件
3  http服务、ftp或nfs共享文件访问
4  ks.cfg文件 用于安装过程中交互部分自动分匹配系统配置
5  syslinux服务提供pxelinux.0文件引导
6  一台支持pxe协议的网卡主机
7  关闭selinux及iptables防火墙

安装步骤

确认操作系统版本
uname -r
2.6.32-504.el6.x86_64
[root@localhost ~]# cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m



使用yum源安装所需软件
挂载光盘镜像:mount /dev/cdrom /mnt/
配置本地yum源
[root@localhost ] # cat /etc/yum.repo/yum.repo
[yum]
name=local yum
baseurl=file:///mnt
enabled=1
gpgcheck=0



配置静态ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.103
NETMASK=255.255.255.0
GATEWAY=192.168.1.1





安装dhcp服务
[root@localhost ~] # yum -y install dhcp
配置dhcp服务,使其能够为其他服务器通过ip地址
配置192.168.1.0分发网段,,子网255.255.255.0,配置项后每行必须以;结尾

subnet 192.168.1.0 netmask 255.255.255.0  {
range 192.168.1 10 192.168.1.50;
default-lease-time 6000;
max-lease-time 72000;
next-server 192.168.1.103;
filename "/pxelinux.0";
}

[hide]

安装httpd服务(本文通过http的方式提供服务)


[root@localhost ~] # yum -y insatll httpd




  此处只是让http能够提供服务,不做任何配置
  将httpd设置为开机自动启动
[root@localhost ~]# chkcpnfig httpd on

安装tftp-server服务端
yum -y install tftp-server xinted
xinted是为tftp提供的守护进程,将tftp及xinted设置为开机自启动
chkconfig tftp on
chkconfig xinted on     #添加开机自启动



修改TFTP的配置文件
vim /etc/xinetd.d/tftp     // 内容如下:
service tftp

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot

        disable                 = no   // 只需要更改的这一部分

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}



开启TFTP服务
tftp是由xinted来启动的,
修改完后要记得service xinetd restart


重新创建目录挂载光盘,用于安装系统使用,提供安装系统的关键文件及软件包
mkdir /var/www/html/Centos6/
mount --bind   /mnt/ /var/www/html/Centos6/




启动http服务
/etc/init.d/httpd start



安装syslinux,此服务为pxe提供pxelinux.0文件
yum -y install syslinux

复制pxe所需系统内核引导文件到tftp目录下
[root@localhost /]# cp /mnt/images/pxeboot/vmlinuz  /var/lib/tftpboot/
[root@localhost /]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@localhost /]# cp /mnt/isolinux/boot.msg /var/lib/tftpboot/
[root@localhost /]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
[root@localhost /]# cp /mnt/isolinux/splash.jpg /var/lib/tftpboot/
[root@localhost /]# cp /usr/share/sysliux/pxelinux.0 /var/lib/tftpboot/
[root@localhost /]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost /]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default


修改/var/lib/tftpboot/pxelinux.cfg/default
定义了开机提示,包括开机界面
指定读取ks.cfg文件方法:
append initrd=initrd.img ks=http://192.168.1.103/ks.cfg


提供kictstart文件
kictstart文件生成有两种方式
1,直接复制/root/anaconda-ks.cfg模板,使用vim进行编辑配置
2,使用system-config-kiskstart来生成,建议使用/root/anaconda-ks.cfg 模板生成
本文以第一种方式生成,修改自己所需要的参数

使用md5加密设置管理员密码


将生成的ks.cfg文件复制到/var/www/html下
其内容如下,根据需求修改
bootloader --location=mbr
clearpart --none
graphical
firewall --disabled
firstboot --disabled
keyboard us
lang en_US
logging  --level=info
url --url=http://10.28.79.201/Centos6
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
auth --useshadow --enablemd5  
rootpw --iscrypted xiang1995
selinux --disabled
timezone --isUtc Asia/Shanghai
install
network --bootproto=dhcp device=eth0 --onboot=on
#system bootloader configuration
bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"
#clear the master boot record
zerombr
clearpart --all --initlabel
part /boot --fstype="ext4" --size=200
part swap --size=2048
part / --fstype="ext4" --grow --size=200

%packages
@base
@core
@debugging
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@graphical-admin-tools
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@network-file-system-client
@office-suite
@print-client
@remote-desktop-clients
@server-platform
@server-policy
@workstation-policy
@x11
mtools
pax
oddjob
sgpio
device-mapper-persistent-data
abrt-gui
samba-winbind
certmonger
pam_krb5
krb5-workstation
libXmu
%end
[/hide]

启动后系统即可自动安装完成,无需干涉


注意:引导安装配置时应和网络设备的网段一致
修改linux服务的四处ip配置
1、网卡配置静态ip
2、配置dhcp分发的ip段、与pxe机同一ip子网
3、修改/var/tftpboot/pxelinux.cfg/default/中的ks文件位置
如:

append initrd=initrd.img ks=http://192.168.1.103/ks.cfg

4、修改ks.cfg文件中指定安装镜像的位置(光盘挂载目录)
如:

url --url=http://10.28.79.201/Centos6


关于ks文件MD5加密方式


linux kickstart之中root的密码可以使用明文,也可以使用加密过的值
rootpw –iscrypted $1$BYSimLw0$I515yLiKzudlwkIskBqQE1

就是读取加密后的值,但是这个值是怎么生成的呢?
这与linux系统的密码shadow一样,生成方法如下:
perl -e ‘print crypt("123456",q($1$BYSimLw0)),"\n"‘
## 其中123456为要给用户设置的密码,$1$BYSimLw0字符串是自定义字符串,shadow里一般用$1$后面跟8个字符这种格式。
生成的密码串样式如下:
$1$BYSimLw0$I515yLiKzudlwkIskBqQE1

中间有个$,前面算salt,后面的加密值,合在一起叫hash
crypt 本身默认用des算法
如果salt以$1$开头就使用md5算法

des算法命令如下:
perl -e ‘print crypt ("123456","/g"),"\n"‘
生成的密码串样式如下:
/guLSXipk3QEU

综上,如果你想设置自定义密码为"mypass-123"
则这样可以得到:
perl -e ‘print crypt("mypass-123",q($1$BYSimiLe)),"\n"‘
你的密码为: $1$BYSimiLe$LttB1n6yMsXP7ipq0QFQI0

这里的$1$BYSimiLe 是自定义字符串。


原帖内容:http://www.apelearn.com/bbs/thread-731-1-1.html


本文出自 “linux窝” 博客,请务必保留此出处http://xiangcc.blog.51cto.com/10201823/1741110

pxe装机方式

标签:pxe   批量安装操作系统   

原文地址:http://xiangcc.blog.51cto.com/10201823/1741110

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!