部署PXE远程安装服务

部署PXE远程安装服务

搭建PXE远程安装服务器
服务器的批量部署
规模化:同时装配多台服务器
动化:安装系统,配置各种服务
远程实现:不需要光盘,U盘等安装介质

关于PXE网络

PXE,Pre-boot eXcution Environment
预启动执行环境,在操作系统之前运行
可用于远程安装,构建无盘工作站
服务端
运行DHCP服务,用来分配地址,定位引导程序
引导程序:微代码,存放在TFTP服务器中
运行TFTP服务器,提供引导程序下载

TFTP服务器时UDP协议,端口号69
镜像文件存放在:vsftpd,TCP协议,端口号20,21
客户端
网卡支持PXE协议
主板支持网络启动

配置PXE装机服务器

基本部署过程
准备centos 7 安装源(yum仓库)
启动TFTP服务,并提供内核,引导程序
启动DHCP服务,用来分配地址,指导引导程序位置
配置启动菜单

TFTP服务及引导文件
安装tftp-server软件包,启动tftp服务
准备内核文件vmlinuz,初始化镜像initrd.img
准备引导程序文件pxelinux.0(依赖于syslinux)

设置双网卡
部署PXE远程安装服务部署PXE远程安装服务

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[[email protected] network-scripts]# vim ifcfg-ens36
部署PXE远程安装服务

[[email protected] network-scripts]# systemctl restart network
[[email protected] network-scripts]# ifconfig

部署PXE远程安装服务

[[email protected] ~]# yum install dhcp -y
[[email protected] ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf
部署PXE远程安装服务

[[email protected] ~]# yum install syslinux -y
[[email protected] ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[[email protected] ~]# yum install tftp-server -y
[[email protected] ~]# rpm -ql tftp-server
/etc/xinetd.d/tftp //配置文件
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot //站点
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[[email protected] ~]# vim /etc/xinetd.d/tftp
部署PXE远程安装服务

[[email protected] ~]# yum install vsftpd -y
[[email protected] ~]# cd /var/ftp
[[email protected] ftp]# ls
pub
[[email protected] ftp]# mkdir centos7
[[email protected] ftp]# ls
centos7 pub
[[email protected] ftp]# mount /dev/sr0 /var/ftp/centos7
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ftp]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 4.1G 46G 9% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 245G 33M 245G 1% /home
tmpfs tmpfs 378M 4.0K 378M 1% /run/user/42
tmpfs tmpfs 378M 68K 378M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /var/ftp/centos7
[[email protected] ftp]# cd centos7/images/pxeboot/
[[email protected] pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[[email protected] pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[[email protected] pxeboot]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 vmlinuz
[[email protected] pxeboot]# cd /var/lib/tftpboot/
[[email protected] tftpboot]# mkdir pxelinux.cfg
[[email protected] tftpboot]# cd pxelinux.cfg/
[[email protected] pxelinux.cfg]# vim default
部署PXE远程安装服务

[[email protected] pxelinux.cfg]# systemctl stop firewalld
[[email protected] pxelinux.cfg]# setenforce 0
[[email protected] ~]# systemctl start dhcpd
[[email protected] ~]# systemctl start tftp
[[email protected] ~]# systemctl start vsftpd
在裸金属机上
部署PXE远程安装服务
部署PXE远程安装服务

部署PXE远程安装服务

ickstart无人值守技术

创建应答文件,预先定义好各种安装设置
免去交互设置过程,从而实现全自动化安装
通过添加%post脚本,完成安装后的各种配置操作
应答文件的内容
实现批量自动装机

[[email protected] pxelinux.cfg]# yum install system-config-kickstart -y
部署PXE远程安装服务部署PXE远程安装服务部署PXE远程安装服务

部署PXE远程安装服务部署PXE远程安装服务
部署PXE远程安装服务部署PXE远程安装服务
部署PXE远程安装服务

部署PXE远程安装服务

[[email protected] pxelinux.cfg]# cd ~
[[email protected] ~]# vim anaconda-ks.cfg
部署PXE远程安装服务

[[email protected] ~]# cd /var/ftp
[[email protected] ftp]# ls
centos7 ks.cfg pub
[[email protected] ftp]# vim ks.cfg
[[email protected] ftp]# cd /var/lib/tftpboot/pxelinux.cfg/
[[email protected] pxelinux.cfg]# ls
default
[[email protected] pxelinux.cfg]# vim default

部署PXE远程安装服务
部署PXE远程安装服务

部署PXE远程安装服务
部署PXE远程安装服务

部署PXE远程安装服务