用PXE+Kickstart实现大批量自动安装系统,鸟哥的Linux私房菜有很详细的讲解 http://linux.vbird.org/linux_enterprise/0120installation.php 。
本文讲述如何用虚拟机搭建实验环境,以自动安装系统。
Contents
实验环境
实验需要建立两台虚拟机,一台用作提供安装文件的服务器(暂称它为Server),一台空白的用来尝试自动安装系统的机器(暂时称它为VM)。
Server中要安装(提供) DHCP, TFTP, NFS服务;VM开启PXE引导即可;
配置Server
安装DHCP
root登录进入Server,用yum安装DHCP服务。
# yum install dhcp
配置DHCP
1. 查看Server自身的IP地址
# ifconfig
查得Server的IP地址是 192.168.122.162
2. 配置Sever自身的IP地址,使之恒为 192.168.122.162
HWADDR和UUID不要改.
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=52:54:00:2C:3A:99 TYPE=Ethernet UUID=6895c359-d0e4-4f8c-9b92-7b96de7b64c3 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.122.162
3. 配置DHCP服务
在dhcpd.conf文件中加上以下几行.
# vim /etc/dhcp/dhcpd.conf next-server 192.168.122.162; subnet 192.168.122.0 netmask 255.255.255.0{ filename "/pxelinux.0"; range 192.168.122.111 192.168.122.155; }
配置TFTP
安装TFTP服务
# yum install tftp-server
启动TFTP服务
vim /etc/xinetd.d/tftp
将disable = yes 改成 disable = no
保存.
# service xinetd restart
共享TFTP文件
# yum install syslinux # rpm -ql syslinux | grep pxe # cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ # cd /var/lib/tftpboot/ # cp /mnt/image/pxeboot/* . # mkdir pxelinux.cfg # cd pxelinux.cfg/ # vim default default linux label linux kernel vmlinuz append initrd=initrd.img ks=nfs:192.168.122.162:/ks/1010.cfg
保存,禁用防火墙规则.(切记!否则TFTP访问不了。)
# iptables -F # setenforce 0
NFS共享文件
配置完DHCP和TFTP,接下来配置Server要共享哪些目录.
# vim /etc/exports /mnt *(rw,sync) /ks *(rw,sync)
上面配置的格式是: 目录名 哪些IP可以访问
配置Kickstart
要实现联网自动安装系统,还需要配置Kickstart。
安装Kickstart程序.system-config-kickstart (在支持图形界面的机器上安装)
# yum install system-config-kickstart
启动system-config-kickstart
# system-config-kickstart
配置完成后保存文件到server的 /ks/1010.cfg
最后确认
server上启用DHCP,TFTP,NFS服务
# service nfs restart # service dhcpd restart # service xinetd restart
主机上禁用dnsmasq服务
在主机上执行以下命令,关闭dnsmasq服务;
主机上如果有dnsmasq服务,将为影响server上dhcp的正常工作。
# service dnsmasq stop
确认dnsmasq是否真正关闭;
# service dnsmasq status dnsmasq (pid 2782) is running...
这里提示它还在运行,没有真正关闭。
手动杀掉它的进程。
# kill -9 2782 # service dnsmasq status dnsmasq is stopped
好,一切就绪。
测试自动安装
补充
通过修改ks配置文件,在kickstart中选择要安装的rpm包。
在ks.cfg中加入
%packages --default procmail sendmail sendmail-cf telnet ksh ftp lftp tftp-server vsftpd tftp %end