Linux-centos--PXE高效批量网络装机详解(PXE远程安装与kickstart无人值守安装)

前言

PXE是作为Intel的有线管理体系的一部分,Intel 和 Systemsoft于1999年9月20日公布其规格(版本2.1)。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。
PXE 客户机(client)这个术语是指机器在PXE启动过程中的角色。一个PXE 客户机(client)可以是一台服务器、桌面级电脑、笔记本电脑或者其他装有PXE启动代码的机器。

一:部署PXE远程安装服务

1.1:搭建PXE远程安装服务器

1.1.1:服务器的批量部署
规模化:同时装配多台服务器

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

远程实现:不需要光盘,U盘等安装介质
在这里插入图片描述

1.1.2:关于PXE网络
PXE,Pre-boot eXcution Environment

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

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

服务端

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

引导程序:微代码,存放在TFTP服务器中

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

TFTP服务器时UDP协议,端口号69

镜像文件存放在:vsftpd,TCP协议,端口号20,21

客户端

网卡支持PXE协议

主板支持网络启动

1.1.3:配置PXE装机服务器
基本部署过程

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

安装tftp-server软件包,启动tftp服务
准备内核文件vmlinuz,初始化镜像initrd.img
准备引导程序文件pxelinux.0(依赖于syslinux)

DHCP服务的PXE设置
subnet 192.168.150.0 netmask 255.255.255.0 {
  range 192.168.150.20  192.168.150.50;
  option routers 192.168.150.100;
  option domain-name-servers 8.8.8.8;
  next-server 192.168.150.100;   // '指定TFTP服务器地址'
  filename "pxelinux.0";       // 'filename:指定要下载的引导程序文件
}

默认的启动菜单文件☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

创建/var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
       kernel vmlinuz
       append initrd=initrd.img method=ftp://192.168.150.100/centos7
label linux text
       kernel vmlinuz
       append text initrd=initrd.img method=ftp://192.168.150.100/centos7
label linux rescue
       kernel vmlinuz
       append rescue=initrd.img method=ftp://192.168.150.100/centos7

1.2:PXE自动部署步骤总结

1.设置双网卡,

2.设置DHCP,用来自动获取IP地址,引导定位TFTP位置

next-server TFTP IP

filename “pxelinux.0

3.设置TFTP(先安装tftp-server并设置)

1.安装syslinux(包含pxelinux.0)并设置,引导程序
2.压缩内核 vmlinuz (在iso镜像文件中获取)
3.初始化文件 initrd.img (iso镜像文件中获取)
4.默认配置文件 default (自建三个模式,默认时auto,指引FTP镜像系统文件位置)

二.具体PXE实验装机步骤

2. 1. 准备centos7环境的主机一台,做PXE主机

2 .2. 配置双网卡,主要一个用于连接外网下载软件,一个用于在局域网分配DHCP

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

## 2.3.安装DHCP 服务,配置DHCPd.conf
[root@shanan network-scripts]# vi /etc/dhcp/dhcpd.conf 
subnet 192.168.150.0 netmask 255.255.255.0 {
  range 192.168.150.20  192.168.150.50;
  option routers 192.168.150.100;
  option domain-name-servers 8.8.8.8;
  next-server 192.168.150.100;
  filename "pxelinux.0";
}
[root@shanan network-scripts]# systemctl start dhcpd

2.4.安装syslinu软件

[root@shanan network-scripts]# yum install syslinux -y

