PXE自动批量装机+无人值守CentOS7.9

PXE自动批量装机

1.PXE原理

PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器请求IP;

DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置
(该文件一般是放在一台TFTP服务器上);

PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件
(在 PXE Client 的 ROM 中,已经存在 TFTP Client);

PXE Client 取得pxelinux.0 文件后之执行该文件;

根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;

进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

DHCP服务器:为 PXE-client 分配 IP ,获得安装程序文件位置
TFTP服务器:传输安装文件、内核、菜单文件等给 PXE-client
Xinetd: TFTP服务超级守护进程, 用于唤醒TFTP服务;
Kickstart:生成的ks.cfg配置文件
HTTP/NFS/FTP 服务中的任意一种,用于传送安装源文件给 PXE-client

配置开始前小提示如果用虚拟机做实验请注意以下几点:
1.点击编辑虚拟机网络关闭系统的dhcp,不然会有冲突
2.PXE服务器网卡配置静态
3.虚拟机内存在2G以上

2.搭建PXE环境

关闭firewalld/SELINUX

systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disabled

安装DHCP服务

yum install dhcp -y          

vim /etc/dhcp/dhcpd.conf
# 网络和子网掩码(根据自己实际情况编写)
subnet 192.168.67.0 netmask 255.255.255.0 {
range 192.168.67.10 192.168.67.50;
option routers 192.168.67.1;
default-lease-time 60000;
max-lease-time 720000;
# 指定tftp服务器地址
next-server 192.168.67.128;
#指定pxelinux.0文件
filename "pxelinux.0";
}

#配置完成后设置开启启动并重启
systemctl enable --now dhcpd

安装FTP服务

yum -y install vsftpd
mkdir /var/ftp/centos
mount /dev/cdrom /var/ftp/centos/

安装TFTP服务(无需认证,小文件传输)

yum -y install tftp-server
    vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no   ##默认是yes改成no即可
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

systemctl enable --now tftp       #开机启动并重启

复制系统镜像中的引导文件到TFTP

cd /media/cdrom/images/pxeboot/
vmlinuz是可引导的、压缩的内核。“vm”代表 “Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。
vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。

类RedHat 系统从vmlinuz 核心引导后,会读取initrd.img 启动镜像。该文件中包含驱动模块等信息,是非常重要的文件。不同版本使用的格式不同。

cp vmlinuz  initrd.img  /var/lib/tftpboot/

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板。

yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

默认的启动菜单文件
创建/var/lib/tftpboot/pxelinux.cfg/default
mkdir /var/lib/tftpboot/pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default

default auto

prompt 0

label auto

    kernel vmlinuz
    append initrd=initrd.img method=ftp://192.168.100.1/centos ks=ftp://192.168.100.1/ks.cfg

label linux text
    kernel vmlinuz
    append text initrd=initrd.img method=ftp://192.168.100.1/centos

label linux rescue
    kernel vmlinuz
    append rescue initrd=initrd.img method=ftp://192.168.100.1/centos
    
验证PXE网络安装
注意:虚拟机实验中内存要调整为2G以上,否则报错!!
*为客户机安装系统
*调整BIOS设置,以便从网络引导
*自动获取IP地址,并指定centos7安装源
*其余过程与本地安装相同

编写自动应答文件

vim /var/ftp/ks.cfg
#可按需求自行修改
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
url --url="ftp://192.168.100.1/centos"
# Use graphical install
install
graphical
text
# Run the Setup Agent on first boot
firstboot --enable
firewall --disabled
selinux --disabled
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
# System language
lang zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --activate
network  --hostname=Liunx-1
reboot
# Root password
rootpw --iscrypted $6$m6ELNWU6f.1yYFZg$qoPUz/IfPb4KqmagLemSo6XSnR9X/YpQpHkqbfCxmtxjC6AqkxMywhGIWS6/fI2scq/xIVGLqfSEazuVZyOjB/
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^infrastructure-server-environment
@base
@compat-libraries
@core
@development
@hardware-monitoring
@java-platform
@performance
@security-tools
@smart-card
@system-admin-tools
chrony

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

##对文件进行授权
chmod +x /var/ftp/ks.cfg

验证自动安装
虚拟机环境如果无法获得dhcp的ip,禁用VMware的dhcp服务
将客户机以PXE方式引导
之后会自动完成系统安装,并配置好软件仓库
整个安装过程无需手动干预

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值