目录
一、PXE概述
PXE(预启动执行环境)是由Inter公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统
二、PXE批量部署的优点
1、规模化:同时装配多台服务器
2、自动化:安装系统、配置各种服务
3、远程实现:不需要光盘、U盘等安装介质
三、搭建PXE网络体系所需条件
1、客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器都支持,只需要在BIOS设置中允许从Network或LAN启动即可。
2、网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
3、服务器要通过TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。
四、搭建PXE远程安装服务器
PXE远程安装服务器集成了CentOS7安装源、TFTP服务、DHCP服务,能够向客户机裸机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件。
主机服务器地址:192.168.100.100
一台主机:1)配置双网卡 一个作用是dhcp,一个是使用网络源安装环境包
2)DHCP部署
3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
4)syslinux //用来提供pxe的引导程序
5)xinetd //用来托管tftp
6)vsftpd //用来放置安装镜像,通过ftp访问镜像安装
7)kickstart //用来无人值守安装
1、安装DHCP服务
先给pxe服务器配置一个网卡,裸客户机需要和此网卡一致
编辑ens37网卡配置
[root@ky17 network-scripts]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 ifcfg-ens37
[root@ky17 network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-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.100.100 本机ip
PREFIX=24
netmask=255.255.255.0
GATEWAY=192.168.100.100 网关ip
#IPV6_PRIVACY=no
#DNS1=8.8.8.8
PEERROUTES=no
[root@ky17 network-scripts]#systemctl restart network 重启网卡
[root@ky17 dhcp]# yum -y install dhcp 安装dhcp
[root@ky17 dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
/etc/dhcp/dhcpd.conf 将模板文件复制到配置文件中
[root@ky17 pxeboot]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none; 这行解除注释
subnet 192.168.100.0 netmask 255.255.255.0 { 配置网段
range dynamic-bootp 192.168.100.40 192.168.100.50; 配置地址池
option routers 192.168.100.100; 配置网关
option domain-name-servers 8.8.8.8;
next-server 192.168.100.100; 指定tftp服务器的地址
filename "pxelinux.0"; 指定pxe引导程序的文件名
}
[root@ky17 dhcp]#systemctl start dhcpd 开启dhcp功能
2、安装tftp
[root@ky17 www]# yum -y install tftp-server xinetd 安装tftp(tftp依赖于xinetd,所以也要安装xinetd)
[root@ky17 pxeboot]# vim /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = no 表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则需要等待
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no no表示开启TFTP服务
per_source = 11
cps = 100 2
flags = IPv4
}
~
[root@ky17 www]# mount /dev/sr0 /mnt 光盘挂载
[root@ky17 www]# cd /mnt/images/pxeboot/ 内核初始化镜像文件
[root@ky17 pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ 拷贝到站点
[root@ky17 pxeboot]# systemctl start xinetd
[root@ky17 pxeboot]# systemctl start tftp 开启tftp服务
3、准备pxe引导程序
[root@ky17 pxeboot]# yum -y install syslinux
[root@ky17 pxeboot]#rpm -ql syslinux | grep pxelinux #查找pxe引导程序的位置
[root@ky17 pxeboot]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #拷贝到tftp的根目录下,系统引导文件
4、安装ftp源
[root@ky17 pxeboot]yum -y install vsftpd 安装ftp
[root@ky17 pxeboot]mount /dev/cdrom /mnt
[root@ky17 pxeboot]mkdir /var/ftp/centos7 创建ftp目录数据文件
[root@ky17 pxeboot]cp -rf /mnt/* /var/ftp/centos7 #将镜像复制其中
[root@ky17 pxeboot]systemctl start vsftpd 开启ftp功能
[root@ky17 pxeboot]systemctl stop firewalld 关闭防火墙
[root@ky17 pxeboot]setenforce 0 关闭增强功能
5、配置启动菜单文件
[root@ky17 pxeboot]# yum -y install syslinux 安装syslinux
[root@ky17 pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@ky17 pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg 默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件
[root@ky17 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto 指定默认入口名称 ,对应下面的label auto
prompt 0 设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式
label autox 默认的图形安装
kernel vmlinuzappend initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text 文本安装模式
kernel vmlinuzappend 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
6、kickstart无人值守安装
1、新虚拟机和pxe服务端用同一个网卡
2、开启虚拟机
3、继续配置pxe服务端
[root@ky17 pxeboot]# yum install -y system-config-kickstart 安装kickstart工具
4、打开pxe服务器虚拟机准备安装应答文件
配置Kickstart(图形化)
默认语言设为 中文(简体)
时区设为 Asia/Shanghai
设置root密码
高级配置中勾选 安装后重启
安装方法选择 FTP
FTP服务器 ftp://TFTPIP
FTP目录 centos7
引导装载程序选项:安装新引导装载程序
主引导记录:清除主引导记录
分区:删除所有现存分区
磁盘标签:初始化磁盘标签
添加分区:正常分区(需求)
添加网络设备 ens33
网络类型设为 DHCP
验证:无需操作
防火墙:禁用即可
脚本如下
5、配置最小安装
[root@ky17 pxeboot]# vim /var/ftp/ks.cfg 配置最小安装
插入
%packages
@^minimal
%end
[root@ky17 pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0 为“0”时表示自动执行ks.cfg文件(无人值守)、为“1”时表示手动配置(有人值守)
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg 添加 ks 引导参数至引导菜单文件
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg 添加 ks 引导参数至引导菜单文件
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg 添加 ks 引导参数至引导菜单文件
6、重启空虚拟机