在实际工作中,可能会碰到一次上架数十、几百甚至上千台虚拟机或者物理机。一台台去安装操作系统太浪费时间,所以可以使用PXE自动化安装操作系统。
一、PXE装机原理。
二、标准PXE安装系统。
1、所需服务:
TFTP:用以发送引导配置文件。
FTP:由于TFTP是使用UDP传输文件,是一种不可靠的传输方式,这里使用FTP服务传输系统安装过程中所需要的安装包。
DHCP:当未安装系统的虚拟机开机时,会请求一个IP地址,用于建立网络连接,传输文件使用,而DHCP服务就会分配其一个IP地址。
syslinux:虽然镜像文件中带有pxelinux.0这样的一个文件,但是在这无法使用,所以需安装syslinux,使用它所携带的pxelinux.0文件。
system-config-kickstart:这个软件可以配置系统安装时的相关配置。保存完成后,会生成一个ks.cfg的文件,里面记录着系统自动安装时的配置。
2、安装过程。
2.1、系统最好安装图形化界面的,方便使用system-config-kickstart这个软件。
2.2、关闭SELinux
2.3、无要求可以关闭防火墙,并关闭开机启动。
[root@bogon ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
[root@bogon ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root@bogon ~]# chkconfig iptables off
2.4、安装相关软件
yum -y install dhcp vsftpd tftp tftp-server syslinux system-config-kickstart
2.5、挂载拷贝镜像文件到ftp目录下。
[root@bogon ~]# mkdir -p /mnt/cdrom
[root@bogon ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@bogon ~]# cd /var/ftp/pub/
[root@bogon pub]# mkdir centos6
[root@bogon pub]# chown ftp:ftp centos6/
[root@bogon pub]# cp -rf /mnt/cdrom/* centos6/
2.6、配置DHCP服务
[root@bogon ~]# vi /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
subnet 192.168.127.0 netmask 255.255.255.0 {
range 192.168.127.121 192.168.127.199;
option routers 192.168.127.2;
next-server 192.168.127.200;
filename "pxelinux.0";
}
#第一行指定IP地址段和子网掩码
#第二行是指定DHCP分配地址池(从121-199)
#第三行是指定网关
#第四行是指定TFTP服务器的地址(也就是PXE Server端的IP地址)
#第五行是指定PXE Clien访问PXE Server的那个文件
2.7、配置TFTP服务
[root@bogon ~]# vi /etc/xinetd.d/tftp
2.8、拷贝相关的配置文件
[root@bogon tftpboot]# pwd
/var/lib/tftpboot
[root@bogon tftpboot]# mkdir pxelinux.cfg
[root@bogon tftpboot]# cp /var/ftp/pub/centos6/isolinux/isolinux.cfg pxelinux.cfg/default
[root@bogon tftpboot]# ls pxelinux.cfg/
default
[root@bogon tftpboot]# chmod 644 pxelinux.cfg/default
[root@bogon tftpboot]# cp /var/ftp/pub/centos6/isolinux/* /var/lib/tftpboot/
[root@bogon ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
2.9、使用system-config-kickstart配置安装过程自动配置文件。
使用图形界面,配置方便。执行system-config-kickstart命令。可直接调出窗口。
可以看到这两个文件。
2.10、ks文件修改完成后,修改相关配置文件,使其可以在系统安装过程中读取调用这个文件。以实现自动安装配置。
[root@bogon ~]# cp ks6.cfg /var/ftp/pub/
[root@bogon ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
2.11、启动所需服务。
启动DHCP服务,并加入开机启动
[root@bogon ~]# service dhcpd restart
[root@bogon ~]# chkconfig dhcpd on
启动xinet服务,并加入开机启动
[root@bogon ~]# service xinetd restart
[root@bogon ~]# chkconfig xinetd on
启动vsftp服务,并加入开机启动
[root@bogon ~]# service vsftpd restart
[root@bogon ~]# chkconfig vsftpd on
2.12、测试
开机之后,全程不需要操作。自动安装完成。查看之前写的命令也被执行。