每位网络技术从业者都应该被安装系统折磨过,安装中总是会遇到各种各样的奇葩问题,今天为大家发福利了,无人值守安装方案让你从痛苦的安装过程中彻底解放出来!!
无人值守安装是通过网络引导系统的方法实现,可以不必从硬盘、U盘或者CD-ROM光盘进行引导,而是完全通过网络来引导一台计算机。这对于安装来说很方便,因为它意味着你可以坐在桌子旁边,不必走到机器那里插入光盘或者U盘,就可以从网络上引导位于别处的一台机器。
PXE的作用就像是在网卡上ROM里的一小小操作系统,它通过一个标准API把自已的网络引导功能提供给系统的BIOS,就可以通过网络启动Linux。
PXE网络引导过程:一台主机广播一个设置了PXE选项的DHCP来发出请求,然后一台DHCP服务器用一个包含有PXE选项的DHCP包来响应它(引导服务器的IP地址和引导文件的名字)。客户机通过TFTP方式下载它的引导文件,然后执行这个引导文件。
linux用于执行自动安装的工具叫做kickstart,由system-config-kickstart工具生成kickstart的配置文件ks.cfg。
环境:两台计算机(实验时可以用虚拟机模拟),一台作为服务端,另一台作为被安装端,设置启动方式为网络引导。
方法工具:FTP+TFTP+DHCP+Kickstart+PXE
一.安装需要的服务和修改相应配置文件
1.1 用yum来安装所需要的软件包,先搭建yum光盘源
PS:这里使用光盘源,使用网络源也可以
[root@test1 ~]# mount /dev/cdrom /mnt
在/etc/yum.repos.d目录下创建一个以.repo结尾的文件:
[root@test1 ~]# vi /etc/yum.repos.d/serverl.repo
配置内容如下:
1.2 安装ftp服务以设置为开机自动启动
[root@test1 ~]# yum install vsftpd –y
[root@test1 ~]# /etc/init.d/vsftpd start
[root@test1 ~]# chkconfig vsftpd on
1.3 安装TFTP,修改tftp配置文件
[root@test1 ~]# yum install tftp –y
[root@test1 ~]# yum install tftp-server –y
修改配置文件里面的13,14行
接着重新启动xinetd服务,然后查看服务端口是否打开。
[root@test1 ~]# /etc/init.d/xinetd restart
TFTP服务正常启动,Xinetd服务本来就是开机启动的,所以这里我们不再需要设置。
1.4 安装dhcp,修改配置文件
[root@test1 ~]# yum install dhcp –y
第9,10行是网络引导需要的配置,必须要有的。
接着启动DHCP,设置为开机启动
[root@test1 ~]# /etc/init.d/dhcpd start
[root@test1 ~]# chkconfig dhcpd on
二.配置Kickstart
[root@test1 ~]# mkdir /tftpboot
[root@test1 ~]# mkdir /tftpboot/pxelinux.cfg
[root@test1 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
如果找不到syslinux目录,需要安装system-config-kickstart.noarch
yum install system-config-kickstart.noarch –y
[root@test1 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@test1 ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/
[root@test1 ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/
[root@test1 ~]# chmod 644 /tftpboot/pxelinux.cfg/default
然后修改/tftpboot/pxelinux.cfg/default的配置文件。
文件里面需要修改两行,修改第1行,后面的linux意思是寻找下面18行的label linux,然后修改下22行(即在后面添加ks=ftp://192.168.10.1/ks.cfg)。第22行的意思是使安装程序通过FTP服务器访问kickstart文件。
配置文件修改完了,要开始自动安装,安装程序必须能访问kickstart文件,有多种方法可访问kickstart文件,其中最常用的一种方法是通过网络服务器进行,例如:ftp服务器、WEB服务器或NFS服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。
使安装程序指向kickstart文件的书写格式如下:
ks=ftp://server/dir/file 如:ks=ftp://ftp服务器IP/ks.cfg
ks=http://server/dir/file 如:ks=http://http服务器IP/ks.cfg
ks=nfs:server:/dir/file 如:ks=nfs:nfs服务器IP:/var/ftp/pub/ks.cfg
ks=hd:device:/dir/file 如:ks=hd:sdb1:/kickstar-files/ks.cfg
ks=cdrom:/dir/file 如:ks=cdrom:/kickstart-files/ks.cfg
以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件,接下来我们制作kickstart的无人值守安装文件。
接下来我们打开终端输入system-config-kickstart弹出来界面。
设置默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法
配置ftp服务器的安装方法,选择执行新安装,然后点击引导装载程序选项
参考上面的选择
布局这里,自己设置下分区大小
网络这里,默认没有,点击添加网络,设备名称为eth0,网络类型为dhcp
防火墙和selinux根据自己需求选择开启或者禁用
在这里勾选一些包,默认可能没有勾选桌面。根据自己需求勾选,后面剩余的两项不需要配置
然后点击左上角的文件选择保存,选择保存的路径,然后复制ks.cfg文件到/var/ftp目录下
[root@test1 ~]#cp ks.cfg /var/ftp
注:ks.cfg就是无人值守安装时要用的Kickstart文件,该文件可以手动进行编辑,如果手动编辑Kickstart文件,则使用手机号码买号地图ksvalidator来验证该文件使用正确的关键字,但却无法验证URL路径、各个数据包或组等书写错误,Ksvalidator是system-config-kickstart数据包的一部分,因此必须要安装该软件包
还记的/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://192.168.10.1/ks.cfg因此必须执行上面的一步
重新挂载安装光盘到/var/ftp/pub目录下,开始执行另一台机器的无人值守安装:
[root@test1 ~]#umount /dev/cdrom //原来是挂载到/mnt下的
[root@test1 ~]#mount /dev/cdrom /var/ftp/pub
注意:
建议关闭防火墙和selinux,如果没有关闭的话,tftp服务会有问题。不信可以试试。
设置防火墙
#iptables -F
#service iptables save
关毕selinux功能:有如下两种方法可以实现
- 永久关闭selinux功能:修改/etc/sysconfig/selinux文件,将SELINUX=enforcing改为disable,要重启系统才生效
- 临时关闭selinux功能:#setenforce 0 不需要重启系统
若使用vmware虚拟机,要把vmware虚拟机软件所提供的DHCP功能停掉
接下来启动你要安装的机器了(设置为网络引导安装,你就可以休息下,等待自己安装完成)