WHCSRL 技术网

图文操作--PXE批量网络装机项目

PXE批量网络装机

1、系统装机的三种引导方式

硬盘,光驱,网络

2、系统安装过程:

  • 加载boot loader
  • 加载启动安装菜单
  • 加载内核和initrd系统
  • 加载根系统
  • 运行anaconda的安装向导

3、什么是PXE?

PXE 是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

pxe是通过网卡引导启动;

PXE批量部著的优点:
(1)规模化:同时装配多台服务器
(2)自动化:安装系统、配置各种服务
(3)远程实现:不需要光盘、U盘等安装介质

实现的硬件支持:

(1)BIOS支持;

(2)网卡支持(现在基本都已支持);

(3)需要在bios中开启开关,服务器一般没打开(bmc界面里打开);

(4)网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置;

(5)服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载;

4、实现过程:

(1)网卡需要查找相关的dhcp服务器(获取地址时间);

(2)找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务);

(3)网卡使用tftp客户端吧引导程序加载到内存中来;

(4)bios执行引导程序;

(5)引导程序会去TFTP去查找配置文件;

(6)根据配置文件去引导安装系统;

(7)系统安装过程;

在这里插入图片描述

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能 够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

PXE批量装机项目实验:

1、添加一块网卡,设置双网卡,网卡ens33 为NAT模式,网卡ens37 为仅主机模式。

注意:内存最好是2G 以上;

在这里插入图片描述

在这里插入图片描述

#配置ens37网卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/   //cd到网卡配置文件目录
[root@localhost network-scripts]# ls  //查看一部分,主要看ens33
ifcfg-ens33  ifdown-ppp       ifup-ib      ifup-Team
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37   //复制ens33网卡配置到ens37网卡
[root@localhost network-scripts]# vim ifcfg-ens37  //配置ens37网卡
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.159.100   //IP地址
NETMASK=255.255.255.0   //子网掩码
GATEWAY=192.168.159.1   //网关
DNS=8.8.8.8   //dns
[root@localhost network-scripts]# systemctl restart network  //重启网卡
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

在这里插入图片描述

2、用yum安装dhcp,TFTP,ftp和syslinux服务;配置其内容:

#安装dhcp服务
[root@localhost network-scripts]# yum install dhcp -y
  • 1
  • 2

在这里插入图片描述

3、将配置文件模板复制到dhcp目录下:

#将配置文件模板复制到dhcp目录下
[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y 

#修改dhcp配置文件
[root@localhost network-scripts]# vim /etc/dhcp/dhcpd.conf 
subnet 192.168.159.0 netmask 255.255.255.0 {
  range 192.168.159.10 192.168.159.50;
  option routers 192.168.159.1;
  next-server 192.168.159.100;
  filename "pxelinux.0";
}
#安装TFTP服务
[root@localhost network-scripts]# yum install tftp-server
#查看各个配置文件位置
[root@localhost network-scripts]# rpm -ql tftp-server 
#/etc/xinetd.d/tftp   //配置文件
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot
主要文件:
#/etc/xinetd.d/tftp    //配置文件
#/var/lib/tftpboot    //站点

[root@localhost network-scripts]# vim /etc/xinetd.d/tftp 
disable                 = no

#引导程序文件需要先安装此服务
[root@localhost network-scripts]# yum install syslinux -y
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

在这里插入图片描述

#安装完成后找到该文件的地址
[root@localhost network-scripts]# rpm -ql syslinux | grep 0
#拷贝到站点文件里
[root@localhost network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

#安装vsftp服务
[root@localhost network-scripts]# yum install vsftpd -y
#查看vsftp服务的配置文件
[root@localhost network-scripts]# rpm -ql vsftpd 
/var/ftp
[root@localhost network-scripts]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# ls
centos7  pub
[root@localhost ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@localhost centos7]# cd images/
[root@localhost images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
#将这两个配置文件复制到站点
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.159.100/centos7

label text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.159.100/centos7

label rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.159.100/centos7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

在这里插入图片描述

#重启服务和关闭防火墙
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service
[root@localhost pxelinux.cfg]# systemctl start dhcpd
[root@localhost pxelinux.cfg]# systemctl start tftp
[root@localhost pxelinux.cfg]# systemctl start vsftpd
[root@localhost pxelinux.cfg]# setenforce 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4、新建一个虚拟机,测试PXE装机:

注意:新建虚拟机的内存要大于2G,网卡为仅主机模式。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实现kickstart 无人值守安装:

kickstart文件主要包括三个部分:命令段,程序包段,脚本段;

#安装图形化工具
[root@localhost ~]# yum install system-config-kickstart -y
  • 1
  • 2

在这里插入图片描述

在没安装图形化工具之前是没有kickstart的工具;如图:

在这里插入图片描述

安装后有了图形化工具,接下来我们对图形化工具进行设置:

在这里插入图片描述

1、基本配置:

在这里插入图片描述

2、安装方法:

在这里插入图片描述

3、引导装载程序:

在这里插入图片描述

4、分区信息:

在这里插入图片描述

添加分区布局:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、配置网卡:(添加ens33网卡)

在这里插入图片描述

6、验证和防火墙设置:(防火墙全部禁用)

在这里插入图片描述

在这里插入图片描述

7、预安装脚本和安装后脚本:

在这里插入图片描述

在这里插入图片描述

8、保存配置到文件系统的 /var/ftp 下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9、回到命令行界面添加配置文件:

#cd 到 /var/ftp下,查看fs.cfg文件
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# vim ks.cfg 

#回到家目录,查看anaconda-ks.cfg文件
[root@localhost ~]# ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面
[root@localhost ~]# vim anaconda-ks.cfg 

#复制这些包到 /var/ftp/ks.cfg下
%%%%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%%%%end

#接下来到 /var/lib/tftpboot/ 下的 default 文件中修改配置
[root@localhost ftp]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
default
[root@localhost pxelinux.cfg]# vim default 
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.159.100/centos7 ks=ft
p://192.168.159.100/ks.cfg     #将应答文件 位置指明
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

10、实现批量自动装机:

新建虚拟机,注意内存大于2G,网卡为仅主机模式;

在这里插入图片描述

在这里插入图片描述

接下来只需安静的喝杯咖啡,静静的等待即可,一切都交给PXE工具;

在这里插入图片描述
到这里我们PXE工具批量网络装机完成。

在这里插入图片描述
总结:
实验要多动手做,才会印象深刻,光看和听实际效果不大,不要害怕困难,哪怕实验三四次都出不来结果,但还是要坚持做下去,要细心和要有耐心,实验结果一定会出来。
俗话说:世上无难事,只怕有心人。

推荐阅读