实现批量自动部署Linux操作系统
实战描述:
xxx公司所服务的用户IT环境中有很多的Linux系统,品种也五花八门,有RHEL、Centos、OpenSUSE甚至还有测试环境使用的RockyLinux。当有大量的计算机需要同时安装操作系统需求的时候,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护,此时可以通过批量自动化安装来实现。
要想实现批量自动化安装Linux系统,需要有一台dhcpserver,通过DHCP服务负责给网络中的计算机分配IP地址,子网掩码及默认网关等必要的网络配置;也需要有tftp-server,负责远程传输文件;同时也需要负责搭建web应用,发布系统相关的镜像;最后,还需要PXE预启动执行环境,通过网络实现多个计算机批量部署,即静默方式或无应答式的自动批量部署。
接下来,我们查看如何具体实现。
实战环境:
一台RHEL7.x虚拟机作为部署环境,集成了dhcpserver服务、tftpserver服务,http服务以及PXE。需要注意的是,如果是vmware workstation环境下,需要关掉vmware dhcp的服务,开始->运行->services.msc。
具体实现:
修改主机名并编辑/etc/hosts文件实现IP与主机名对应
首先,修改主机名:
之后,编辑/etc/hosts文件,添加如下内容:
##关闭防火墙
通过systemd关闭并禁用firewalld防火墙。
安装syslinux、tftp、dhcp、http等软件包
配置dhcp主配置文件
dhcp的主配置文件名称是dhcpd.conf,然而在/etc/dhcp/目录下并没有这个文件。在dhcp安装好后,会有一个模板路径具体是在/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example。
看过了模板文件后,我们要做的就是参考模板文件配置成属于我们自己的dhcpd.conf,配置如下:
##配置tftp
修改/etc/xinetd.d/tftp这个配置文件,将disable由默认的yes改为no
复制PXE系统启动时所需要的文件至tftp发布目录/tftpboot
上传ISO或wget或vm里直接挂载
无论哪种方式进行挂载操作系统ISO,比如挂载到/mnt目录下,我们要把所有文件复制到Apache的默认website目录/var/www/html中。
最后再复制安装光盘的启动文件到相应目录。
创建PXE启动菜单
上述配置中ks文件是rhel7的自动安装的配置文件,10.60.100.101是PXE服务器的IP地址,随后运行如下命令创建Kickstart文件所需密文:
##自定义ks文件rhel7.cfg,并保存到/var/www/html目录
保存好所生成的密文将在下面的Kickstart文件中使用,至于自动应答文件,可自定义ks文件,并保存到/var/www/html目录。
启动相关服务
所有配置进行完毕,启动相关服务。
通过lsof命令查看端口号和服务对应状态。
结果:
通过vmware workstation新建虚拟机选择默认从网络开启,会看到pxe成功引导了操作系统,剩下的就交给kickstart实现自动化静默安装就好。