银河麒麟V10服务器系统UEFI模式PXE部署
所谓的PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境。PXE是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载
银河麒麟V10服务器UEFI模式PXE部署
一、PXE简介
所谓的PXE是Preboot Execution Environment的缩写,字面上的意思是开机前的执行环境。
PXE是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
vmlinuz:核心文件(kernel file)
initrd.img:开启过程中核心组件的参数
kylin-ks.cfg --> demo:开机pxe选择参考
二、PXE基本条件
DHCP:提供网络参数,告知客户端TFTP位置
TFTP:提供boot loader及kernel file下载路径
HTTP/FTP/NFS:三种架构提供内核文件
三、PXE服务端部署(V10_Server_GFB为例)
1.挂载镜像
mkdir /tmpmnt
mkdir /tmpmedia
mount -o loop Kylin-Server-V10_U1-Release-Build02-20210824-GFB-x86_64.iso /tmpmnt/
mount /tmpmnt/images/efiboot.img /tmpmedia/
2.关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
3.安装DHCP
yum install -y dhcp
配置文件: /etc/dhcp/dhcpd.conf
filename值取uefi模式x86为grubx64.efi,arm为grubaa64.efi,subnet请按照现场实际情况填写。
启动服务:systemctl start dhcpd systemctl enable dhcpd
4.安装tftp和xinetd
(1)yum install -y tftp tftp-server xinetd
(2)配置: vim /etc/xinetd.d/tftp
(3)拷贝pxeboot目录下的文件、grub*.efi、grub.cfg到tftp
rm -rf /var/lib/tftpboot/*
cp -rf /tmpmnt/images/pxeboot/* /var/lib/tftpboot
cp -f /tmpmnt/EFI/BOOT/grub*.efi /var/lib/tftpboot
cp -f /tmpmnt/EFI/BOOT/grub.cfg /var/lib/tftpboot
(4)配置/var/lib/tftpboot/grub.cfg
删除所有系统菜单,只添加PXE菜单即可(### BEGIN /etc/grub.d/10_linux ###这一行以后全部删除),添加内容如下:
(5)启动服务
chmod -R 755 /var/lib/tftpboot
systemctl start xinetd
systemctl enable xinetd
systemctl start tftp
systemctl enable tftp
5.安装http
yum install -y httpd
mkdir /var/www/html/kylin
(1)同步镜像文件
rsync -a /tmpmnt/ /var/www/html/kylin/
chmod -R 755 /var/www/html/kylin
(2)拷贝grub.cfg
cp -f /var/lib/tftpboot/grub.cfg /var/www/html/kylin/EFI/BOOT/grub.cfg
(3)启动服务
systemctl start httpd
systemctl enable httpd
6.kickstart
mkdir /var/www/html/ks
cp /root/anaconda-ks.cfg /var/www/html/ks/kylin-ks.cfg
chmod 755 /var/www/html/ks/kylin-ks.cfg
只需要修改部分参数:
rootpw –iscrypted:这个参数是设置PXE客户机的root密码,默认是密文,不修改就是当前PXE服务器的密码。
密文生成方式:
vim /tmp/rootpw.py
#!/usr/bin/python
import crypt
print(crypt.crypt(“qwer1234!@#$”)) 这里填写想要设置的密码即可
7.YUM源配置
vim /etc/yum.repos.d/network.repo
[network]
name=network repo
baseurl=http://192.168.253.242/kylin
enable=1
gpgcheck=0
到这里PXE服务端配置完成,客户端在启动时候选择网络安装即可
四、kickstart自动安装脚本文件
1.在kickstart安装脚本中自定义安装软件包/组
在kickstart文件里使用****%packages***命令来列出想安装的软件包,相关软件包的组的列表,参考系统Linux光盘里的/repodata/-comps.xml. 每个组都有一个编号,用户可见性的值,名字,描述和软件包列表.在软件包列表里,如果这个组被选择的话,组里的标记为"mandatory"的软件包就必须被安装;标记为"default"的软件包缺省被选择;而标记为"optional"的软件包必须被明确地选定才会被安装。
语法格式如下:
注: @^ 开头指定环境组包
@ 开头指定软件组包
2.kickstart安装脚本中指定自定义分区
volgroup:创建卷组,klas为卷组名称,pesize用来设置默认pe大小,pv.316是物理卷
logvol:创建逻辑卷,/为挂载点,fstype指定文件系统类型,size指定大小,name指定名字,后面根卷组名称
part:创建分区,后面根挂载点,fstype指定文件系统类型,ondisk指定分区落在哪块磁盘,szie指定大小。
注:以上指定的为系统分区为逻辑卷的场景,如果系统分区不采用逻辑卷模式,使用part命令指定挂载点、分区类型、大小即可。
3.PXE环境自定义分区和按需装包测试
(1)拷贝ks文件到http共享路径下:
cp anaconda-ks.cfg /var/www/html/ks/kylin-ks.cfg
(2)修改kylin-ks.cfg,指定分区和要安装的软件包
--size=1 --grow 就是把剩余空间都给了根分区
自定义安装rabbitmq-server和虚拟化组包
(3)客户端验证
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)