一、内容要点:

部署PXE远程安装服务

  • 搭建PXE远程安装服务器

  • 验证PXE网络安装

实现kickstart无人值守安装

  • 准备安装应答文件

  • 实现批量自动装机

二、服务器的批量部署

  • 规模化:同时装配多台服务器

  • 自动化:安装系统、配置各种服务

  • 远程实现:不需要光盘、U盘等安装介质

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装

三、关于PXE网络

PXE,Pre-boot eXcution Environment

●预启动执行环境,在操作系统之前运行

●可用于远程安装、构建无盘工作站

服务端

●运行DHCP服务,用来分配地址、定位引导程序

●运行TFTP服务器,提供引导程序下载

客户端

●网卡支持PXE协议

●主板支持网络启动

四、配置PXE装机服务器

1、基本部署过程

●准备CentOS 7安装源(YUM仓库)

●启用TFTP服务,并提供内核、引导程序

●启用DHCP服务,用来分配地址、指出引导程序位置

●配置启动菜单

2、TFTP服务及引导文件

●安装ftp-server软件包,启用tftp服务

●准备内核文件vmlinuz、初始化镜像initrd.img

●准备引导程序文件pxelinux.0

[root@localhost ~]# yum -y install tftp-sever
[root@localhost ~]# vi /etc/xinetd.d/tftp
                      server_ args = -s /var/lib/tftpboot
                              disable= no
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
[root@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz nitrd.img /var/lib/tftpboot
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

3、DHCP服务的PXE设置

[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255 255.0 {
......
option routers 192. 168.100.100;
option domain-name-servers 192.168.100.100
range 192.168.100.100 192.168.100.200;
next-server 192.168.100.100;
filename "pxelinux.0";
}
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd

4、默认的启动菜单文件

  • 创建/var/lib/tftpboot/pxelinux.cfg/default

[roo@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost -1# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kemel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192..168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

五、实验步骤如下

1、 实验环境:一台Linux服务机用来装PXE服务

                          一台未安装服务器的裸机

2、为了使NET服务可以正常使用,为服务机新添加一个网卡设为仅主机模式,配置静态IP,用来做DHCP分配地址

a、添加一个网卡,设置为仅主机模式,

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_02

b、配置新网卡ifcfg-ens36

[root@localhost ~]# cd /etc/sysconf ig/network-scripts/              到达网卡配置文件下
[root@loca lhost network scripts]# cp ifcfg-ens33 ifcfg-ens36        复制ifcfg-ens33的配置文件数据到ifcfg-ens36中
[root@localhost network-scripts ]# vim ifcfg-ens36                   配置网卡数据信息
[root@localhost network-scripts ]# systemctl restart network         重启network服务
[root@localhost network-scripts ]# ifconfig                          查看网卡信息

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_03

3、安装DHCP服务,编辑配置文件/etc/dhcp/dhcpd.conf

[root@localhost network-scripts]# yum install dhcp -y       安装DHCP服务
[root@localhost network scripts]# cp /usr/share/doc/ dhcp-4.2.5/dhcpd. conf .example /etc/dhcp/dhcpd . conf   复制配置文件模板到目标配置文件下
[root@localhost network scripts]# vim /etc/dhcp/ dhcpd . conf            编辑目标配置文件
subnet 192. 168.100.0 netmask 255. 255.255.0 {
          range 192. 168.100.100 192.168.100.200;
          option routers 192.168.100.100;
          option domain-name-servers 114.114.114, 114;
          next-server 192.168. 100.100 ;
          filename" pxe linux.0" ;
}

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_04

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_05

4、安装引导程序文件syslinux,并查看引导文件pxelinux.0的位置

[ root@localhost network-scripts]# yum install syslinux -y     安装syslinux
[ root@localhost network - scripts]# rpm -ql syslinux | grep pxe linux        查看引导文件的路径

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_06

5、安装TFTP服务,开启配置文件,将引导程序放入站点中

a、安装TFTP服务,开启配置文件

[root@localhost network-scripts]# yum install tftp-server -y     安装tftp-server
[root@localhost network-scripts]# rpm -ql tftp-server  查看文件位置
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp   编辑/etc/xinetd.d/tftp开启tftp服务

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_07

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_08

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_09

b、复制引导文件pxelinux.0到var/lib/tftpboot中TFTP站点

[root@localhost network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/      复制引导文件到tftp站点中
[root@localhost network scripts]# cd /var/lib/tftpboot/        切换到站点中查看
[root@localhost tftpboot]# ls        复制成功
pxel inux.0

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_10

6、安装vsftpd服务,将镜像文件挂载到新建目录centos7中,然后将其中的文件压缩内核和初始化文件复制到TFTP站点中

[root@localhost tftpboot]# yum install vsftpd -y           安装vstfpd服务
[root@localhost tftpboot]# cd /var/ftp                     切换到vstfpd配置文件下
[root@localhost ftp]# mkdir centos7                        创建新目录
[root@localhost ftp]# mount /dev/sr0 centos7/            挂载镜像文件至新目录中
[root@localhost ftp]# cd centos7/images/pxeboot/           切换到centos7/images/pxeboot/下
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/    复制初始化文件和压缩内核到TFTP站点中     
[root@localhost pxeboot]# ls /var/lib/tftpboot/

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_11

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_12

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_13

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_14

7、编辑启动菜单default配置文件,开启三个服务,关闭防火墙,关闭增强安全性的功能

[root@localhost pxeboot]# cd /var/lib/tftpboot/            切换到tftp站点    
[root@localhost tftpboot]# mkdir pxelinux.cfg              创建配置文件目录
[root@localhost tftpboot]# ls        
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/                切换到配置文件
[root@localhost pxelinux.cfg]# vim default                 编辑配置文件
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service    关闭防火墙
[root@localhost pxelinux.cfg]# setenforce 0                        关闭增强安全性的功能
[root@localhost pxelinux.cfg]# systemctl start dhcpd               启动三个服务
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_15

8、创建并开启未安装系统的逻辑,选择网络装机,安装系统,测试实验结果


PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_16

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_17

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_18

pxe批量装机服务部署成功!


六、无人值守安装kickstart

1、kickstart无人值守技术

●创建应答文件,预先定义好各种安装设置

●免去交互设置过程,从而实现全自动化安装

●通过添加%post脚本,完成安装后的各种配置操作

2、应答文件的来源

●编辑CentOS 7系统中现有的应答文件

。/root/anaconda-ks.cfg

●使用system-config-kickstart工具创建新的应答文件

。需要安装system-config-kickstart软件包

3、实验步骤

a、安装kickstart软件包,并打开设置

[root@localhost ~]# yum install system-config-kickstart -y     安装kickstart软件包

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_19

b、打开服务机进行设置

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_20

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_21

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_22

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_23

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_24

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_25

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_26

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_27

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_28

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_29

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_30

c、将安装软件包的模板复制到ks.cfg中,并在/var/lib/tftproot中引导加载模板,让其生效。查看ks.conf,复制本地anaconda-ks.cfg中的packages软件包模板到ks.cfg中

[root@localhost ~]# cd /var/ftp/      切换到/var/ftp查看刚刚保存的配置文件
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost pxelinux.cfg]# cd /root  切换到本地/root下
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# vim anaconda-ks.cfg 将anaconda-ks.cfg中的安装软件包模块复制到/var/ftp/下的ks.cfg中
[root@localhost ~]# vim /var/ftp/ks.cfg  编辑ks.cfg

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_31

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_32

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_33

d、引导加载ks.cfg模板到/var/lib/tftproot/pxelinux.cfg/下的default配置文件中

[root@localhost ftp]# cd /var/lib/tftpboot/pxelinux.cfg/      切换到default路径中
[root@localhost pxelinux.cfg]# ls
default
[root@localhost pxelinux.cfg]# vim default 编辑配置文件default

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_34

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_35

e、开启未安装系统的裸机,查看实验效果

PXE远程安装服务及无人值守安装kickstart_pxe kickstart无人值守安装_36


安装成功,实验成功