CentOS8 PXE+Kickstart无人值守安装服务

无人值守安装系统简介

无人值守安装系统能自动化为大量客户机安装linux操作系统,将人从繁琐的安装过程中解放出来。

PXE(preboot eXecute Environment ,预启动执行环境): 让计算机通过网络来启动操作系统(服务器网卡需要支持PXE技术),主要用于在无人值守安装系统中引导客户机安装linux系统。

Kickstart : 是一种无人值守的安装方式,Kickstart程序生成ks.cfg应答文件,在系统安装过程中自动填写其中的参数。

PXE+TFTP+FTP+DHCP+KickStart

在部署无人值守安装系统时,需要使用到以下几种服务程序:

  1. DHCP服务程序: 用于为客户机分配可用IP地址,这是服务器与客户机进行文件传输的基础
  2. TFTP服务程序: 为客户机提供引导文件即驱动文件的传输。
  3. SYSLinux服务程序: 用于提供引导加载文件的服务程序
  4. vsftpd服务程序: 传输系统光盘镜像
  5. KickStart应答文件: 应答文件包含系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容。

部署DHCP服务程序

部署DHCP服务器是为了在执行无人值守安装系统时,服务器主机能和客户机在同一个网段内。这样服务器和主机之间才能相互通讯。所以在虚拟机中实验时,需要将虚拟机中的DHCP服务功能关闭,使用当下正在部署的DHCP服务程序。在实际生产环境中,同样需要将服务器自身的DHCP服务功能关闭,防止实际网络中的DHCP服务功能给客户机提供的IP地址和服务器IP地址不在同一个网段内。通过部署无人值守系统安装服务中的DHCP服务器,能够确保客户机与服务器在同一个IP地址段内,也就能够相互通信。

安装DHCP服务程序

yum install dhcpd

编辑DHCP配置文件

配置文件在/etc/dhcp/路径下的dhcpd.conf文件。

配置关键:

  • 允许BOOTP引导程序协议
    让局域网内暂时没有操作系统的主机也能获取静态IP地址
  • 在配置文件中加载引导驱动文件pxelinux.0
    让客户机获取IP地址后主动获取引导驱动文件

配置文件内容如下

[root@chrisgoudan ~]# vim /etc/dhcp/dhcpd.conf 


allow booting;   
allow bootp;	<<<<允许bootp引导驱动程序协议
ddns-update-style interim;			<<<<<<定义DNS服务动态更新类型为:互动更新模式
ignore client-updates;				<<<<忽略客户机更新DNS记录
subnet 192.168.127.0 netmask 255.255.255.0{  <<<<<<设置DHCP服务器网段和子网掩码
        option subnet-mask 255.255.255.0;    
        option domain-name-servers 192.168.127.1;     <<<<<<定义DNS服务器地址
        range dynamic-bootp 192.168.127.50 192.168.127.200;   <<<<<定义可使用的地址池
        default-lease-time      21600;
        max-lease-time          43200;
        next-server             192.168.127.1;   <<<<<指定客户端启动过程中下一步使用的网络服务器IP地址。
        filename                "pxelinux.0" ;
}

注意在编辑配置文件时,语句后不要忘了加逗号。启动DHCP

