目录标题
PXE概述
- PXE(preboot eXcution Environment)
- PXE是由Intel 公司发开的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统
- 服务端
- 运行DHCP服务,用来分配地址,指定引导程序位置
- 运行TFTP服务(简单文件传输协议),提供内核和引导镜像文件的下载
- 客户端
- 网卡支持PXE协议
- 主板支持网络引导
- 一般大多数服务器主机都支持,只需在BIOS设置中允许从Network或LAN启动即可
- PXE批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
部署PXE远程安装服务
- PXE远程安装服务器集成了CentOS7安装源、TFTP服务、DHCP服务,能够向客户机裸机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件
- TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP 端口69
- xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务
第一步安装并启用TFTP服务
- yum install -y tftp-server xinetd #安装服务
- vim /etc/xinetd.d/tftp #修改TFTP服务的配置文件
protocol = udp #TFTP默认使用UDP协议
wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot #指定TFTP根目录(引导文件的存储路径)
disable = no #no表示开启TFTP服务
- 启动服务
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
第二步安装并启用DHCP服务
- yum -y install dhcp
- cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
- vim /etc/dhcp/dhcpd.conf
- 启动服务
systemctl start dhcpd
systemctl enable dhcpd
第三步准备Linux内核、初始化镜像文件
- mount /dev/sr0 /mnt #挂载光盘镜像
- cd /mnt/images/pxeboot
- cp vmlinuz /var/lib/tftpboot #复制内核文件到TFTP根目录下
- cp initrd.img /var/lib/tftpboot #复制镜像文件(Linux引导加载模块)到TFTP根目录下
第四步准备PXE引导程序
- yum install -y syslinux #PXE引导从程序的软件包syslinux
- cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
第五步安装FTP服务,准备CentOS 7 安装源
- yum install -y vsftpd #安装vsftpd服务
- mkdir /var/ftp/centos7 #在ftp根目录下创建一个centos7目录
- cp -rf /mnt/* /var/ftp/centos7/ #复制镜像文件到centos7目录中,文件略微有点大可在命令后加&到后台运行
- systemctl start vsftpd #开启服务
- systemctl enable vsftpd #开机自启服务
第六步配置启动菜单文件
默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
- mkdir /var/lib/tftpboot/pxelinux.cfg
- vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.184.10/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.184.10/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.184.10/centos7
第七步记得关闭防火墙和安全机制功能
- systemctl stop firewalld.service
- setenforce 0
注意事项
- 注意:使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错
- 开启虚拟机,在提示字符串“boot:”后直接按Enter键(或执行“auto”命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口;
- 若执行“linux text”命令,则进入文本安装入口;
- 若执行 “linux rescue”命令,则进入救援模式
实现Kickstart无人值守安装
第一步准备安装应答文件
- yum install -y system-config-kickstart #安装system-config-kickstart工具
打开Kickstart 配置程序窗口
或者终端执行 system-config-kickstart 命令打开
第二步配置kickstart选项
- 基本配置
- 安装方法
- 引导装载程序选项
- 分区信息
- 网络配置
- 防火墙配置
- 安装后脚本
mkdir /etc/yum.repos.d/repo.bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak
echo ‘[local]
name=local
baseurl=ftp://192.168.150.10/centos7
enabled=1
gpgcheck=0’ > /etc/yum.repos.d/local.repo
保存应答文件
- 保存自动应答文件,文件名为ks.cfg
第三步配置需要安装的软件包
最小化界面
- 可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg文件中,只需要复制%packages 到%end 部分就行
- 如需要最小化安装,可复制下面的内容即可
vim ks.cfg
%packages
@^minimal
%end
图形化界面
-
vim anaconda-ks.cfg
-
cp /home/stu/ks.cfg /var/ftp/ks.cfg
开机引导读取的是/var/ftp内的内容,不是/root,/root仅仅是暂时保存的对方,所以,修改完再复制过去,或者直接复制过去再修改
-
把anaconda-ks.cfg文件中复制的内容G到底粘贴进去
第六步编辑引导菜单文件 default,添加 ks 引导参数
- vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg
最后验证无人值守安装
-
新建虚拟机(裸机)
-
创建新建虚拟机需要注意的地方
-
开启虚拟机等待
-
勾选许可信息及装机完成过程