PXE高效批量网络装机比较乱,用心看

1、部署 PXE 远程安装服务
在大规模的 Linux 应用环境中,如 Web 群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB 光驱、移动硬盘等安装方法显然已经难以满足需求。
PXE 是由 Intel 公司开发的网络引导技术,工作在Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
2、搭建PXE远程安装服务器
本例的 PXE 远程安装服务器集成了 CentOS 7 安装源、 TFTP 服务、 DHCP 服务,能够向客户机裸机发送 PXE 引导程序、 Linux 内核、启动菜单等数据,以及提供安装文件。
规划:
一台Linux系统搭建服务 20.0.0.50
一台Linux系统做PXE测试 DHCP获取
软件版本:CentOS 7.6
CentOS 7 的网络安装源一般通过 HTTP、 FTP 协议发布,另外也支持 NFS(Network File
System,网络文件系统)协议,关于 NFS 的配置请参阅其他资料,这里不再赘述。
例如,若采用 FTP 协议发布安装源,可以在服务器上部署一个 YUM 软件仓库。

[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd

注意!!!!:架设ftp一定要关闭防火墙和核心防护
TFTP 服务由 tftp-server 软件包提供,配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable = yes”改为“disable = no”,然后启动 TFTP 服务即可。

[root@localhost ~]# yum -y install tftp-serverr
[root@localhost ~]# vi /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
}

[root@localhost ~]# systemctl start tftp         ##开启tftp服务
[root@localhost ~]# systemctl enable tftp        ##设为开机自启
Created symlink from
/etc/systemd/system/sockets.target.wants/tftp.socket to
/usr/lib/systemd/system/tftp.socket.

用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下。

[root@localhost ~]#   cd /mnt/images/pxeboot/   
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ 

用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。

[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好DHCP 服务来自动分配地址并告知引导文件位置。如 PXE 服务器的 IP 地址为20.0.0.254, DHCP 地址池为 20.0.0.100~20.0.0.200,则可以参考以下操作来搭建 DHCP 服务器。

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 20.0.0.0 netmask 255.255.255.0 {
option routers 20.0.0.2;
option subnet-mask 255.255.255.0;
option domain-name "qhdx.com";
option domain-name-servers 8.8.8.8,114.114.114.114;
default-lease-time 21600;
max-lease-time 43200;
range 20.0.0.100 20.0.0.200;     ##指定 DHCP 地址池
next-server 20.0.0.50;          ##指定 TFTP 服务器的地址
filename "pxelinux.0";           ##指定 PXE 引导程序的文件名
[root@localhost ~]# systemctl start dhcpd      ##开启DHCP服务
[root@localhost ~]# systemctl enable dhcpd    ##设为开机自启
Created symlink from
/etc/systemd/system/multi-user.target.wants/dhcpd.service to
/usr/lib/systemd/system/dhcpd.service.
}

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作手动建立。

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto           ###指定默认入口名称
prompt 1                ###1 表示等待用户控制
label auto
 kernel vmlinuz
 append initrd=initrd.img method=ftp://20.0.0.50/centos7
label linux text
 kernel vmlinuz
 append text initrd=initrd.img method=ftp://20.0.0.50/centos7
label linux rescue
 kernel vmlinuz
 append rescue initrd=initrd.img method=ftp://20.0.0.50/centos7

上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中, prompt 用来设置是否等待用户选择; label 用来定义并分隔启动项; kernel 和append用来定义引导参数。引导入口的个数及内容根据需要自行定义

搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了。对于新购买的服务器或 PC 裸机,一般不需要额外设置;若要为已有系统的主机重装系统,则可能需要修改BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机。
在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形安装入口;若执行“linux text”命令,则进入文本安装入口;若执行“linux rescue”命令,则进入救援模式。直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面,如图所示。若能够成功到达这一步,说明 PXE 网络安装基本成功。

3、实现 Kickstart 无人值守安装
通过 PXE 技术远程安装 CentOS 7 系统的方法,安装介质不再受限于光盘、移动硬盘等设备,大大提高了系统安装的灵活性。然而,安装期间仍需要手动选择语言、键盘类型、指定安装源等一系列交互操作,当需要批量安装时非常不方便。
我们通过使用 Kickstart 工具配置安装应答文件,自动完成安装过程中的各种设置,从而无须手动干预,提高网络装机效率。
通过使用 Kickstart 工具配置安装应答。在 CentOS 7 系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具来配置安装应答文件:
[root@localhost ~]# yum -y install system-config-kickstart
下面上图:
PXE高效批量网络装机比较乱,用心看_第1张图片
PXE高效批量网络装机比较乱,用心看_第2张图片
PXE高效批量网络装机比较乱,用心看_第3张图片
PXE高效批量网络装机比较乱,用心看_第4张图片
PXE高效批量网络装机比较乱,用心看_第5张图片
PXE高效批量网络装机比较乱,用心看_第6张图片
PXE高效批量网络装机比较乱,用心看_第7张图片
PXE高效批量网络装机比较乱,用心看_第8张图片
这里添加了安装后配置yum环境脚本

rm -rf /etc/yum.repos.d/*
echo -e '[base]\nname=CentOS7.6\nbaseurl=ftp://20.0.0.254/centos7\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'>/etc/yum.repos.d/centos7.repo

这些设置完之后选择“Kickstart 配置程序”窗口的“文件”→“保存”命令,指定目标文件夹、文件名,将配置好的应答参数保存为文本文件,如/root/ks.cfg。
PXE高效批量网络装机比较乱,用心看_第9张图片
PXE高效批量网络装机比较乱,用心看_第10张图片
然后就用终端软件连进去修改配置文件,也可以直接直接操作,看个人习惯。
PXE高效批量网络装机比较乱,用心看_第11张图片
PXE高效批量网络装机比较乱,用心看_第12张图片
进去之后最后加入以下代码是最小化安装:

%packages
@^minimal
%end

如果是想安装图形界面操作如下:
PXE高效批量网络装机比较乱,用心看_第13张图片
PXE高效批量网络装机比较乱,用心看_第14张图片
PXE高效批量网络装机比较乱,用心看_第15张图片
然后把这个ks.cfg文件放到ftp目录下
[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg
最后:
PXE高效批量网络装机比较乱,用心看_第16张图片

下面验证无人值守安装:
启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预。
客户机安装完成以后,检查其 YUM 软件仓库配置,可以发现已经按照“安装后脚本”的设置自动建立了/etc/yum.repos.d/centos7.repo 文件。
注意!!这里有可能需要客户机进入BIOS选择启动项如图:
PXE高效批量网络装机比较乱,用心看_第17张图片进入图形界面之后:
PXE高效批量网络装机比较乱,用心看_第18张图片
PXE高效批量网络装机比较乱,用心看_第19张图片

你可能感兴趣的:(PXE高效批量网络装机比较乱,用心看)