Linux网络—PXE高效网络装机与实现Kickstart自动安装实验

前言

在大规模的 Linux 应用环境中,如 Web群集、分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。可以采用PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合 Kckstart 配置实现无人值守自动安装

一、PXE简介

1.1 PXE批量网络装机的优点

  • 规模化:同时装配多台服务器
  • 自动化:安装系统、配置各种服务
  • 远程实现:不需要光盘、 U 盘等安装介质

1.2 搭建PXE体系的前提条件

  • PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统
  • 若要搭建 PXE 网络体系,必须满足以下几个前提条件
    • 客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
    • 网络中有一台 DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
    • 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载
  • 其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数 PC 都能够提供此支持,只需在 BIOS 设置中允许从 Network 或 LAN 启动即可。下面将介绍 PXE 远程安装服务的基本部署过程

二、部署PXE远程安装服务

2.1 搭建PXE远程安装服务器实验拓扑图

实验拓扑图

2.2 配置PXE装机服务器

  • 基本部署过程
    • 准备centos 7 安装源(yum仓库)
    • 启动TFTP服务,并提供内核,引导程序
    • 启动DHCP服务,用来分配地址,指导引导程序位置
    • 配置启动菜单

2.2.1 准备CentOS 7 安装源

[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

2.2.2 TFTP服务及引导文件

  • TFTP的主要作用:服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载
  • 安装tftp-server软件包,启动tftp服务,配置文件位于/etc/xinetd.d/tftp
  • 配置时只要将“disable =yes”改为“disable = no”,然后启动 TFTP 服务即可
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
service tftp
{
...省略部分信息...
protocol = udp                                            ###TFTP 采用 UDP 传输协议
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot             ###指定 TFTP 根目录
disable = no
####省略部分信息
}
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp

2.2.3 安装并开启dhcp功能

  • 由于 PXE 客户机通常是尚未装系统的裸机,因此为了与服务器取得联系并正确下载相关引导文件,需要预先配置好 DHCP 服务来自动分配地址并告知引导文件位置
    • PXE 服务器的 IP 地址为 20.0.0.27
    • DHCP 地址池为 20.0.0.100~20.0.0.200
[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.254;
option subnet-mask 255.255.255.0;
option domain-name "bdqn.com";
option domain-name-servers 20.0.0.254,202.106.0.20;
default-lease-time 21600;
max-lease-time 43200;
range 20.0.0.100 20.0.0.200;
next-server 20.0.0.254;                    #####指定 TFTP 服务器的地址
filename "pxelinux.0";                     ####指定 PXE 引导程序的文件名
}

[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

2.2.4 准备linux内核,初始化镜像文件,PXE 引导程序

  • 用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS 7 系统光盘获得,分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot 下。找到这两个文件并将其复制到 tftp 服务的根目录下
  • 用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下
[root@localhost ~]# cd /mnt/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost ~]# yum -y install syslinux
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

挂载

2.2.5 配置启动菜单文件

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default

default auto
prompt 1
label auto
 kernel vmlinuz
 append initrd=initrd.img method=ftp://20.0.0.254/centos7
label linux text
 kernel vmlinuz
 append text initrd=initrd.img method=ftp://20.0.0.254/centos7
label linux rescue
 kernel vmlinuz
 append rescue initrd=initrd.img method=ftp://20.0.0.254/centos7
  • /var/lib/tftpboot/pxelinux.cfg记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式
    • prompt 用来设置是否等待用户选择
    • label 用来定义并分隔启动项
    • kernel 和 append用来定义引导参数
  • 引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要一个入口就够了

2.2.6 验证PXE

  • 搭建好 PXE 远程安装服务器以后,就可以使用客户机进行安装测试了
  • 对于新购买的服务器或 PC裸机,一般不需要额外设置
  • 若要为已有系统的主机重装系统,则可能需要修改BIOS 设置,将“Boot First”设为“NETWORK”或“LAN”,然后重启主机
  • 若使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要2GB,否则在启动安装时会报错
  • 如果服务器配置正确,网络连接、 PXE 支持等都没有问题,则客户机重启后将自动配置 IP 地址,然后从TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用户指定启动入口
  • 在提示字串“boot:”后直接按 Enter 键(或执行“auto”命令),将会进入默认的图形 安装入口
    • 若执行“linux text”命令,则进入文本安装入口
    • 若执行“linux rescue”命 令,则进入救援模式
  • 直接按 Enter键确认后将自动通过网络下载安装文件,并进入图形安装程序界面
  • 若能够成功到达这一步,说明 PXE 网络安装基本成功。后续安装步骤与使用光盘 的正常安装类似
    PXE装机
    成功

三、实现Kickstart无人值守安装

3.1 准备安装应答文件

  • kickstart无人值守技术
    • 创建应答文件,预先定义好各种安装设置
    • 免去交互设置过程,从而实现全自动化安装
    • 通过添加%post脚本,完成安装后的各种配置操作
  • 应答文件的内容

3.2 实现批量自动装机

3.2.1 图形界面安装信息

[root@localhost ~]# yum install system-config-kickstart -y
'安装kickstart工具'

设置kickstart
在这里插入图片描述设置ftp
下载安装引导程序
分区信息
添加网卡
禁用防火墙
添加解释程序
保存

3.2.2 具体安装配置

基本配置:
 默认语言:Chinese (P.R. of China)---中文(简体)
 键盘:U.S English
 时区:Asia/Shanghai
 Root密码:Abc123
 默认密码:Abc123
 勾选√:给root密码加密

高级配置:
 目标架构:X86AMD64、活IntelEm64T
 勾选√:安装后重启
 不勾选:在文本模式中执行安装(默认为图形化模式)
安装方法:
 勾选√:执行全新安装

安装方法:
 勾选√:FTP  
 FTP服务器:ftp://20.0.0.254
 FTP目录:centos

引导装载程序选项

安装类型:
 勾选√:安装新引导装载程序

分区信息

在“分区信息”界面中,需正确规划硬盘分区方案。例如,可划分一个 500MB 的/boot分区、 4GB 的/home 分区、 2GB 的 swap 分区,将剩余空间划分给根分区
/boot    xfs  是    500
/home   xfs  是  4096
swap     swap  是  2048
/ xfs 是 1

网络配置及防火墙配置

在“网络配置”界面中,添加一个网络设备“ens33”,将网络类型设为“DHCP”。
在“防火墙配置”界面中,可以选择禁用 SELinux、禁用防火墙。

安装脚本

在“预安装脚本”界面、“安装后脚本”界面中,可以分别添加在安装前、安装后自动
运行的可执行语句。此项设置使服务器的自动化配置变得更加容易。例如,可以使客户机在完成安装后自动设置 YUM 软件仓库。需要注意的是,应确保所编写的代码能够正确执行,以免安装失败

其他信息

若没有特殊需求,在“验证”界面、“显示配置”界面中,保持默认设置就可以了

安装脚本后

勾选√:使用解释程序:/bin/bash
在下面键入您的%post脚本:
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。以后若要修改此应答配置,可以在“Kickstart 配置程序”窗口中打开进行调整,或者直接用 VI 等文本编辑工具进行修改

3.3 实现批量自动装机

  • 有了自动安装的应答文件之后,只要将其放置 PXE 安装服务器的 FTP 目录下,并适当修改引导菜单,就可以实现基于网络的批量自动装机了

1.启用自动应答文件在 PXE 远程安装服务器中,将上一节建立的应答文件复制到/var/ftp/centos7 目录下,使客户机能ftp://20.0.0.27/centos7/ks.cfg 访问;然后编辑引导菜单文件default,添加 ks 引导参数以指定 ks.cfg 应答文件的 URL 路径

[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
 kernel vmlinuz
 append initrd=initrd.img method=ftp://20.0.0.27/centos7 ks=ftp://20.0.0.27/ks.cfg

2.验证无人值守安装
启用自动应答安装之后,当客户机每次以 PXE 方式引导时,将自动下载 ks.cfg 应答配置文件,然后根据其中的设置安装 CentOS 7 系统,而无须手工干预,这样就可以同时为多台客户机安装系统了。客户机安装完成以后,检查其 YUM 软件仓库配置,可以发现已经按照“安装后脚本”的设置自动建立了/etc/yum.repos.d/centos7.repo 文件

[root@localhost ~]# cat /etc/yum.repos.d/centos7.repo
[base]
name=CentOS7.6
baseurl=ftp://20.0.0.27/centos7
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/ RPM-GPG-KEY-CentOS-7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值