自动化PXE系统安装

自动化PXE系统安装

流程

服务器端 dhcpd 为网卡开机引导分配IP
服务器端 tftp 为引导界面加载配置
服务器端 kickstart 为操作系统免交互生成ks应答文件
服务器端 httpd 采用httpd网络安装方式

服务器端安装软件包

[root@PXE]# yum -y install  tftp-server dhcp httpd system-config-kickstart

配置dhcpd服务

cat /etc/dhcp/dhcpd.conf

allow booting;
allow bootp;

ignore client-updates;
set vendorclass = option vendor-class-identifier;

option pxe-system-type code 93 = unsigned integer 16;

subnet 192.168.10.0 netmask 255.255.255.0 {
     option routers             192.168.10.5;
     option domain-name-servers 192.168.10.1;
     option subnet-mask         255.255.255.0;
     range dynamic-bootp        192.168.10.100 192.168.10.254;
     default-lease-time         21600;
     max-lease-time             43200;
     next-server                192.168.10.10; ###指定下一跳服务器为本机
     filename                   "pxelinux.0";  ###启动引导文件yum install syslinux获取
}

systemctl restart  dhcpd;systemctl enable  dhcpd

配置tftp

yum install syslinux -y
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mount /dev/sr0 /mnt  ###挂载光驱centos7
mkdir -p /var/lib/tftpboot/pxelinux.cfg/
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /mnt/isolinux/initrd.img /var/lib/tftpboot/
cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/
cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
cp /mnt/isolinux/splash.png /var/lib/tftpboot/
sed -i.bak /disable/s@yes@no@g /etc/xinetd.d/tftp ###修改tftp配置文件
systemctl restart tftp

修改引导文件

cat  pxelinux.cfg/default 
default vesamenu.c32
timeout 600

display boot.msg

label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  menu default
  append initrd=initrd.img ks=http://192.168.10.10/ks.cfg  ###指定ks文件所在服务器

label local
  menu label Boot from ^local drive
  localboot 0xffff

第一阶段,进入引导界面完成。

在客户端进行网卡启动,PXE将会显示如下图状态。

在这里插入图片描述在这里插入图片描述

第二阶段: 配置KS自动应答文件

[root@PXE ~]# system-config-kickstart  ###启动报错
Could not open display because no X server is running.
Try running 'system-config-kickstart --help' for a list of options.

[root@PXE ~]# yum -y install xorg-x11-xauth   ###使用xshell,重新连接ssh解决报错
[root@PXE ~]# echo 'export LANG=en.US' >>/root/.bash_profile ### 重新登录,更新用户环境变量为英文或安装图形界面
[root@PXE ~]# yum grouplist  ###列出软件组
[root@PXE ~]# yum groupinstall "GNOME Desktop"  ###安装图形界面  
[root@PXE ~]# cat /etc/yum.repos.d/custom.repo  ###做个yum源,将光盘挂载至/mnt目录,以解决ks软件包选择项报错。
[development]
name=my-centos7
baseurl=file:///mnt/     
enabled=1
gpgcheck=0
[root@PXE ~]# system-config-kickstart ###此时启动可正常显示中文进行

在这里插入图片描述
在这里插入图片描述

ks应答文件内容参考

cat /root/original-ks.cfg

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$mEGuc6LS$NQ041dNfkffuEnni2YtfG0   ###123456
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# Use network installation
url --url="http://192.168.10.10/centos7"
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information

part /boot --fstype="xfs" --size=150 
part swap --size=4096 
part pv.01 --size=1 --grow
volgroup vg_root pv.01
logvol  /var  --vgname=vg_root  --size=8096  --name=lv_var 
logvol  /tmp  --vgname=vg_root  --size=1024  --name=lv_tmp 
logvol  /     --vgname=vg_root  --size=1 --grow --name=lv_root

%packages
@fonts
@gnome-desktop
@performance
@remote-desktop-clients
@x11
-cjkuni-uming-fonts
-dejavu-sans-fonts
-dejavu-sans-mono-fonts
-dejavu-serif-fonts
-gnu-free-mono-fonts
-gnu-free-sans-fonts
-gnu-free-serif-fonts
-google-crosextra-caladea-fonts
-google-crosextra-carlito-fonts
-google-noto-emoji-fonts
-jomolhari-fonts
-khmeros-base-fonts
-liberation-mono-fonts
-liberation-sans-fonts
-liberation-serif-fonts
-lklug-fonts
-lohit-assamese-fonts
-lohit-bengali-fonts
-lohit-devanagari-fonts
-lohit-gujarati-fonts
-lohit-kannada-fonts
-lohit-malayalam-fonts
-lohit-marathi-fonts
-lohit-nepali-fonts
-lohit-oriya-fonts
-lohit-punjabi-fonts
-lohit-tamil-fonts
-lohit-telugu-fonts
-madan-fonts
-nhn-nanum-gothic-fonts
-open-sans-fonts
-overpass-fonts
-paktype-naskh-basic-fonts
-paratype-pt-sans-fonts
-qgnomeplatform
-sil-abyssinica-fonts
-sil-nuosu-fonts
-sil-padauk-fonts
-smc-meera-fonts
-stix-fonts
-thai-scalable-waree-fonts
-ucs-miscfixed-fonts
-vlgothic-fonts
-wqy-microhei-fonts
-wqy-zenhei-fonts
-xdg-desktop-portal-gtk

%end

配置采用http 进行网络安装

ln -s /mnt /var/www/html/centos7   ###创建光盘挂载点指向http目录。将生成的ks.cfg文件复制至/var/www/html/ks.cfg
systemctl restart httpd;systemctl enable httpd

curl http://192.168.10.10/centos7   ###测试访问正常

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://192.168.10.10/centos7/">here</a>.</p>
</body></html>

在这里插入图片描述

PXE curl:(23) Failed writing body (4096!=16384)
该报错请保证客户端机内存大于 1.5G。https://blog.csdn.net/weixin_36242811/article/details/105207

在这里插入图片描述

参考学习

https://www.bilibili.com/video/BV1pA411W7wQ?p=35&spm_id_from=pageDriver
https://www.jianshu.com/p/dced9f9d422f

后续问题

采用cobbler 工具,自动化进行,客户端主机为UEFI引导方式安装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值