一、PXE 批量部署
1. 概述
PXE:
预启动执行环境,在操作系统之前运行
服务端:
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载(tftp:小文本传输协议,提供配置文件下载)
客户端:
网卡支持PXE协议
主板支持网络引导
2. 优点
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
3. 装机流程
(1)客户机的网卡查找dhcp服务,获取ip地址和时间
(2)dhcp服务给客户机分配ip地址和引导程序的地址,通过offer报文把tftp服务器的地址发给客户机
(3)tftp服务器把引导文件(pxelinux)传给客户机
(4)客户机把引导程序加载到内存中
(5)引导程序在tftp服务器中查找配置文件,服务器把配置文件传给客户机(配置文件用ftp获取)
(6)服务器通过vsftp服务和客户端互传文件,客户端获得系统的镜像文件
4. pxe装机需要四大文件
(1)首先需要几个服务:
dhcp:给客户机分配ip地址
xinetd:网络守护进程服务程序,又叫超级服务器,管理轻量级的网络服务,配合tftp
tftp:基于udp协议,简单文件传输,传一些小文件,端口 69
vsftp:用于传输大文件,例如镜像文件
syslinux: 引导加载程序,用来简化首次安装linux的时间,建立维护其他特殊或其他特殊用户的启动盘
(2)四大文件
在 /var/lib/tftpboot/ 目录下
vmlinuz
内核文件(从光盘来的,ioslinux目录下)
initrd.img
系统启动镜像镜像文件(光盘,isolinux)
pxelinux.0
引导文件(syslinux)
default
引导程序的配置文件(需要手写,在光盘ioslinux目录下的isolinux.cfg目录下)
二、部署PXE远程安装服务
此台服务器网卡配置:
ip:192.168.10.101
netmask:255.255.255.0
gateway:192.168.23.2
1. 关闭防火墙
# 关闭防火墙和selinux安全机制
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
2. 安装配置 tftp xinetd服务
解释
# 本地yum源安装
[root@localhost ~]# yum -y install tftp-server xinetd
# 配置tftp服务配置文件
[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp w
ait = no
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4 }
# 重启并设置tftp、xinetd服务开机自启
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl enable tftp
[root@localhost ~]# systemctl restart xinetd
[root@localhost ~]# systemctl enable xinetd
3. 安装配置 dhcp服务
解释
# 本地yum源安装dhcp服务
[root@localhost ~]# yum -y install dhcp
# 配置dhcpd服务配置文件
[root@localhost ~]# cp -af /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
next-server 192.168.23.5;
filename "pxelinux.0"
subnet 192.168.23.0 netmask 255.255.255.0
{ range 192.168.23.100 192.168.23.200;
option routers 192.168.23.5; }
# 重启并设置dhcpd服务开机自启
[root@localhost ~]# systemctl restart dhcpd
[root@localhost ~]# systemctl enable dhcpd
4. 安装配置 vsftpd服务
解释
# 本地yum源安装vsftpd服务
[root@localhost ~]# yum -y install vsftpd
# 配置vsftpd服务
# 创建需要传给客户机的镜像文件
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# df -h
# 镜像文件挂载位置
/dev/sr0 4.3G 4.3G 0 100% /mnt/cdrom
[root@localhost ~]# cp -rf /mnt/cdrom/* /var/ftp/centos7/
# 重启和设置开机自启vsftpd服务
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl enable vsftpd
5. 配置四大文件
四大文件:
vmlinuz initrd.img pxelinux.0 default
(1)配置 vmlinuz 和 initrd.img 文件
解释
# 将已挂载的镜像文件中的vmlinuz和initerd.img文件复制进tftp的根目录
[root@localhost ~]# cd /mnt/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# cp initrd.img /var/lib/tftpboot/
(2)配置pxelinux.0 引导程序文件
解释
# 本地yum源安装syslinux软件包
[root@localhost ~]# yum -y install syslinux
# 将pxe引导文件复制进tftp的根目录
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
(3)配置default 启动菜单文件
解释
# 创建并配置default文件(默认的启动菜单文件在tftp根目录下的pxelinux.cfg子目录下) [root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz append initrd=initrd.img method=ftp://192.168.23.5/centos7
label linux text
kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.23.5/centos7
label linux rescue kernel
vmlinuz append rescue initrd=initrd.img method=ftp://192.168.23.5/centos7
(4)查看四大文件
[root@localhost ~]# ls /var/lib/tftpboot/
6. 检验PXE是否部署成功
(1)创建裸机
(2)开启主机检验
三、实现Kickstart无人值守安装
通过PXE部署可以自动安装系统,但是到配置操作系统时却需要手动配置,为使完全真正的实现自动安装操作系统,可以使用Kickstart无人值守工具进行安装。
服务器配置:
网卡:
ip:192.168.23.5
netmask:255.255.255.0
gateway:192.168.23.2
以配置PXE部署
1. 安装Kickstart工具
# 本地yum源安装kickstart工具
[root@localhost ~]# yum -y install system-config-kickstart
2. 配置Kickstart工具
(1)先进入服务器的图形化界面进行配置
(2)进入命令界面配置
解释
[root@localhost ~]# ls
anaconda-ks.cfg ks.cfg initial-setup-ks.cfg
# 将ks.cfg文件复制到 /var/ftp/目录下
[root@localhost ~]# cp /root/ks.cfg /var/ftp/ks.cfg
# 将模板文件中从 %packages到 %end的内容复制到 /var/ftp/ks.cfg
[root@localhost ~]# cat /root/anaconda-ks.cfg
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end # 粘贴 [root@localhost ~]# vim /var/ftp/ks.cfg %packages @^gnome-desktop-environment @base @core @desktop-debugging @development @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end
解释
# 进入引导程序配置文件/var/lib/tftpboot/pxelinux.cfg/default 添加ks引导参数 [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label auto
kernel vmlinuz append initrd=initrd.img method=ftp://192.168.23.5/centos7 ks=ftp://192.168.23.5/ks.cfg
(3)检验Kickstart无人值守是否安装成功
重启客户机test1