在ARM架构上部署PXE服务自动安装Rocky9.2
1.服务器准备
利用安装光盘 安装如下软件包:
dhcp-common.noarch
dhcp-server.aarch64
tftp-server.aarch64
tftp.aarch64
nginx准备好安装系统的ISO,我们需要从ISO从取出如下文件:
images/pxeboot/initrd.img
images/pxeboot/vmlinuz
EFI/BOOT/BOOTAA64.EFI
EFI/BOOT/grubaa64.efi
EFI/BOOT/grub.cfg
EFI/BOOT/mmaa64.efi2.配置DHCP服务器。
由于默认的dhcp配置文件是空的,所以我们需要将原先的配置文件替换为样板文件,在样板文件中修改配置
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf使用编辑器打开/etc/dhcp/dhcpd.conf在下方添加如下内容:
subnet 192.168.3.0 netmask 255.255.255.0 { #dhcp服务器分配的网段需要与本机的固定IP地址位于同一网段
range 192.168.3.100 192.168.3.253; #指定自动分配的IP地址范围
option routers 192.168.3.1; #指定网关地址
option domain-name-servers 192.168.3.1; #指定DNS服务器地址
option domain-name "test.org"; #DNS搜索域名
next-server 192.168.3.137; #指定TFTP服务器IP(关键设定项,这里设置为本机)
filename "uefi/BOOTAA64.EFI"; #指定网卡pxe启动引导文件名(关键设定项,更具实际情况填写文件)
}重启DHCP服务。
3.配置TFTP服务
我们可以直接把pxe启动文件放到/var/lib/tftpboot/中,重启tftp服务即可。
我这里的文件目录如下:
[root@localhost uefi]# tree /var/lib/tftpboot/
/var/lib/tftpboot/
└── uefi
├── BOOTAA64.EFI
├── fonts
│ └── unicode.pf2
├── grubaa64.efi
├── grub.cfg
├── grub.cfg.bak
├── initrd.img
├── mmaa64.efi
└── vmlinuz
2 directories, 8 files
[root@localhost uefi]#如上文件都是从安装光盘中取出。
随后重启tftp服务。systemctl restart tftp.service systemctl restart tftp.socket
4.配置nginx网络镜像源。
在nginx默认网站目录下创建一个名为rocky9.2的文件夹,将光盘直接挂载到该文件夹中。使用浏览器访问可以看到文件即可。
[root@localhost uefi]# ll /var/www/html/rocky9.2/
总用量 26
drwxr-xr-x. 1 root root 2048 5月 15 2023 AppStream
drwxrwxr-x. 1 root root 2048 5月 15 2023 BaseOS
-r--r--r--. 1 root root 2048 5月 12 2023 boot.catalog
-rw-r--r--. 1 root root 5504 5月 12 2023 COMMUNITY-CHARTER
-rw-r--r--. 1 root root 1394 5月 12 2023 Contributors
drwxrwxr-x. 1 root root 2048 5月 12 2023 EFI
-rw-r--r--. 1 root root 372 5月 12 2023 EULA
drwxrwxr-x. 1 root root 2048 5月 12 2023 images
-rw-r--r--. 1 root root 2204 4月 27 2023 LICENSE
-rw-r--r--. 1 root root 102 5月 13 2023 media.repo
-rw-r--r--. 1 root root 1750 5月 12 2023 RPM-GPG-KEY-Rocky-9
-rw-r--r--. 1 root root 3159 5月 12 2023 RPM-GPG-KEY-Rocky-9-Testing
[root@localhost uefi]#
4.配置自动安装文件kickstart
一般情况下,安装完rocky9.2后会在root用户家目录下会有一个anaconda-ks.cfg的文件,该文件为安装本机rocky时的配置。利用该文件可以实现全自动安装rockylinux而不用在安装过程中设置其他内容。
在nginx默认站点目录下创建ksdir文件夹,将anaconda-ks.cfg文件直接放到该文件夹下,浏览器可以直接访问即可。
# Generated by Anaconda 34.25.2.10
# Generated by pykickstart v3.32
#version=RHEL9
# Use graphical install
graphical
#repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream
url --url="http://192.168.3.137/rocky9.2/" #此处填写先前配置的网络安装源。
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
# Keyboard layouts
keyboard --xlayouts='cn'
# System language
lang zh_CN.UTF-8
# Network information
network --bootproto=dhcp --device=ens160 --ipv6=auto --activate
%packages
@^minimal-environment #最小化安装
%end
# Run the Setup Agent on first boot
firstboot --enable
# Generated using Blivet version 3.6.0
ignoredisk --only-use=sda
autopart #自动分区
# Partition clearing information
clearpart --all #清除磁盘全部分区
# System timezone
timezone Asia/Shanghai --utc
# Root password 设置root密码 格式加密。
rootpw --iscrypted --allow-ssh $6$Atk4m/gb7cM.vgC2$33G7WoPY/jgO3Q2G/ivAE6Lq.S5pFWvu5qtautsUoGR5OK3XYjP4.dDsAhJvd.Kg5u2L0K7dScdkPjVHF42JT05.配置启动项,设置自动安装文件ks。
编辑先前放在tftpboot/uefi/grub.cfg文件,内容如下:
set timeout=30
menuentry 'Install CentOS 8' {
linux /uefi/vmlinuz ip=dhcp inst.repo=http://192.168.3.137/rocky9.2/ inst.ks=http://192.168.3.137/ksdir/anaconda-ks.cfg
initrd /uefi/initrd.img
}准备完成后即可将电脑设置为PXE启动,引导方式选UEFI即可。如果不需要自动安装的话可以在grub.cfg中将inst.ks删除。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。