如何使用Kickstart自动批量安装Linux客户端(CentOS)

来自YTYZX有图有真相的百科
跳转至: 导航搜索

以下示例为通过网络调用Kickstart配置文件进行快速部署安装(无人值守安装)Linux(本例中为CentOS6)。基本原理为使用工作于Client/Server模式下Intel公司PXE(Preboot eXecution Environment详情请点击维基百科),通过网络下载系统镜像并安装。在启动过程中,终端请求服务器分配IP地址后,使用TFTP(Trivial File Transfer Protocol)协议下载软件包到本机内存中执行,并根据预先配置文件(本例中为client01.cfg)完成终端系统安装及设置。

服务器(虚拟机)配置如下:
域名:    test.com
操作系统:CentOS 6(2.6.32-504.e16.x86_64)
主机名:  osdis.test.com
IP地址:  192.168.162.10
子网掩码:255.255.255.0(24)
网关:    192.168.162.2
DNS:     192.168.1.1

查看基本配置

1.PXE基本原理如下。

PXE.png

2.输入“ifconfig”查看服务器IP配置。

Kickstart1.png

安装及配置软件

3.输入“yum -y install httpd”安装Apache。

Kickstart2.png

4.提示已经安装完毕。

Kickstart3.png

5.输入“chkconfig --level 35 httpd on”设置Apache开机时以35模式自动启动。

Kickstart4.png

6.输入“service httpd start”启动Apache。

Kickstart5.png

7.输入“yum -y install tftp-server”安装tftp。

Kickstart6.png

8.提示已经安装完毕。

Kickstart7.png

9.输入“vi /etc/xinetd.d/tftp”编辑。

Kickstart8.png

10.注意下图中“server_args     = -s /var/lib/tftpboot”在CentOS不同版本中的区别。

Kickstart9.png

11.按“i”进入编辑状态,修改“disable”后的值为“no(默认为yes)”,确认无误后按“ESC”,并输入“:x”保存退出。

Kickstart10.png

12.输入“/etc/init.d/xinetd start”启动tftp。

Kickstart11.png

13.输入“chkconfig --level 35 xinetd on”并按回车键确定,确保开机自动启动tftp.

Kickstart12.png

14.输入“yum -y install dhcp”安装DHCP。

Kickstart13.png

15.提示已经安装完毕。

Kickstart14.png

16.输入“cp -f /usr/share/doc/dhcp-4.11/dhcpd.conf.sample /etc/dhcp/dhcpd.conf”复制默认配置。
   提示是否覆盖时输入“y”并按回车键确定。

Kickstart15.png

17.输入“vi /etc/dhcp/dhcpd.conf”编辑配置文件。

Kickstart16.png

18.修改下图蓝色框内部分为自己的配置。

Kickstart17.png

19.一般内网建议设置动态DNS为none。

Kickstart18.png

20.设置网络配置(中括号内为局部配置,冲突时优先级高于全局配置)。
   注意:每一行需用英文分号;结尾。

Kickstart19.png

21.filename设置为"pxelinux.0",next-server设置为你的服务器地址(本例中为192.168.162.10),其他租约时间等默认即可,确认无误后输入“:x”保存退出。

Kickstart20.png

22.输入“service dhcpd start”启动DHCP服务。
   注意:如有故障请在/var/log/message查看日志文件。

Kickstart21.png

23.输入“chkconfig --level 35 dhcpd on”设置为开机以35模式启动DHCP。

Kickstart22.png

复制文件

24.确保服务器连接正确的镜像(本例中为CentOS的完整镜像)。

Kickstart23.png

25.输入“mkdir /mnt/OS”在/mnt下新建一个名为OS的文件夹(注意大小写)。

Kickstart24.png

26.输入“mount /dev/cdrom /mnt/OS”将镜像挂载到OS目录下。

Kickstart25.png

27.输入“cp -r /mnt/OS/ /var/www/html/”将镜像所有文件及文件夹复制到html目录下。

Kickstart26.png

28.输入“cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/”将pxelinux.0(启动镜像文件)复制到tftpboot目录下。

Kickstart27.png

29.输入“cp /var/www/html/OS/images/pxeboot/initrd.img /var/lib/tftpboot”将initrd.img复制到tftpboot目录下。
   注意:CentOS 5的路径可能不同。

Kickstart28.png

30.输入“cp /var/www/html/OS/images/pxeboot/vmlinuz /var/lib/tftpboot/”将vmlinuz复制到tftpboot目录下。
   注意:CentOS 5的路径可能不同。

Kickstart29.png

