66利用PXE实现网络自动化部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了66利用PXE实现网络自动化部署相关的知识,希望对你有一定的参考价值。

PXE介绍

PXE:Preboot Excution Environment,预启动执行环境,是由Intel公司研发,基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,可以引导和安装Windows,linux等多种操作系统

PXE工作原理

66、利用PXE实现网络自动化部署_网络自动部署

1、客户端计算机通过网络启动时,将发送DHCP请求到局域网中的DHCP服务器,请求IP地址和引导服务器地址(Boot Server)。DHCP服务器收到请求后,将回复DHCP应答,包含了IP地址、引导服务器地址等信息。
2、客户端收到DHCP应答后,将向引导服务器请求PXE相关的引导文件(pxelinux.0)。
3、引导文件(pxelinux.0)将根据客户端硬件信息,确定使用何种引导方式(Bios/Legacy or UEFI)以及使用何种内核和ramdisk和pxelinux.cfg。如果需要的内核和ramdisk在本地存在,则将其加载到内存中;否则将从网络中下载。
4、当内核和ramdisk加载到内存后,将执行kickstart文件,该文件包含了一系列安装Linux操作系统的自动化脚本,安装过程无需人工干预。

UEFI客户端启动模式:​​UEFI网络自动化部署​

自动化安装部署
关闭防火墙和SELINUX,DHCP服务器静态IP
#安装http tftp-server dhcp system-config-kickstart,syslinux(包含pxelinux.0文件)
[root@centos7 ~]#yum -y install httpd tftp-server dhcp syslinux system-config-kickstart
[root@centos7 ~]#systemctl enable --now httpd tftp dhcpd

#准备yum源和目录
[root@centos7 ~]#mkdir -pv /var/www/html/centos/7/os/x86_64
[root@centos7 ~]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64

#准备kickstart文件,放入http目录上,可直接http访问
[root@centos7 ~]#mkdir /var/www/html/ks/
[root@centos7 ~]#vim /var/www/html/ks/centos7.cfg
[root@centos7 ~]#grep -vE ^#|^$ /var/www/html/ks/centos7.cfg
install
xconfig --startxonboot
keyboard --vckeymap=us --xlayouts=us
rootpw --iscrypted $1$bpNEv8S5$lK.CjNkf.YCpFPHskSNiN0
url --url="http://10.0.0.100/centos/7/os/x86_64"
lang en_US
auth --useshadow --passalgo=sha512
text
firstboot --enable
selinux --disabled
skipx
services --disabled="chronyd"
ignoredisk --only-use=sda
firewall --disabled
network --bootproto=dhcp --device=ens33
reboot
timezone Asia/Shanghai --nontp
bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
zerombr
clearpart --all --initlabel
part swap --fstype="swap" --ondisk=sda --size=3072
part / --fstype="xfs" --ondisk=sda --size=51200
part /boot --fstype="xfs" --ondisk=sda --size=1024
part /data --fstype="xfs" --ondisk=sda --size=30720
%post
useradd wang
%end
%packages
@core
%end

#配置DHCP服务
[root@centos7 ~]#vim /etc/dhcp/dhcpd.conf
option domain-name "example.com";
default-lease-time 600;
max-lease-time 7200;
subnet 10.0.0.0 netmask 255.255.255.0
range 10.0.0.1 10.0.0.200;
option routers 10.0.0.1;
next-server 10.0.0.100;
filename "pxelinux.0";

[root@centos7 ~]#systemctl start dhcpd

#准备PXE启动相关文件,放入TFTP目录文件夹
[root@centos7 ~]#mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@centos7 ~]#cp /usr/share/syslinux/pxelinux.0,menu.c32 /var/lib/tftpboot/
[root@centos7 ~]#cp /misc/cd/isolinux/vmlinuz,initrd.img /var/lib/tftpboot/
[root@centos7 ~]#cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
注意:
centos8需要额外3个文件
cp /var/www/html/centos/8/os/x86_64/isolinux/ldlinux.c32,libcom32.c32,libutil.c32 /var/lib/tftpboot/

最终目录
最终目录文件列表如下:
/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│ └── default
└── vmlinuz

#准备启动菜单
[root@centos7 ~]#Vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL MENU
label auto
menu label ^Auto Install CentOS 7
kernel vmlinuz
append initrd=initrd.img ks=http://10.0.0.100/ks/centos7.cfg
label manual
menu label ^Manual Install CentOS 7
kernel vmlinuz
append initrd=initrd.img inst.repo=http://10.0.0.100/centos/7/os/x86_64
label local
menu default
menu label ^Boot from local drive
localboot 0xffff
利用cobbler实现自动化安装
Cobbler是一款Linux生态的自动化运维工具,基于Python2开发,用于自动化批量部署安装操作系统;其提供基于CLI的管理方式和WEB配置界面,其中WEB配置界面是基于Python2和Django框架开
发。另外,cobbler还提供了API,方便二次开发。Cobbler属于C/S模型(客户端/服务器模型)
Cobbler主要用于快速网络安装linux操作系统,支持众多的Linux发行版如:Red Hat、Fedora、CentOS、Debian、Ubuntu和SuSE等,甚至支持windows的安装
Cobbler实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法Cobbler是在HTTP、TFTP、DHCP等各种服务的基础上进行相关操作的,实际安装的大体过程类似于基
PXE的网络安装:客户端(裸机)开机使用网卡引导启动,其请求DHCP分配一个地址后从TFTP服务器获取启动文件,加载到客户端本地内存中运行,并显示出可安装的系统列表;在人为的选定安装的操作
系统类型后,客服端会到HTTP服务器下载相应的系统安装文件并执行自动安装

66、利用PXE实现网络自动化部署_网络自动部署_02

client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
client裸机通过上面告知的TFTP server地址通信,下载引导文件
client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
cobbler server发送请求的kickstart和os iamge
client裸机加载kickstart文件
client裸机接收os image,安装该os image

以上是关于66利用PXE实现网络自动化部署的主要内容,如果未能解决你的问题,请参考以下文章

利用PXE实现自动化系统部署

Linux网络服务——PXE服务器实现Linux安装自动部署(包含操作详解)

PXE自动化部署

部署PXE高效批量网络装机并实现Kickstart无人值守自动安装

利用DHCP,http,tftp,pxe实现纯自动化安装系统

利用pxe dhcp tfcp http kickstart实现批量部署linux系统