[root@chrisgoudan ~]# systemctl start dhcpd
[root@chrisgoudan ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-08-31 20:20:42 CST; 11s ago

部署TFTP服务程序

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

安装tftp服务程序

yum install tftp-server

tftp服务程序的安装与部署详情见CentOS8 TFTP部署

部署SYSLinux服务程序

SYSLinux是一个用于提供引导加载的服务程序。部署SYSLinux服务程序是为了使用其中的引导文件。

配置自动挂载服务程序

由于需要使用系统光盘镜像中的引导文件,所以需要挂载光盘镜像。这里使用自动挂载服务。自动挂载服务详情请移步自动挂载服务部署

具体配置如下

yum install autofs

编辑主配置文件

[root@chrisgoudan ~]# vim /etc/auto.master

/misc   /etc/auto.misc

编辑子配置文件

[root@chrisgoudan ~]# vim /etc/auto.misc

iso             -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

启动autofs程序

systemctl start autofs
systemctl enable autofs

进入挂载目录

[root@chrisgoudan iso]# df -h
文件系统                        容量  已用  可用 已用% 挂载点
devtmpfs                        368M     0  368M    0% /dev
tmpfs                           396M     0  396M    0% /dev/shm
tmpfs                           396M   12M  385M    3% /run
tmpfs                           396M     0  396M    0% /sys/fs/cgroup
/dev/mapper/cl_linuxprobe-root   27G  5.2G   22G   20% /
/dev/sda1                       976M  273M  637M   30% /boot
tmpfs                            80M  1.2M   79M    2% /run/user/42
tmpfs                            80M  4.6M   75M    6% /run/user/1000
/dev/sr0                        7.7G  7.7G     0  100% /misc/iso
[root@chrisgoudan iso]# cd /misc/iso
[root@chrisgoudan iso]# ll
总用量 12
dr-xr-xr-x. 4 yang yang 2048 69 06:08 AppStream
dr-xr-xr-x. 4 yang yang 2048 69 06:08 BaseOS
dr-xr-xr-x. 3 yang yang 2048 69 06:08 EFI
dr-xr-xr-x. 3 yang yang 2048 69 06:08 images
dr-xr-xr-x. 2 yang yang 2048 69 06:08 isolinux
-r--r--r--. 1 yang yang   87 69 06:07 media.repo
-r--r--r--. 1 yang yang  664 69 06:08 TRANS.TBL

自动挂载成功

部署SYSLinux服务程序

安装SYSLinux服务程序

yum install syslinux

复制SYSLinux引导文件到TFTP的默认目录中

TFTP默认目录路径为:/var/lib/tftpboot

需要使用到的文件有

  1. /usr/share/syslinux/pxelinux.0 引导驱动文件
  2. /misc/iso/images/pxeboot/下的vmlinuz,initrd.img文件
  3. /misc/iso/isolinux/下的vesamenu.c32,boot.msg文件
[root@chrisgoudan ~]# cd /var/lib/tftpboot
[root@chrisgoudan tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@chrisgoudan tftpboot]# ll
总用量 48
-rw-r--r--. 1 root root 42791 831 21:28 pxelinux.0
-rw-r--r--. 1 root root    21 813 10:06 tftptest.txt
[root@chrisgoudan tftpboot]# cp  /misc/iso/images/pxeboot/{vmlinuz,initrd.img} .
[root@chrisgoudan tftpboot]# ll
总用量 72348
-r--r--r--. 1 root root 65114456 831 21:29 initrd.img
-rw-r--r--. 1 root root    42791 831 21:28 pxelinux.0
-rw-r--r--. 1 root root       21 813 10:06 tftptest.txt
-r-xr-xr-x. 1 root root  8913656 831 21:29 vmlinuz
[root@chrisgoudan tftpboot]# cp  /misc/iso/isolinux/{vesamenu.c32,boot.msg} .
[root@chrisgoudan tftpboot]# ll
总用量 72380
-r--r--r--. 1 root root       84 831 21:30 boot.msg
-r--r--r--. 1 root root 65114456 831 21:29 initrd.img
-rw-r--r--. 1 root root    42791 831 21:28 pxelinux.0
-rw-r--r--. 1 root root       21 813 10:06 tftptest.txt
-r--r--r--. 1 root root    26788 831 21:30 vesamenu.c32
-r-xr-xr-x. 1 root root  8913656 831 21:29 vmlinuz

复制开机选项菜单

  1. 在TFTP默认目录中创建pxelinux.cfg目录
  2. 将开机选项菜单复制到该目录中并命名为default文件
  3. 编辑default文件
[root@chrisgoudan tftpboot]# mkdir pxelinux.cfg   
[root@chrisgoudan tftpboot]# cd pxelinux.cfg/
[root@chrisgoudan pxelinux.cfg]# cp /misc/iso/isolinux/isolinux.cfg ./default <<复制isolinux.cfg文件到当前目录下并命名为default
[root@chrisgoudan pxelinux.cfg]# ll
总用量 4
-r--r--r--. 1 root root 3075 831 21:44 default
[root@chrisgoudan pxelinux.cfg]# chmod 700 default   <<<<<修改文件权限 
编辑default文件

在编辑配置文件时,可以使用set nu命令显示行号

vim default
  1 default linux        <<<<安装时,自动执行名称为linux选项
.......省略输出.....
61 label linux
 62   menu label ^Install CentOS Linux 8
 63   kernel vmlinuz
 64   append initrd=initrd.img inst.stage2=ftp://192.168.127.1 ks=ftp://192.168.127.1/pub/ks.cfg  quiet

inst.stage2=ftp://192.168.127.1表示将默认的光盘镜像获取网址,为FTP传输
ks=ftp://192.168.127.1/pub/ks.cfg 表示为KickStart应答文件获取路径

部署VSftpd服务程序

详情请移步CentOS8 vsftpd服务配置

创建KickStart应答文件

以上部署都环境都只是在为客户机传输光盘镜像系统文件做准备。

KickStart应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容。

应答文件在:root管理员家目录下的anaconda-ks.cfg

**步骤: **

  1. 将应答文件复制到var/ftp/pub目录下
  2. 设置文件权限确保所有人都有可读权限
  3. 编辑应答文件参数

除了使用系统自带的默认应答文件外,还可以使用system-config-kickstart软件包,来自动生成符合自己需要的应答文件

复制应答文件

  1. 复制应答文件到ftp共享文件夹下
cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
  1. 修改应答文件权限,确保所有人都有读的权限
chmod +r /var/ftp/pub/ks.cfg

编辑KickStart应答文件

在CentOS8中没有system-config-kickstart软件包,所以使用图形软件自动生成应答文件就别想了。

编辑应答文件

......省略输出......
# Partition clearing information
clearpart --all --initla            <<<<<删除磁盘中内数据并初始化
.........省略输出..............
# Use CDROM installation media
url --url=ftp://192.168.127.1   <<<<<<<<使用ftp协议对系统镜像文件进行传输
........省略输出.................
# System timezone
timezone Asia/Shanghai --isUtc   <<<<<<<设置系统时区
........省略输出....................

部署客户机

以上无人值守安装系统服务配置已经完成,在虚拟机中创建新虚拟机,选择稍后安装系统,并将网络适配器选择为仅主机模式,以便客户机通服务器主机通讯。之后便能自动安装系统。

如果网络带宽够大也可以设置为使用http网址进行系统镜像文件传输,其他配置与部署都差不多。

大体流程如上:
但是没有实验成功
原因1: 很久之前手贱把anaconda-ks.cfg文件删除了
原因2: 之前部署了很多服务,现在有点懵圈,忘了部署的这几个服务部署成什么方式了
原因3: 尝试过解决之前部署服务出现的问题,以便能再次成功运行。但是没有成功,花费了大量时间
原因4: 时间不够用,得抓紧弄完这本书,准备考教资,看论文,找实习

综上,以后再说

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值