PXE+LKickstart自动化安装操作系统

知识导引 PXE的工作过程:

  1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
  2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
  3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
  4. PXE Client 取得pxelinux.0 文件后之执行该文件;
  5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统;
  6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装

DHCPserver和boot server在同一台服务器上

安装轻量级的文件传输协议服务器

1、安装简单文件传输服务器

[root@server10 ~]# dnf -y install tftp-server 安装简单文件传输服务器

2、启动ftp服务器及防火墙

[root@server10 ~]# systemctl enable --now tftp				启动ftp服务器并设置开机启动
Created symlink /etc/systemd/system/sockets.target.wants/tftp.socket → /usr/lib/systemd/system/tftp.socket.
[root@server10 ~]# systemctl enable --now firewalld			启动防火墙并设置开机启动
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
[root@server10 ~]# 
[root@server10 ~]# firewall-cmd --add-service=tftp			在防火墙里添加tftp服务
success
[root@server10 ~]# firewall-cmd --runtime-to-permanent		在防火墙里永久添加运行时
success

3、安装及编辑dhcp服务器

[root@server10 ~]# vim /etc/dhcp/dhcpd.conf					编辑dhcp服务器的配置文件
option domain-name "benet.com";								定义域名:benet.com
option domain-name-servers 114.114.114.114;					定义dns地址:114.114.114.114

default-lease-time 600;										默认老化(过期)时间600秒
max-lease-time 7200;										最大过期时间7200秒

log-facility local7;										日志级别为7级;7级为信息(7最小)日志级别分为1-7,1是最高,7是最低

authoritative;												声明dhcp服务器为该子网的权威服务器
option space pxelinux;										自定义的dhcp选项空间为pxelinux;用于传递pxe启动所需的参数
option pxelinux.magic code 208 = string;					用于指定客户端的魔术字,用于识别pxe的启动请求
option pxelinux.configfile code 209 = text;					定义pxe引导配置文件的名称,客户端启动时会根据此文件加载内核和初始化参数
option pxelinux.pathprefix code 210 = text;					用于指定pxe配置文件的相对路径
option pxelinux.reboottime code 211 = unsigned integer 32;	设置tftp传输失败后等待重启的时间 0表示无线等待
option architecture-type code 93 = unsigned integer 16;		用于在dhcp协议中标识客户端的系统架构类型(传统是biso 现在的是uefi)
subnet 192.168.7.0 netmask 255.255.255.0 {					定义的网段 192.168.7.0 子网掩码: 255.255.255.0
  range 192.168.7.100 192.168.7.200;						dhcp分配地址的范围:192.168.7.100 192.168.7.200
  option routers 192.168.7.2;								定义网关地址192.168.7.2
  option broadcast-address 192.168.7.255;					定义广播地址192.168.7.255
  class "pxeclients" {										定义dhcp客户端的类别,用于识别pxe启动的设备
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";	该条件通过检查dhcp选项的前九个字符是否为PXEClinet,网卡启动识别这个;精确识别pxe的客户端

    next-server 192.168.7.10;								tftp的服务器的IP为192.168.7.10

    if option architecture-type = 00:07 {					PXE客户端将通过此服务器下载引导文件(root 内核 影像)如果系统架构类型为00:07 对应的是UEFI 64架构,否则是BISO
        filename "BOOTX64.EFI";								
    }
    else {
        filename "pxelinux.0";
    }
 }
}

4、重启dhcp

[root@server10 ~]# systemctl restart dhcpd					重启dhcp

5、安装syslinux(引导加载程序)

[root@server10 ~]# dnf -y install syslinux					安装syslinux(引导加载程序)

6、重启dhcp

[root@server10 ~]# systemctl restart dhcpd					重启dhcp

7、将pxelinux0复制到tftpboot目录下,pxelinux0引导文件引导vimlinux和intrd两个启动文件