查看文件位置
[root@shanan ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0

2.5. 安装TFTP软件

[root@shanan ~]# yum install -y tftp-server
查看文件路径
[root@shanan ~]# 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  // 站点
[root@shanan ~]# 

2.5.1 将PXE放入站点

[root@shanan ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@shanan ~]# ls /var/lib/tftpboot
pxelinux.0
[root@shanan ~]# ls /var/lib/tftpboot
pxelinux.0

2.5.2 开启TFTP服务

[root@shanan ~]# vi /etc/xinetd.d/tftp 

在这里插入图片描述

2.6. 安装vsftpd 软件

[

root@shanan ~]# yum install vsftpd
在其站点下,创建centos7
[root@shanan ftp]# mkdir centos7
[root@shanan ftp]# ls
centos7  pub
[root@shanan ftp]# pwd
/var/ftp
将镜像挂载到FTP
[root@shanan ftp]# mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@shanan ftp]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  4.5G   46G    9% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   11M  900M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
/dev/mapper/centos-home  247G  442M  247G    1% /home
/dev/mapper/vg01-lv01    2.9G  9.1M  2.8G    1% /mnt
tmpfs                    182M  4.0K  182M    1% /run/user/42
tmpfs                    182M   40K  182M    1% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /var/ftp/centos7

2.7拷贝initrd.img vmlinuz 到TFTP站点

[root@shanan ftp]# cd centos7/
[root@shanan 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@shanan centos7]# cd images/
[root@shanan images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@shanan images]# cd pxeboot/
[root@shanan pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@shanan pxeboot]# cp initrd.img  vmlinuz  /var/lib/tftpboot/
[root@shanan pxeboot]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz

2.7.1手工添加配置文件

[root@shanan images]# cd /var/lib/tftpboot/
[root@shanan tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@shanan tftpboot]# mkdir pxelinux.cfg
[root@shanan tftpboot]# cd pxelinux.cfg/
[root@shanan pxelinux.cfg]# vi default

default auto
prompt 1       //此处如果设为0,则自动安装进BOOT不停顿
label auto
       kernel vmlinuz
       append initrd=initrd.img method=ftp://192.168.150.100/centos7
label linux text
       kernel vmlinuz
       append text initrd=initrd.img method=ftp://192.168.150.100/centos7
label linux rescue
       kernel vmlinuz
       append rescue=initrd.img method=ftp://192.168.150.100/centos7
~                                                                   ~                                         

2.8关闭防火墙,启动服务,开始测试

[root@shanan pxelinux.cfg]# setenforce 0
setenforce: SELinux is disabled
[root@shanan pxelinux.cfg]# systemctl stop firewalld
[root@shanan pxelinux.cfg]# systemctl start dhcpd
[root@shanan pxelinux.cfg]# systemctl start tftp
[root@shanan pxelinux.cfg]# systemctl start vsftpd

2.8.1开启裸金属设备,设启动项为网络装机

在这里插入图片描述

2.8.2 然后回车 一下,继续安装

在这里插入图片描述

2.8.3 结束

在这里插入图片描述

三. 无人值守装机

刚刚的操作,感觉还是不够智能,下面介绍无人值守装机,这里在之前基础上继续操作。

3.1安装核心软件

[root@shanan ~]# yum install system-config-kickstart -y  //安装核心软件

在这里插入图片描述

3.2 手动添加配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 保存配置到/var/ftp 下

在这里插入图片描述

3.5 添加软件包组参数

在这里插入图片描述

[root@shanan tftpboot]# cd /var/ftp
[root@shanan ftp]# ls
centos7  ks.cfg  pub
[root@shanan ftp]# vi ks.cfg

在这里插入图片描述

3.6 修改 default 参数

[root@shanan ftp]# cd /var/lib/tftpboot/

[root@shanan tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@shanan tftpboot]# cd pxelinux.cfg/
[root@shanan pxelinux.cfg]# ls
default
[root@shanan pxelinux.cfg]# vi default 
[root@shanan pxelinux.cfg]# 

在这里插入图片描述

3.7 开启裸金属,选择网络装机,测试

### 3.7.1 启动服务
[root@shanan ~]# vi /etc/dhcp/dhcpd.conf 
[root@shanan ~]# systemctl restart dhcpd
[root@shanan ~]# systemctl restart tftp
[root@shanan ~]# systemctl restart vsftpd

在这里插入图片描述

3.7.2报错了!!!

原来是之前挂载的光盘是临时挂载的,掉了,重新挂载下 解决
在这里插入图片描述

3.7.3 重启重新安装,结束

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/BIGmustang/article/details/107352369