部署PXE远程安装服务
PXE(Preboot eXecution Environment,预启动执行环境)技术的网络装机方法,并结合 Kickstart 配置实现无人值守自动安装。
上述服务器的批量部署方法,具备以下三个优点:
规模化:同时装配多台服务器;
自动化:安装系统、配置各种服务;
远程实现:不需要光盘、U盘等安装介质。
PXE 是由 Intel 公司开发的网络引导技术,工作在 CientServer 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。若要搭建 PXE网络体系,必须满足以下几个前提条件。
客户机的网卡支持 PXE协议(集成 BOOTROM 芯片),且主板支持网络引导。
网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
搭建PXE远程安装服务器
(1)构建vsftpd服务,并部署centos 7安装源
[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo
[developmnt]
name=Red Hat Enterprise Linux
baseurl=file:///media/cdrom/
enabled=1
gpgcheck=0
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd
Yum配置文件的id部分必须设置为[development],否则在kickstart中找不到软件包信息.
(2)构建TFTP服务,并准备好引导程序,引导菜单,linux内核,初始化镜像
TFTP 服务由 tftp-server 软件包提供,配置文件位于/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
{
…… //省略部分信息
disable = no
…… //省略部分信息
}
用于 PXE 网络安装的 Linux 内核、初始化镜像文件可以从 CentOS7系统光盘获得,分别为 vmlinuz 和 initrd.img,位于文件夹 images/pxeboot下。找到这两个文件并将其复制到 tftp 服务的根目录下“/var/lib/tftpboot”。
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# cd /media/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/ \\拷贝内核和镜像
TRANS.TBL:文件名转换表文件,在制作ISO映像文件时在每个目录中生成的文件,记录每个目录中所包含的文件名。
initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。initrd-2.4.7-10.img主要是用于加载文件系统及scsi设备的驱动。
(3)准备PXE引导程序
用于 PXE 网络安装的引导程序为 pxelinux.0,由软件包 syslinux 提供。安装好软件包syslinux,然后将文件 pxelinux.0 也复制到 tftp 服务的根目录下。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作手动建立。
[root@localhost ~]# yum -y install syslinux \\安装pxe程序
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ \\拷贝引导程序pxelinux.0
[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://192.168.10.101/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.10.101/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.10.101/centos7
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中,prompt用来设置是否等待用户选择:label用来定义并分隔启动项;kernel和 append用来定义引导参数。引导入口的个数及内容根据需要自行定义。例如,实现无人值守安装时只需要一个入口就够了。
(4)构建DHCP服务,以便为192.168.10.0/24网段分配地址,并设置TFTP参数
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.200 192.168.10.250;
next-server 192.168.10.101;
filename "pxelinux.0";
}
[root@localhost ~]# systemctl start dhcpd
(5)验证PXE网络安装
新建虚拟机,如果服务器配置正确,网络连接、PXE支持等都没有问题,则客户机重启后将自动配置 IP 地址,然后从 TFTP 服务器中获取引导程序 pxelinux.0,并根据引导菜单配置提示用户指定启动入口,如图 所示。
在提示字串“boot:"后直接按 Enter 键(或执行"auto"命令),将会进入默认的图形安装入口;若执行“linux text"命令,则进入文本安装入口;若执行“linuxrescue”命令,则进入救援模式。直接按 Enter 键确认后将自动通过网络下载安装文件,并进入图形安装程序界面。
实现Kickstart无人值守安装
(1)准备安装应答文件
在 CentOS7系统中安装 system-config-kickstart 工具之后,即可通过图形化向导工具来配置安装应答文件。如果用户对自动应答文件的配置比较熟悉,也可以直接编辑 CentOS7 安装后自动创建的应答文件(rootanaconda-ks.cfg),根据需要适当修订后使用。
[root@localhost ~]# yum -y install system-config-kickstart
(2)运行kickstart配置程序,按实验要求创建ks.cfg应答文件。
在图形桌面环境中,按Alt+F2组合键后输入system-config-kickstart并点运行,或者打开桌面菜单“应用程序”→“系统工具”→“kickstart”。
注意:
如果此处看不到软件包列表,需要将yum源配置文件中括号中的内容改为development
图形化界面配置后保存,文件名用默认的ks.cfg。
(3)将应答文件复制到centos7安装源所在的FTP目录下。
[root@localhost ~]# cp /root/ks.cfg /var/ftp/
[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
##添加红色部分,其余的删掉
default auto
prompt 0
label auto
kernel vmlinuz
append ks=ftp://192.168.10.101/ks.cfginitrd=initrd.img method=ftp://192.168.10.101/centos7
(4)、验证PXE网络装机
(1)将1台裸机连接到PXE服务器所在网络,并确认能够通过网络引导。
(2)打开裸机的电源,确认引导成功并自动安装好centos7系统。
(3)新建虚拟机是内存大于2G,磁盘调的大一点,给个60G以上。