Linux学习笔记--26(使用PXE+Kickstart无人值守安装服务)

无人值守安装系统

光盘镜像安装只适用少量的服务器安装,如果上百台就不行了。
需要用PXE+TFTP+FTP+DHCP+Kickstart服务搭建一个无人值守的安装系统。
无人值守安装系统的工作流程图:
在这里插入图片描述

PXE(Preboot eXecute Environment,预启动执行环境)由inter公司开发,让计算机通过网络来启动操作系统(前提是网卡支持PXE技术),主要用于无人值守安装系统中引导客户端主机安装Linux操作系统。
Kickstart是一种无人值守的安装方式,原理是预先把手工填写的参数保存成一个ks.cfg文件,当安装过程中需填写参数时则自动匹配Kickstart生成的文件。
因客户端主机没有完整的操作系统,就不能完成FTP协议的验证,则需要用TFTP协议帮助客户端获取引导及驱动文件。
vfstpd服务程序用于将完整的系统安装镜像通过网络传输给客户端。只要能将系统安装镜像成功传输给客户端即可,所以也可以用httpd来替代vsftpd服务程序。

部署相关服务程序

无人值守安装系统,那么需要网络,文件传输,引导驱动程序。
所以会用到以下服务
在这里插入图片描述

配置DHCP服务程序

我们需要先把虚拟机本身自带的dhcp给取消掉。
在这里插入图片描述
配置yum后安装dhcp

# yum install dhcp-server

这里使用配置文件与前面的DHCP章节中配置文件有两个主要区别:
允许了BOOTP引导程序协议,让局域网内暂时没有操作系统的主机也能获取静态IP地址;
在配置文件的最下面加载了引导驱动文件pxelinux.0,目的是让客户端主机获取IP地址后主动获取引导驱动文件,自行进入下一步安装过程。

# vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 192.168.153.0 netmask 255.255.255.0 {
    option subnet-mask         255.255.255.255.0;
	option domain-name-servers    192.168.153.10;
	range dynamic-bootp 192.168.153.100 192.168.153.200;
	default-lease-time    21600;
	max-lease-time        43200;
	next-server           192.168.153.10;
	filename              "pxelinux.0";
}
# systemctl restart dhcpd
# systemctl enable dhcpd

在这里插入图片描述

配置TFTP服务程序

TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取所需要的文件资源。配置TFTP服务程序为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,在通过vsftpd服务程序将完整的光盘镜像文件传输过去。

# yum intsall tftp-server xinetd

TFTP的运行和关闭由xinetd网络守护进程服务来管理的。xinetd服务会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。
需要用户根据示例文件(/usr/share/doc/xinetd/sample.conf)自行创建。
开启TFTP程序,只需改xinetd服务配置文件disable 为 no即可。注意防火墙策略允许69端口(TFTP服务使用的是UDP协议占用端口号为69)。

# vim /etc/xinetd.d/tftp
service tftp
{
socket_type        = dgram
protocol           = udp
wait               = yes
user               = root
server             = /user/sbin/in.tftpd
server_args        = -s var/lib/tftpboot
disable            = no
per_source         = 11
cps                = 100 2
flags              = Ipv4
}
# systemctl restart xinetd
# systemctl enable xinetd
# firewall-cmd --permanent --add-port=69/udp
# firewall-cmd --reload

在这里插入图片描述

配置SYSLinux服务程序

SYSLinux是一个用于提供引导加载的服务程序。在安装SYSLinux服务程序包后,/usr/share/syslinux目录中会出现很多引导文件。

# yum install syslinux

首先把SYSLinux提供的引导文件复制到TFTP服务程序默认目录中,即前面的pxelinux.0。
其次复制光盘镜像中自带的一些引导文件到TFTP服务程序默认目录中。

# cd /var/lib/tftpboot
# cp /usr/share/syslinux/pxelinux.0 .
# cp /meida/cdrom/images/pxeboot/* .
# cp /media/cdrom/isolinux/* .

然后在TFTP服务程序目录中新建pxelinux.cfg目录。将系统光盘中开机选项菜单复制到此目录中,并命名为default。这个default文件就是开机是的选项菜单。

# mkdir pexlinux.cfg
# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

修改default文件,第1行的default参数修改为linux。对应的linux选项大约在64行,将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址及Kickstart应答文件的获取路径。

# vim /var/lib/tftpboot/pxelinux.cfg/default
1 default linux
......中间省略......
64 
append initrd=initrd.img inst.stage2=ftp://192.168.153.10 ks=ftp://192.168.153.10/pub/ks.cfg quiet

在这里插入图片描述
在这里插入图片描述

配置vsftpd服务程序

如果用httpd服务程序来提供web网站访问方式,web网站服务来提供光盘镜像,上面的配置文件中的光盘镜像获取网址和Kickstart应答文件获取网址修改一下。
RHEL 8系统版本的vsftpd服务默认不允许匿名公开访问模式,因此需要手动进行开启。
下面来配置vsftpd服务:

# yum install vsftpd
# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES

# systemctl restart vsftpd
# systemctl enabel vsftpd

在这里插入图片描述

把光盘镜像挂载的目录/media/cdrom中的文件全部复制的到vsftpd服务程序的工作目录中。
同时防火墙策略写入使FTP协议永久生效,在SELinux中放行FTP传输。

# cp -r /media/cdrom/* /var/ftp
# firewall-cmd --permanent --add-service=ftp
# firewall-cmd --reload
# setsebool -P ftpd_connect_all_unreserved=on

创建KickStart应答文件

Kickstart其实不是一个服务程序,而是一个应答文件。包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,实现无人值守安装系统。
在root管理员的家目录中有个名为anaconda-ks.cfg就是应答文件。
将这个应答文件复制到vsftp服务程序的工作目录中(开机选择菜单配置文件中已定义了该文件的获取路径,就是vsftpd服务程序目录中的pub子目录中)。
chmod命令设置该文件权限,让所有人都有可读权限,保证客户端主机能获取应答文件及里面内容。

# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
# chmod +r /var/ftp/pub/ks.cfg

编辑应答文件:
第8行的软件仓库,应改为由FTP服务器提供的网络路径。
第10行的安装源,也需要由CDROM改为网络安装源。
第17行的网卡信息,一定要让网卡默认处于DHCP模式,否则在几十、上百台主机同时被创建出来后,会因为IP地址相互冲突而导致后续无法管理。

# vim /var/ftp/pub/ks.cfg
  8 repo --name="AppStream" --baseurl=ftp://192.168.10.10/AppStream
  9 # Use CDROM installation media
 10 url --url=ftp://192.168.10.10/BaseOS
 17 network  --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --activate

如果觉得默认的应答文件参数较少,可以通过安装system-config-kickstart软件包。这是一款图形化的Kickstart应答文件生成工具,可根据自己需求自定义应答文件,然后将生成的文件放到/var/ftp/pub目录中并改名为ks.cfg即可。

自动部署客户端主机

在虚拟机中安装,注意网卡设置为“仅主机模式”,生产环境直接接通服务器和客户端主机之间的网线,启动客户端主机即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击开启此虚拟机,就可以进行自动安装了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为了避免法律风险,红帽公司对于许可界面还不允许用应答文件自动完成,需要人工单击“I accept the license agreement”复选框后方可继续安装,我们通过网络安装的客户端就搞定了。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值