一、内容要点:
部署PXE远程安装服务
搭建PXE远程安装服务器
验证PXE网络安装
实现kickstart无人值守安装
准备安装应答文件
实现批量自动装机
二、服务器的批量部署
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
三、关于PXE网络
PXE,Pre-boot eXcution Environment
●预启动执行环境,在操作系统之前运行
●可用于远程安装、构建无盘工作站
服务端
●运行DHCP服务,用来分配地址、定位引导程序
●运行TFTP服务器,提供引导程序下载
客户端
●网卡支持PXE协议
●主板支持网络启动
四、配置PXE装机服务器
1、基本部署过程
●准备CentOS 7安装源(YUM仓库)
●启用TFTP服务,并提供内核、引导程序
●启用DHCP服务,用来分配地址、指出引导程序位置
●配置启动菜单
2、TFTP服务及引导文件
●安装ftp-server软件包,启用tftp服务
●准备内核文件vmlinuz、初始化镜像initrd.img
●准备引导程序文件pxelinux.0
[root@localhost ~]# yum -y install tftp-sever [root@localhost ~]# vi /etc/xinetd.d/tftp server_ args = -s /var/lib/tftpboot disable= no [root@localhost ~]# systemctl start tftp [root@localhost ~]# systemctl enable tftp [root@localhost ~]# cd /media/cdrom/images/pxeboot [root@localhost pxeboot]# cp vmlinuz nitrd.img /var/lib/tftpboot [root@localhost ~]# yum -y install syslinux [root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
3、DHCP服务的PXE设置
[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.100; option domain-name-servers 192.168.100.100 range 192.168.100.100 192.168.100.200; next-server 192.168.100.100; filename "pxelinux.0"; } [root@localhost ~]# systemctl start dhcpd [root@localhost ~]# systemctl enable dhcpd
4、默认的启动菜单文件
创建/var/lib/tftpboot/pxelinux.cfg/default
[roo@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost -1# vi /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 1 label auto kemel vmlinuz append initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192..168.100.100/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
五、实验步骤如下
1、 实验环境:一台Linux服务机用来装PXE服务
一台未安装服务器的裸机
2、为了使NET服务可以正常使用,为服务机新添加一个网卡设为仅主机模式,配置静态IP,用来做DHCP分配地址
a、添加一个网卡,设置为仅主机模式,
b、配置新网卡ifcfg-ens36
[root@localhost ~]# cd /etc/sysconf ig/network-scripts/ 到达网卡配置文件下 [root@loca lhost network scripts]# cp ifcfg-ens33 ifcfg-ens36 复制ifcfg-ens33的配置文件数据到ifcfg-ens36中 [root@localhost network-scripts ]# vim ifcfg-ens36 配置网卡数据信息 [root@localhost network-scripts ]# systemctl restart network 重启network服务 [root@localhost network-scripts ]# ifconfig 查看网卡信息
3、安装DHCP服务,编辑配置文件/etc/dhcp/dhcpd.conf
[root@localhost network-scripts]# yum install dhcp -y 安装DHCP服务 [root@localhost network scripts]# cp /usr/share/doc/ dhcp-4.2.5/dhcpd. conf .example /etc/dhcp/dhcpd . conf 复制配置文件模板到目标配置文件下 [root@localhost network scripts]# vim /etc/dhcp/ dhcpd . conf 编辑目标配置文件
subnet 192. 168.100.0 netmask 255. 255.255.0 { range 192. 168.100.100 192.168.100.200; option routers 192.168.100.100; option domain-name-servers 114.114.114, 114; next-server 192.168. 100.100 ; filename" pxe linux.0" ; }
4、安装引导程序文件syslinux,并查看引导文件pxelinux.0的位置
[ root@localhost network-scripts]# yum install syslinux -y 安装syslinux [ root@localhost network - scripts]# rpm -ql syslinux | grep pxe linux 查看引导文件的路径
5、安装TFTP服务,开启配置文件,将引导程序放入站点中
a、安装TFTP服务,开启配置文件
[root@localhost network-scripts]# yum install tftp-server -y 安装tftp-server [root@localhost network-scripts]# rpm -ql tftp-server 查看文件位置 [root@localhost network-scripts]# vim /etc/xinetd.d/tftp 编辑/etc/xinetd.d/tftp开启tftp服务
b、复制引导文件pxelinux.0到var/lib/tftpboot中TFTP站点
[root@localhost network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 复制引导文件到tftp站点中 [root@localhost network scripts]# cd /var/lib/tftpboot/ 切换到站点中查看 [root@localhost tftpboot]# ls 复制成功 pxel inux.0
6、安装vsftpd服务,将镜像文件挂载到新建目录centos7中,然后将其中的文件压缩内核和初始化文件复制到TFTP站点中
[root@localhost tftpboot]# yum install vsftpd -y 安装vstfpd服务 [root@localhost tftpboot]# cd /var/ftp 切换到vstfpd配置文件下 [root@localhost ftp]# mkdir centos7 创建新目录 [root@localhost ftp]# mount /dev/sr0 centos7/ 挂载镜像文件至新目录中 [root@localhost ftp]# cd centos7/images/pxeboot/ 切换到centos7/images/pxeboot/下 [root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ 复制初始化文件和压缩内核到TFTP站点中 [root@localhost pxeboot]# ls /var/lib/tftpboot/
7、编辑启动菜单default配置文件,开启三个服务,关闭防火墙,关闭增强安全性的功能
[root@localhost pxeboot]# cd /var/lib/tftpboot/ 切换到tftp站点 [root@localhost tftpboot]# mkdir pxelinux.cfg 创建配置文件目录 [root@localhost tftpboot]# ls initrd.img pxelinux.0 pxelinux.cfg vmlinuz [root@localhost tftpboot]# cd pxelinux.cfg/ 切换到配置文件 [root@localhost pxelinux.cfg]# vim default 编辑配置文件 [root@localhost pxelinux.cfg]# systemctl stop firewalld.service 关闭防火墙 [root@localhost pxelinux.cfg]# setenforce 0 关闭增强安全性的功能 [root@localhost pxelinux.cfg]# systemctl start dhcpd 启动三个服务 [root@localhost pxelinux.cfg]# systemctl start tftp [root@localhost pxelinux.cfg]# systemctl start vsftpd
8、创建并开启未安装系统的逻辑,选择网络装机,安装系统,测试实验结果
pxe批量装机服务部署成功!
六、无人值守安装kickstart
1、kickstart无人值守技术
●创建应答文件,预先定义好各种安装设置
●免去交互设置过程,从而实现全自动化安装
●通过添加%post脚本,完成安装后的各种配置操作
2、应答文件的来源
●编辑CentOS 7系统中现有的应答文件
。/root/anaconda-ks.cfg
●使用system-config-kickstart工具创建新的应答文件
。需要安装system-config-kickstart软件包
3、实验步骤
a、安装kickstart软件包,并打开设置
[root@localhost ~]# yum install system-config-kickstart -y 安装kickstart软件包
b、打开服务机进行设置
c、将安装软件包的模板复制到ks.cfg中,并在/var/lib/tftproot中引导加载模板,让其生效。查看ks.conf,复制本地anaconda-ks.cfg中的packages软件包模板到ks.cfg中
[root@localhost ~]# cd /var/ftp/ 切换到/var/ftp查看刚刚保存的配置文件 [root@localhost ftp]# ls centos7 ks.cfg pub [root@localhost pxelinux.cfg]# cd /root 切换到本地/root下 [root@localhost ~]# ls anaconda-ks.cfg initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@localhost ~]# vim anaconda-ks.cfg 将anaconda-ks.cfg中的安装软件包模块复制到/var/ftp/下的ks.cfg中 [root@localhost ~]# vim /var/ftp/ks.cfg 编辑ks.cfg
d、引导加载ks.cfg模板到/var/lib/tftproot/pxelinux.cfg/下的default配置文件中
[root@localhost ftp]# cd /var/lib/tftpboot/pxelinux.cfg/ 切换到default路径中 [root@localhost pxelinux.cfg]# ls default [root@localhost pxelinux.cfg]# vim default 编辑配置文件default
e、开启未安装系统的裸机,查看实验效果
安装成功,实验成功