31.输入“cp /var/www/html/OS/isolinux/*.msg /var/lib/tftpboot”将所有msg文件复制到tftpboot目录下。
   注意:CentOS 5的路径可能不同。

Kickstart30.png

32.输入“mkdir /var/lib/tftpboot/pxelinux.cfg”新建名为pxelinux.cfg的文件夹。
   注意:CentOS 5的路径可能不同。

Kickstart31.png

33.输入“cp /var/www/html/OS/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default”复制isolinux.cfg文件到pxelinux.cfg目录下并重命名为default。
   注意:CentOS 5的路径可能不同。

Kickstart32.png

34.输入“vi /var/lib/tftpboot/pxelinux.cfg/default”编辑default文件。
   注意:CentOS 5的路径可能不同。

Kickstart33.png

35.编辑结果如下,确认无误后输入“:x!”强制保存退出。
   注意:default vesa行表示需要在安装时手动输入ks文件文件,以方便选择不同ks文件。
         如修改为default linux则会自动调用默认ks文件进行安装。

Kickstart34.png

安装及配置Kickstart配置程序

36.输入“yum -y install system-config-kickstart”安装。

Kickstart35.png

37.提示已经安装完毕。

Kickstart36.png

38.输入“startx”并按回车键确定,转到图形界面。

Kickstart37.png

39.在桌面空白处点击鼠标右键并选择“Open in Terminal”打开命令行。

Kickstart38.png

40.输入“system-config-kickstart”启动Kickstart配置程序。

Kickstart39.png

41.选择“Basic Configuration”,并在右侧根据您的需求进行设置。
   注意:不建议取消“Encrypt root password(加密根密码)”。

Kickstart40.png

42.选择“Installation Method”,在右侧选择“HTTP”并输入服务器IP地址及路径。

Kickstart41.png

43.选择“Partition Information”,在右侧根据您的需求进行选择,最后点击“Add”进行分区。

Kickstart42.png

44.手动分区结果如下。

Kickstart43.png

45.选择“Network Configuration”,在右侧点击“Add Network Device”,在弹出窗口“Network Device”中输入“eth0”,
   在“Network Type”中选择“Static IP”并输入静态IP信息,确认无误后点击“OK”确定。

Kickstart45.png

46.选择“Firewall Configuration”并在右侧根据您的需求进行设置。

Kickstart46.png

47.选择“Display Configuration”并在右侧根据您的需求进行设置。本例中不安装图形界面并取消设置向导。

Kickstart46.png

48.选择“Package Selection”并在右侧根据您的需求进行设置。

Kickstart48.png

49.确认所有设置无误后点击右上角“File”并选择“Save”进行保存。

Kickstart49.png

50.点击“Save in folder”后面的图标并选择保存到/var/www/html/client01.cfg。

Kickstart50.png

安装客户端

51.设置客户端为网络启动。
   注意:不同BIOS可能设置有区别。

Kickstart51.png

52.客户端已从DHCP服务器获取IP地址(本例中为192.168.162.100)。

Kickstart52.png

53.提示“Could not find kernel image: vesamenu.c32”,这是因为在default文件里面设置为“default vesa”,
   以便有存在多个ks文件时可以手动输入选择不同ks文件。

Kickstart53.png

54.在“boot:”后输入“linux ks=http://192.168.162.10/client01.cfg”,如存在多个ks文件时直接修改“client01.cfg”为对应文件名。

Kickstart54.png

55.客户端根据ks文件配置开始安装系统。

Kickstart55.png

56.系统安装完毕并自动重启。

Kickstart56.png

57.设置客户端从硬盘启动并按“F10”保持退出。

Kickstart44.png

58.客户端系统安装完毕,输入ks文件里设置的密码登录即可。

Kickstart57.png

59.输入“ifconfig”查看网络配置,结果符合“client01.cfg”里面的设置。

Kickstart58.png

60.如需所有客户端使用相同配置进行全自动安装(无应答安装或无人值守安装),则输入“vi /var/lib/tftpboot/pxelinux.cfg/default”编辑default文件。

Kickstart33.png

61.按“i”键进入编辑状态,并修改“default vesa”为“default linux”,并输入“:x!”强制保存退出。

Kickstart59.png

62.在Kickstart配置程序里将“Network Configuration”将网卡设置为从DHCP获取动态IP地址,从而防止IP冲突。

Kickstart60.png

63.启动客户端安装将自动调用“client01.cfg”进行无应答安装。
   注意:安装完毕将自动重启,请将BIOS设置为从硬盘启动,否则将重复安装。

Kickstart61.png

故障

64.输入“system-config-kickstart”如一直出现如下画面,则需保证服务器可以连接上互联网。

Kickstart62.png

65.启动客户端安装出现如下画面,可正常从DHCP服务器获取动态IP地址,但提示“PXE-E32: TFTP open timeout”。

Kickstart63.png

66.在服务器端输入“service iptables stop”暂时关闭防火墙,重新进行客户端安装。

Kickstart64.png

67.如需永久关闭防火墙(不建议),则在服务器端输入“chkconfig iptables off”并按回车键确定。

Kickstart65.png

68.建议输入“iptables -I INPUT -p udp --dport 69 -j ACCEPT”并按回车键打开69端口。

Kickstart66.png

69.输入“service iptables save”并按回车键保存设置。

Kickstart67.png

70.输入“service iptables restart”重启防火墙,重新进行客户端安装。

Kickstart68.png

71.如出现“Error downloading kickstart file”错误,如下图所示。
   Unable to download the kickstart file. Please modify the kickstart parameter below or press Cancel to proceed
   as an interactive installtion.

Kickstart69.png

72.输入“iptables -I INPUT -p tcp --dport 80 -j ACCEPT”并按回车键打开80端口。

Kickstart70.png

73.输入“service iptables save”并按回车键保存设置。

Kickstart67.png

74.输入“service iptables restart”重启防火墙,重新进行客户端安装。

Kickstart68.png