文章目录
- 第十七章 使用PXE+Kickstart无人值守安装服务
- 一、无人值守系统
- 1、无人值守安装系统的工作流程
- 2、PXE介绍
- 二、部署相关服务程序
- 1、临时关闭防火墙
- 2、配置DHCP服务程序
- (1)、安装dhcp服务程序
- (2)、编辑配置文件
- (3)、重启服务并设置开机自启动
- 3、配置TFTP服务程序
- (1)、安装TFTP服务程序
- (2)、编辑配置文件
- (3)、重启服务并设置开机自启动
- 4、配置SYSLinux服务程序
- (1)、安装syslinux服务程序
- (2)、挂载镜像
- (3)、复制引导文件
- (4)、复制开机选项菜单并命名为default
- (5)、编辑配置文件
- 5、配置VSftpd服务程序
- (1)、安装vsftpd服务程序
- (2)、编辑配置文件
- (3)、重启服务并设置开机自启动
- (4)、复制光盘镜像文件
- (5)、放行FTP传输连接的策略
- 6、创建KickStart应答文件
- (1)、复制应答文件并设置权限
- (2)、编辑配置文件
- 三、自动部署客户机
第十七章 使用PXE+Kickstart无人值守安装服务
一、无人值守系统
1、无人值守安装系统的工作流程
2、PXE介绍
PXE (Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,能够让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于在无人值守安装系统中引导客户端主机安装Linux操作系统。Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。
二、部署相关服务程序
1、临时关闭防火墙
[root@centos ~]# iptables -F
[root@centos ~]# systemctl stop firewalld.service
2、配置DHCP服务程序
(1)、安装dhcp服务程序
[root@centos ~]# yum install dhcp-server
上次元数据过期检查:2:52:12 前,执行于 2023年05月17日 星期三 15时51分08秒。
依赖关系解决。
===============================================================
软件包 架构 版本 仓库 大小
===============================================================
安装:
dhcp-server x86_64 12:4.3.6-45.el8 base 530 k
安装依赖关系:
bind-export-libs x86_64 32:9.11.26-6.el8 base 1.1 M
dhcp-common noarch 12:4.3.6-45.el8 base 207 k
dhcp-libs x86_64 12:4.3.6-45.el8 base 148 k
事务概要
===============================================================
安装 4 软件包
总下载:2.0 M
安装大小:4.6 M
确定吗?[y/N]: y
下载软件包:
(1/4): bind-export-libs-9.11.2 2.0 MB/s | 1.1 MB 00:00
(2/4): dhcp-server-4.3.6-45.el 1.7 MB/s | 530 kB 00:00
(3/4): dhcp-libs-4.3.6-45.el8. 151 kB/s | 148 kB 00:00
(4/4): dhcp-common-4.3.6-45.el 188 kB/s | 207 kB 00:01
---------------------------------------------------------------
总计 1.8 MB/s | 2.0 MB 00:01
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : dhcp-libs-12:4.3.6-45.el8.x86_64 1/4
安装 : dhcp-common-12:4.3.6-45.el8.noarch 2/4
安装 : bind-export-libs-32:9.11.26-6.el8.x86_64 3/4
运行脚本: bind-export-libs-32:9.11.26-6.el8.x86_64 3/4
运行脚本: dhcp-server-12:4.3.6-45.el8.x86_64 4/4
安装 : dhcp-server-12:4.3.6-45.el8.x86_64 4/4
运行脚本: dhcp-server-12:4.3.6-45.el8.x86_64 4/4
验证 : bind-export-libs-32:9.11.26-6.el8.x86_64 1/4
验证 : dhcp-common-12:4.3.6-45.el8.noarch 2/4
验证 : dhcp-libs-12:4.3.6-45.el8.x86_64 3/4
验证 : dhcp-server-12:4.3.6-45.el8.x86_64 4/4
已安装:
bind-export-libs-32:9.11.26-6.el8.x86_64
dhcp-common-12:4.3.6-45.el8.noarch
dhcp-libs-12:4.3.6-45.el8.x86_64
dhcp-server-12:4.3.6-45.el8.x86_64
完毕!
(2)、编辑配置文件
[root@centos ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.10.10;
range dynamic-bootp 192.168.10.100 192.168.10.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.10.10;
filename "pexlinux.0";
}
(3)、重启服务并设置开机自启动
[root@centos ~]# systemctl restart dhcpd && systemctl enable dhcpd
Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.
3、配置TFTP服务程序
(1)、安装TFTP服务程序
[root@centos ~]# yum install tftp-server xinetd
上次元数据过期检查:2:53:32 前,执行于 2023年05月17日 星期三 15时51分08秒。
依赖关系解决。
===============================================================
软件包 架构 版本 仓库 大小
===============================================================
安装:
tftp-server x86_64 5.2-24.el8 AppStream 50 k
xinetd x86_64 2:2.3.15-24.el8 AppStream 135 k
事务概要
===============================================================
安装 2 软件包
总下载:185 k
安装大小:447 k
确定吗?[y/N]: y
下载软件包:
(1/2): tftp-server-5.2-24.el8. 198 kB/s | 50 kB 00:00
(2/2): xinetd-2.3.15-24.el8.x8 498 kB/s | 135 kB 00:00
---------------------------------------------------------------
总计 675 kB/s | 185 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : xinetd-2:2.3.15-24.el8.x86_64 1/2
运行脚本: xinetd-2:2.3.15-24.el8.x86_64 1/2
安装 : tftp-server-5.2-24.el8.x86_64 2/2
运行脚本: tftp-server-5.2-24.el8.x86_64 2/2
验证 : tftp-server-5.2-24.el8.x86_64 1/2
验证 : xinetd-2:2.3.15-24.el8.x86_64 2/2
已安装:
tftp-server-5.2-24.el8.x86_64 xinetd-2:2.3.15-24.el8.x86_64
完毕!
(2)、编辑配置文件
[root@centos ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
(3)、重启服务并设置开机自启动
[root@centos ~]# systemctl restart xinetd.service && systemctl enable xinetd.service
4、配置SYSLinux服务程序
(1)、安装syslinux服务程序
[root@centos ~]# yum install syslinux
上次元数据过期检查:2:54:22 前,执行于 2023年05月17日 星期三 15时51分08秒。
依赖关系解决。
===============================================================
软件包 架构 版本 仓库 大小
===============================================================
安装:
syslinux x86_64 6.04-5.el8 base 578 k
安装依赖关系:
syslinux-nonlinux noarch 6.04-5.el8 base 554 k
事务概要
===============================================================
安装 2 软件包
总下载:1.1 M
安装大小:2.6 M
确定吗?[y/N]: y
下载软件包:
(1/2): syslinux-nonlinux-6.04- 2.0 MB/s | 554 kB 00:00
(2/2): syslinux-6.04-5.el8.x86 1.7 MB/s | 578 kB 00:00
---------------------------------------------------------------
总计 3.3 MB/s | 1.1 MB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : syslinux-nonlinux-6.04-5.el8.noarch 1/2
安装 : syslinux-6.04-5.el8.x86_64 2/2
运行脚本: syslinux-6.04-5.el8.x86_64 2/2
验证 : syslinux-6.04-5.el8.x86_64 1/2
验证 : syslinux-nonlinux-6.04-5.el8.noarch 2/2
已安装:
syslinux-6.04-5.el8.x86_64
syslinux-nonlinux-6.04-5.el8.noarch
完毕!
(2)、挂载镜像
[root@centos ~]# mkdir /media/cdrom
[root@centos ~]# mount /dev/sr0 /media/cdrom
(3)、复制引导文件
[root@centos ~]# vim 复制引导文件.sh
cp -r /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -r /media/cdrom/images/pxeboot/ /var/lib/tftpboot/
cp -r /media/cdrom/isolinux/ /var/lib/tftpboot/
[root@centos ~]# chmod 777 复制引导文件.sh
[root@centos ~]# ./复制引导文件.sh
(4)、复制开机选项菜单并命名为default
[root@centos ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@centos ~]# cp -r /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
(5)、编辑配置文件
[root@centos ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
# 第一行修改为linux
1 default linux
# 第六十四行将默认的光盘镜像安装方式修改为FTP文件传输方式,并指定光盘镜像的获取网址以及Kickstart应答文件的路径
64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet
5、配置VSftpd服务程序
(1)、安装vsftpd服务程序
[root@centos ~]# yum install vsftpd
上次元数据过期检查:2:56:07 前,执行于 2023年05月17日 星期三 15时51分08秒。
依赖关系解决。
===============================================================
软件包 架构 版本 仓库 大小
===============================================================
安装:
vsftpd x86_64 3.0.3-34.el8 AppStream 181 k
事务概要
===============================================================
安装 1 软件包
总下载:181 k
安装大小:347 k
确定吗?[y/N]: y
下载软件包:
vsftpd-3.0.3-34.el8.x86_64.rpm 771 kB/s | 181 kB 00:00
---------------------------------------------------------------
总计 764 kB/s | 181 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : vsftpd-3.0.3-34.el8.x86_64 1/1
运行脚本: vsftpd-3.0.3-34.el8.x86_64 1/1
验证 : vsftpd-3.0.3-34.el8.x86_64 1/1
已安装:
vsftpd-3.0.3-34.el8.x86_64
完毕!
(2)、编辑配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
# 开启匿名公开访问模式
12 anonymous_enable=YES
(3)、重启服务并设置开机自启动
[root@centos ~]# systemctl restart vsftpd.service && systemctl enable vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
(4)、复制光盘镜像文件
[root@centos ~]# cp -r /media/cdrom/ /var/ftp
(5)、放行FTP传输连接的策略
[root@centos ~]# setsebool -P ftpd_connect_all_unreserved on
6、创建KickStart应答文件
(1)、复制应答文件并设置权限
[root@centos ~]# cp /root/anaconda-ks.cfg /var/ftp/pub/ks.cfg
[root@centos ~]# chmod +r /var/ftp/pub/ks.cfg
(2)、编辑配置文件
[root@centos ~]# vim /var/ftp/pub/ks.cfg
1 #version=RHEL8
2 ignoredisk --only-use=sda
3 autopart --type=lvm
4 # Partition clearing information
5 clearpart --none --initlabel
6 # Use graphical install
7 graphical
# 修改第八行
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
11 # Keyboard layouts
12 keyboard --vckeymap=cn --xlayouts='cn'
13 # System language
14 lang zh_CN.UTF-8
15
16 # Network information
17 network --bootproto=dhcp --device=ens160 --onboot=on --ipv6=auto --activate
18 network --hostname=redhat.com
19 # Root password
20 rootpw --iscrypted $6$n3P.IP46fC./wZjA$Miv/tI45g4WGLsZLA35bfIitQ2KUKqYPETZ8lJA74DnwjhGN8gvyiiAT1zOXCgxOqZVIi279O2M85sip/2iNH/
21 # X Window System configuration information
22 xconfig --startxonboot
23 # Run the Setup Agent on first boot
24 firstboot --enable
25 # System services
26 services --disabled="chronyd"
27 # System timezone
28 timezone Asia/Shanghai --isUtc --nontp
# 修改第二十九行添加用户
29 user --name=redhat --password=$6$xwM72bmSbVRTrlHX$fMx3ZLn2VzZu6MPb6OW4mDgT85Eye34EP7RE9EK.LS7YsUE2f7aXLe0LsaQ2bh1.l8FCm9Zm2LiwFs8ko1at7/ --iscrypted --gecos="redhat"
30
31 %packages
32 @^graphical-server-environment
33 kexec-tools
34
35 %end
36
37 %addon com_redhat_kdump --enable --reserve-mb='auto'
38
39 %end
40
41 %anaconda
42 pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
43 pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
44 pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
45 %end
三、自动部署客户机
现实生活中,需要在截图服务器与客户端之间的网线,然后启动客户端即可。