PXE高效批量网络装机
PXE概述
PXE批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统,配置各种服务
- 远程实现:不需要光盘,U盘等安装介质
PXE(Preboot eXcution Environment)
预启动执行环境,在操作系统之前运行
服务器
运行DHCP服务,用来分配地址,定位引导程序
运行TFTP服务,提供引导程序下载(菜单,镜像,内核…)
FTP服务,作为本地yum源
客户端
网卡支持PXE协议
主板支持网络引导
配置PXE装机服务器
部署过程
1.准备CentOS 7 安装源(YUM仓库) ftp服务
[root@localhost~]# yum -y install vsftpd
[root@localhost~]# mkdir /var/ftp/centos7
[root@localhost~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost~]# systemctl start vsftpd
cp -rf /mnt/* /var/ftp/
2.安装并启用TFTP服务 为客户机提供系统的文件下载的服务
安装tftp-server软件包,启用tftp服务
配置文件位于/etc/xinetd.d/tftp
[root@localhost~]# yum -y install tftp-server
[root@localhost~]# vim /etc/xinetd.d/tftp
server_args =-s /var/lib/tftpboot
disable = no 修改配置值,启动服务
[root@localhost~]# systemctl start tftp 启动
[root@localhost~]# systemctl enable tftp 开机自启动
3.提供Linux内核,PXE引导程序等
[root@localhost ~]# cd /media/cdrom/images/pxeboot
位于系统镜像文件夹 images/pxeboot下 共享目录
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp -p /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot 将pxelinux.0放在tftp服务家目录下
[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /mnt
[root@localhost mnt]# 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@localhost mnt]# cd images/
[root@localhost images]# ls
efiboot.img pxeboot TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ 将光盘中的内核文件和驱动文件复制到tftp家目录中
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# yum -y install vsftpd 下载ftp
[root@localhost tftpboot]# mkdir /var/ftp/centos7
[root@localhost tftpboot]# cp -pr /mnt/* /var/ftp/centos7/
[root@localhost tftpboot]# mount /dev/sr0 /var/ftp/centos7
mount: /dev/sr0 写保护,将以只读方式挂载
4.安装并启用DHCP服务
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 192. 168.100.0 netmask 255.255.255.0 {
option routers 192. 168.100.1;
range 192.168.100.10 192.168.100.20;
next-server 192.168.100.102; next-server:指定TFTP服务器地址
filename "pxelinux.0"; filename:指定要下载的引导程序文件
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
5.配置启动菜单
[root@localhost ~]# vi /var/ib/tftpboot/pxeliqux.cfg/default 确保pxelinux.cig目录已存在
default auto
prompt 1 :表示客户机安装系统,需要手动进行时。进行使用
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192. 168.4.254/centos7
label linux text
kernel vmlinuz 文本模式安装
append text initrd=initrd.img method=fp://192. 168.4.254/centos7
label linux rescue
kernel vmlinuz 进入救援模式
append rescue initrd=initrd.img method=ftp://192.168.4.254/cento8t
新建用户测试
Kickstart无人值守安装
- 创建好应答文件,预先定义好各自安装设置
- 免去交互设置过程,实现全自动化安装
- 在服务器上:
[root@handsomeboy1 isolinux]# yum install -y system-config-kickstart.noarch
#### 安装无人装机技术
/boot 300M ; swap:3072M ; /:剩余
[root@handsomeboy1 ~]# cd /var/ftp
[root@handsomeboy1 ftp]# ls
centos7 pub
[root@handsomeboy1 ftp]# cp ~/ks.cfg ./ //将文件复制到ftp家目录中
[root@handsomeboy1 ftp]# ls
centos7 ks.cfg pub
[root@handsomeboy1 ftp]# vim ks.cfg