银河麒麟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

麒麟v10安装redis 麒麟v10安装exe文件_服务器

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

麒麟v10安装redis 麒麟v10安装exe文件_运维_02

(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 ###这一行以后全部删除),添加内容如下:

麒麟v10安装redis 麒麟v10安装exe文件_kylin_03

(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

麒麟v10安装redis 麒麟v10安装exe文件_kylin_04

只需要修改部分参数:

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服务端配置完成,客户端在启动时候选择网络安装即可

麒麟v10安装redis 麒麟v10安装exe文件_kylin_05

四、kickstart自动安装脚本文件

1.在kickstart安装脚本中自定义安装软件包/组

在kickstart文件里使用****%packages***命令来列出想安装的软件包,相关软件包的组的列表,参考系统Linux光盘里的/repodata/-comps.xml. 每个组都有一个编号,用户可见性的值,名字,描述和软件包列表.在软件包列表里,如果这个组被选择的话,组里的标记为"mandatory"的软件包就必须被安装;标记为"default"的软件包缺省被选择;而标记为"optional"的软件包必须被明确地选定才会被安装。

语法格式如下:

麒麟v10安装redis 麒麟v10安装exe文件_麒麟v10安装redis_06

注: @^ 开头指定环境组包
@ 开头指定软件组包

2.kickstart安装脚本中指定自定义分区

麒麟v10安装redis 麒麟v10安装exe文件_服务器_07

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,指定分区和要安装的软件包

麒麟v10安装redis 麒麟v10安装exe文件_kylin_08

--size=1 --grow 就是把剩余空间都给了根分区

麒麟v10安装redis 麒麟v10安装exe文件_服务器_09

自定义安装rabbitmq-server和虚拟化组包

(3)客户端验证

麒麟v10安装redis 麒麟v10安装exe文件_kylin_10