银河麒麟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)客户端验证

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