目录
一、PXE
PXE (预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。预启动执行环境,在操作系统之前运行。
- dhcp 实现地址自动分配
- ftp 将安装文件传输给客户机
- xinetd 新一代网络守护进程服务程序,管理轻量级的Internet服务
- tftp 简单文件传输协议 udp协议,服务端和客户端之间进行简单文件传输(小文件),依赖于xinetd管理,端口号69
1.1 pxe批量部署的优点
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
PXE(Preboot eXcution Environment)
预启动执行环境,在操作系统之前运行
服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务,提供引导程序下载
客户端
网卡支持PXE协议
主板支持网络引导
1.2 基本部署过程
准备CentOS 7 安装源(YUM仓库)
安装并启用TFTP服务
提供Linux内核、PXE引导程序等
安装并启用DHCP服务
配置启动菜单
二、搭建PXE网络体系要求
- 服务端:运行DHCP服务,用来分配地址,定位引导程序 ; 运行TFTP服务,提供引导程序下载网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。服务器要通过TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。
- 客户端: 网卡支持PXE协议 ; 主板支持网络引导,客户机的网卡要支持PXE协议(集成BOOTROM芯片),主板支持网络引导。有一些需在BIOS设置中允许从 Network 或 LAN 启动即可。
三、搭建PXE远程安装服务器步骤
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务、FTP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP 端口69
xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。
四、PXE具体部署实验
1、安装并启用 TFTP 服务
[root@localhost ~]# yum -y install tftp-server xinetd //yum安装tftp和xinetd服务
#修改TFTP服务的配置文件
vim /etc/xinetd.d/tftp
protocol = udp #TFTP默认使用UDP协议
wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot #指定TFTP根目录(引导文件的存储路径)
disable = no #no表示开启TFTP服务
//配置完成后开启并设置自启动服务
[root@localhost xinetd.d]# systemctl start tftp
[root@localhost xinetd.d]# systemctl enable tftp
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost xinetd.d]# systemctl start xinetd
[root@localhost xinetd.d]# systemctl enable xinetd
2、安装并启用 DHCP 服务
[root@localhost xinetd.d]# yum -y install dhcp
[root@localhost xinetd.d]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? yes
修改DHCP服务的配置文件
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; #禁用 DNS 动态更新,提高运行效率
next-server 192.168.80.10; #指定 TFTP 服务器的地址,即自己的虚拟机地址(手动输入)
filename "pxelinux.0"; #指定要下载的 PXE 引导程序的文件(这手动输入)
subnet 192.168.50.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.50.100 192.168.50.200; #设置地址池
option routers 192.168.50.22; #默认网关地址指向TFTP服务器的IP地址}
//启动服务
[root@localhost xinetd.d]# systemctl start dhcpd
[root@localhost xinetd.d]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@localhost xinetd.d]#
3、准备 Linux 内核、初始化镜像文件
[root@localhost xinetd.d]# mount /dev/cdrom /mnt #先挂载光盘镜像
[root@localhost xinetd.d]# cd /mnt/images/pxeboot/
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp vmlinuz /var/lib/tftpboot/ #复制 Linux系统的内核文件到TFTP根目录
[root@localhost pxeboot]# cp initrd.img /var/lib/tftpboot/ #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
4.准备PXE引导程序
[root@localhost pxeboot]# yum -y install syslinux #PXE引导程序
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制 PXE引导程序 到TFTP根目录下
5.安装FTP服务,准备CentOS7安装源
[root@localhost tftpboot]# yum -y install vsftpd #安装vsftpd服务
[root@localhost tftpboot]# mkdir /var/ftp/centos7 #新建centos7目录
[root@localhost tftpboot]# cp -rf /mnt/* /var/ftp/centos7/ #将光盘镜像下的文件全部复制到centos7目录下
6.配置启动菜单文件
#默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
[root@localhost centos7]# mkdir /var/lib/tftpboot/pxelinux.cfg #需要在ftfpboot目录下创建pxelinux.cfg
[root@localhost centos7]# vim /var/lib/tftpboot/pxelinux.cfg/default #在pxelinux.cfg目录下创建default并编辑配置文件
7.关闭防火墙,验证 PXE 网络安装
[root@localhost centos7]# systemctl stop firewalld
[root@localhost centos7]# setenforce 0
五、无人值守安装linux系统
1.yum安装system-config-kickstart 工具
[root@localhost centos7]# yum -y install system-config-kickstart
2.执行 “system-config-kickstart” 命令打开“Kickstart 配置程序”窗口
2.1 基本配置
2.2 安装方法
2.3 引导装载程序选项
2.4 分区信息
2.5 网络配置
2.6 防火墙配置
2.7 安装后脚本
2.8 save配置
2.9 配置需要安装的软件包
可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到/var/ftp/ks.cfg文件中,只需要复制%packages 到%end 部分即可。如要求最小化安装,可复制下面内容:vim ks.cfg
%packages
@^minimal
%end
[root@localhost ~]# cp ks.cfg /var/ftp/ks.cfg
[root@localhost ~]# cd /var//ftp/
[root@localhost ftp]# ls
centos7 ks.cfg pub
[root@localhost ftp]# vim ks.cfg
[root@localhost ftp]# vim /var/lib/tftpboot/pxelinux.cfg/default
实验验证
新建虚拟机
完成后启动虚拟机。