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服务器
2.TFTP服务器
3.httpd服务器或者ftp服务器或者nfs服务器等能提供文件访问的服务器
4.ks.cfg文件
5.syslinux服务提供的pxelinux.0文件
6.光盘镜像中的所有文件
7.一台带有支持pxe协议的网卡的主机
8.为确保实验可用性,请将防火墙和selinux关闭
二、安装步骤
1、系统版本
[root@c3 ~]# uname -r 2.6.32-431.el6.x86_64
[root@c3 ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m
2、配置网络环境以及yum源
yum源的配置文件 #cd /etc/yum.repos.d #vim media.repo [media] name= Media baseurl=file:///mnt gpgcheck=0 enabled=1
[root@c3 ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:08:9B:54 inet addr:172.16.13.8 Bcast:172.16.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe08:9b54/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:83140 errors:0 dropped:0 overruns:0 frame:0 TX packets:32859 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:32207129 (30.7 MiB) TX bytes:18363709 (17.5 MiB)
3、安装DHCP服务
[root@c3 ~]# yum -y install dhcp [root@c3 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 提供dhcp配置文件
配置dhcp服务器,使其能够提供172.16.13.2-172.16.13.100的ip地址分配,子网掩码
为255.255.255.0
在/etc/dhcpd/dhcpd.conf中添加修改为以下内容
#######注意:每行后面一定要加分号,不然dhcpd服务启动不成功!
# vim /etc/dhcp/dhcpd.conf option domain-name "jungege.com"; option domain-name-servers 192.168.13.8; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.13.0 netmask 255.255.255.0 { range 192.168.13.2 192.168.13.100; option routers 192.168.13.8; } filename "pxelinux.0"; next-server 192.168.13.8; 注意:最重要的则为subnet的这段内容;
4、安装httpd服务
[root@c3 ~]# yum -y install httpd [root@c3 ~]# chkconfig httpd on
此处httpd只简单安装能够提供http协议即可,无需多余配置
5、安装tftp-server服务端
[root@c3 ~]# yum -y install tftp-server xinetd
xinetd是tftp服务提供守护进程,将xinetd和tftp都设置为开机启动
[root@c3 ~]# chkconfig xinetd on [root@c3 ~]# chkconfig tftp on
6、准备所需要的rpm包
将关盘重新挂载至/var/www/html/zxj目录下
# mkdir /var/www/html/zxj -pv # mount /dev/cdrom /var/www/html/zxj/
7、准备tftpboot下的文件
安装syslinux,此服务为pxe提供pxelinux.0文件
# yum -y install syslinux
复制pxe启动所需要的文件到tftp根目录下
# cp /var/www/html/zxj/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/ # cp /var/www/html/zxj/isolinux/{vesamenu.c32,splash.jpg} /var/lib/tftpboot/ # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # mkdir -pv /var/lib/tftp/pxelinux.cfg # cp /var/www/html/zxj/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改/var/lib/tftpboot/pxelinux.cfg/default
8、第一次测试,是否可以通过pxe安装系统
9、提供kickstart文件
kickstart文件的生成有两种方式
1)复制模板/root/anaconda-ks.cfg 而后使用vim编辑配置
2)使用system-config-kickstart命令来生成,建议使用/root/anaconda-ks.cfg模板来生成
此处我们先用system-config-kickstart命令来生成ks.cfg文件,关于第一种方式后续推出
打开kickstart图形界面配置工具
# yum -y install system-config-kickstart # system-config-kickstart 打开图形配置界面
选项配置
1)基本配置
2)选择安装方法
3)分区信息
4)保存ks.cfg配置到/var/www/html/ 目录下
注意:以上只配置了三个选项,其他的配置可以自定义选择,其中软件包的选择更是因人而异
[root@c3 ~]# ls /var/www/html ks.cfg zxj
10、配置PXE引导程序能够自动加载ks.cfg文件
修改/var/lib/tftpboot/pxelinux.cfg的default文件
此时,需要提供的文件已经齐全我们来启动服务
# service httpd start # service xinetd start # service dhcpd start
11、给其他机器安装系统
PXE+Kickstart实现了自动化安装系统!
PS:水平有限,如有不妥或者疑问请指出。