[root@server10 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	将pxelinux0复制到tftpboot目录下,pxelinux0引导文件引导vimlinux和intrd两个启动文件

8、创建rocky-st9目录

[root@server10 ~]# mkdir -p /var/pxe/rocky-st9				创建rocky-st9目录
[root@server10 ~]# 
[root@server10 ~]# [root@server10 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/	将pxelinux0复制到tftpboot目录下,pxelinux0引导文件引导vimlinux和intrd两个启动文件
[root@server10 ~]# 
[root@server10 ~]# mkdir -p /var/pxe/rocky-st9				创建rocky-st9目录
[root@server10 ~]# 
[root@server10 ~]# mkdir /var/lib/tftpboot/rocky-st9			创建rocky-st9目录

9、系统光盘镜像挂载及开机挂载配置文件添加执行权限

[root@server10 ~]# mount -t iso9660 -o loop,ro /home/Rocky-9.5-x86_64-dvd.iso /var/pxe/rocky-st9/ 将系统光盘镜像挂载到Rocky-9的目录下
[root@server10 ~]# 
[root@server10 ~]# chmod +x /etc/rc.d/rc.local 				将开机挂载配置文件添加执行权限

10、将系统光盘的挂载命令,追加到开机启动的挂载文件中

[root@server10 ~]# echo "mount -t iso9660 -o loop,ro /home/Rocky-9.5-x86_64-dvd.iso /var/pxe/rocky-st9/" >> /etc/rc.d/rc.local 将系统光盘的挂载命令,追加到开机启动的挂载文件中

11、文件复制到rocky-st9目录下

[root@server10 ~]# cp /var/pxe/rocky-st9/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/rocky-st9/	将vmlinuz,initrd.img文件复制到rocky-st9目录下,vmlinuz系统内核、initrd.img影像文件

12、切换至syslinux目录下

[root@server10 ~]# cd /usr/share/syslinux/

13、备份文件

[root@server10 syslinux]# cp {menu.c32,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot/   menu.c32,vesamenu.c32实现图形化启动菜单文件,支持交互式操作;	libutil.c32 pxe的引导加载程序,负责解析配置文件  libcom32.c32,libutil.c32提供底层系统调用文件

14、创建启动菜单的配置文件

[root@server10 syslinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@server10 syslinux]# 
[root@server10 syslinux]# vim /var/lib/tftpboot/pxelinux.cfg/default		创建启动菜单的配置文件
default vesamenu.c32			默认菜单
prompt 1						第一个菜单下
timeout 60						超时时间60秒
display boot.msg				显示启动信息
label linux						
  menu label ^Install Rocky 9
  menu default
  kernel rocky-st9/vmlinuz
  append initrd=rocky-st9/initrd.img ip=dhcp inst.repo=http://192.168.7.10/rocky-st9		标准安装模式;初始化指定镜像自动安装IP=dhcp
initrd=rocky-st9/initrd.img 指定镜像 ip=dhcpIP是dhcp获得			inst.repo=http://192.168.7.10/rocky-st9	指定安装源
label vesa
  menu label install Rocky 9 ^basic video driver
  kernel rocky-st9/vmlinuz		rocky-st9/vmlinuz指定内核文件
  append initrd=rocky-st9/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://192.168.7.10/rocky-st9   initrd=rocky-st9/initrd.img初始化镜像

label rescue
  menu label ^Rescue installed system
  kernel rocky-st9/vmlinuz
  append initrd=rocky-st9/initrd.img rescue			系统救援模式

label local
  menu label Boot from ^local drive
 localboot 0xffff									从本地硬盘启动(0xffff直接跳转到本地引导)

15、安装阿帕奇

[root@server10 ~]# dnf -y install httpd				安装阿帕奇

16、编辑httpd下的pxe启动的配置文件

[root@server10 ~]# vim /etc/httpd/conf.d/pxeboot.conf	编辑httpd下的pxe启动的配置文件
Alias /rocky-st9 /var/pxe/rocky-st9					定义别名:/rocky-st9		全路径:/var/pxe/rocky-st9	
<Directory /var/pxe/rocky-st9>						定义网站目录的位置
  Options Indexes FollowSymLinks					显示目录的索引结构
  Require ip 127.0.0.1 192.168.7.0/24				请求的IP为127.0.0.1 192.168.7.0网段
</Directory>

17、启动阿帕奇并设置开机启动

[root@server10 ~]# systemctl enable --now httpd  启动阿帕奇并设置开机启动

18、在防火墙里添加服务

[root@server10 ~]# firewall-cmd --add-service=http	在防火墙里添加http服务
success
[root@server10 ~]# firewall-cmd --runtime-to-permanent	在防火墙里永久添加运行时
success
[root@server10 ~]# firewall-cmd --list-all			查看防火墙里的所有规则
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources: 
  services: cockpit dhcpv6-client http ssh tftp

19、创建ks目录及创建应答文件

[root@server10 ~]# mkdir /var/www/html/ks			创建ks目录
[root@server10 ~]# 
[root@server10 ~]# ls
anaconda-ks.cfg
[root@server10 ~]# cp anaconda-ks.cfg /var/www/html/ks/ 将系统的应答文件服务到ks目录下
[root@server10 ~]# 
[root@server10 ~]# cd /var/www/html/ks/				进入到ks目录下
[root@server10 ks]# ls					
anaconda-ks.cfg
[root@server10 ks]# mv anaconda-ks.cfg rocky-st9-ks.cfg	将应答文件重命名
[root@server10 ks]# vim rocky-st9-ks.cfg 			编辑应答文件
graphical											图形界面
repo --name="AppStream" --baseurl=http://192.168.7.10/rocky0-st9/AppStream 指向阿帕奇的系统软件包路径

url --url="http://192.168.7.10/rocky-st9"			指向阿帕奇的网址路径(把光驱去掉)
%addon com_redhat_kdump --enable --reserve-mb='auto'	

%end

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8

# Network information

network  --hostname=localhost.localdomain


%packages
@^server-product-environment
@development
@legacy-unix
@rpm-development-tools
@system-tools

%end

# Run the Setup Agent on first boot
firstboot --enable

# Generated using Blivet version 3.6.0
ignoredisk --only-use=sda
# Partition clearing information
clearpart --none --initlabel
# Disk partitioning information
part biosboot --fstype="biosboot" --ondisk=sda --size=2
part /boot --fstype="xfs" --ondisk=sda --size=500
part pv.209 --fstype="lvmpv" --ondisk=sda --size=101897
volgroup rl --pesize=4096 pv.209
logvol / --fstype="xfs" --size=97797 --name=root --vgname=rl
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=rl

timesource --ntp-disable
# System timezone
timezone Asia/Shanghai --utc

# Root password
rootpw --iscrypted --allow-ssh $6$QJze7NrwEwOqhP7d$zuzrz4tdFR.Yqm2wOilEhW3aa7LJpJpE0O.5BdDG2A8qo2Iyh6nxRlX33wVNEMXm0SHAJRmDul.cULVECz.Ev/

20、将开机应答文件添加644权限

[root@server10 ~]# chmod 644 /var/www/html/ks/rocky-st9-ks.cfg 将开机应答文件添加644权限   (易错点)6用户具有读和写的权限 组和其他用户具有读的权限)

21、编辑启动菜单配置文件

[root@server10 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 		编辑启动菜单配置文件
default vesamenu.c32
prompt 1
timeout 60
display boot.msg
label linux
  menu label ^Install Rocky 9
  menu default
  kernel rocky-st9/vmlinuz
  append initrd=rocky-st9/initrd.img ip=dhcp inst.ks=http://192.168.7.10/ks/rocky-st9-ks.cfg		修改应答文件的全路径

22、重启阿帕奇

[root@server10 ~]# systemctl restart httpd												重启阿帕奇

23、创建新的linux虚拟机

新建虚拟机

23.1 虚拟机名称:Rocky9F

23.2 内存4G 100G硬盘

23.3 设置8网卡,DVD光盘不用挂载,一会儿联网自动挂载

24、网卡启动

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