PXW高效装机和Kickstart无人值守装机
一、PXE
PXE是由Inter公司开发的网络引导技术,工作在Client/Server模式;允许客户机通过网络从远程服务机下载引导镜像,并加载安装文件或整改操作系统。
1.1 PXE的优势
- 规模化: 同时装配多台服务器,无需每一台单独安装操作系统;
- 自动化: 实现服务器的自动安装及自动配置各种服务;
- 远程实现: 不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器的安全。
1.2 搭建网络体系前提条件
-客户机:
- 客户机的网卡要支持PXE协议(集成BOOTROM芯片)
- 主板支持网络引导。有一些需要在BIOS设置中允许Network或LAN启动即可
服务端:
- DHCP服务器:以便为客户机自动分配地址,指定引导文件
- 服务器要开启TFTP服务(简单文件传输协议):用来提供系统内核和引导镜像文件的下载
1.3 PXE工作过程
1.网卡需要查找相关的dhcp服务器(获取地址时间)
2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
3.网卡使用tftp客户端吧引导程序加载到内存中来
4.bios执行引导程序
5.引导程序会去TFTP去查找配置文件
6.根据配置文件去引导安装系统
1.4 安装包
二、部署PXE远程安装服务
2.1 前期准备
dhcp(Dynamic Host Configuration Protocal,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。
2.1.1 添加一张网卡,并设置成仅主机模式
然后进入虚拟机修改网络编辑模式
2.1.2 配置网卡信息
[root@pxw /]# ifconfig ens37 192.168.100.10/24
[root@pxw /]#cp ens33 ens37
[root@pxw /]# vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="fe7580c6-dd13-4fbe-afcf-cf3a164375dc"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.2
DNS1=8.8.8.8
[root@pxw /]# systemctl start network ##重启网卡
[root@pxw /]# ping 192.168.100.1 ##ping以下本机1地址
2.2 安装DHCP服务
[root@pxw ~]# yum install dhcp -y
[root@pxw ~]# cp //usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@pxw ~]# cd /etc/dhcp/
[root@pxw dhcp]# #vim dhcpd.conf
14 ddns-update-style none; ##将这段注释掉
subnet 192.168.100.0 netmask 255.255.255.0 { ##网段和子网掩码
range 192.168.100.30 192.168.100.40; ##地址池
option routers 192.168.100.2; ##VMnet 网关
next-server 192.168.100.10; ##指定TFTP服务器位置
filename "pxelinux.0";
}
[root@pxw ~]# systemctl start dhcpd
[root@pxw ~]# systemctl enable dhcpd
2.3 安装TFTP
[root@pxw dhcp]# yum install -y tftp-server
[root@pxw dhcp]# rpm -ql tftp-server
/etc/xinetd.d/tftp
[root@pxw dhcp]# 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服务
2.4 安装syslinux
[root@pxw dhcp]# yum install -y syslinux
[root@pxw dhcp]# rpm -ql tftp-server
/var/lib/tftpboot #有很多配置文件,记住这个,所有的配置文件都在它之下
[root@pxw dhcp]# rpm -ql syslinux | grep 0
/usr/share/syslinux/pxelinux.0 #在最后一行,复制此文件
[root@pxw dhcp]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxw dhcp]# ls /var/lib/tftpboot
pxelinux.0
2.5 安装 vsftp
安装系统镜像文件获取方式
[root@pxw dhcp]# yum install -y vsftpd
[root@pxw dhcp]#rpm -ql vsftpd
/var/ftp #找到最后一个;此站点为vsftpd的站点,一会挂载在此站点下
[root@pxw dhcp]# cd /var/ftp
[root@pxw ftp]# ls
pub
[root@pxw ftp]#mkdir centos7 #创建目录,作为光盘挂载点
[root@pxw ftp]#mount /dev/sr0 centos7/ #将光盘挂载到当前目录的centos7/下
mount: /dev/sr0 写保护,将以只读方式挂载
[root@pxw centos7]#cd images/
[root@pxw images]#ls
efiboot.img pxeboot TRANS.TBL
[root@pxw images]#cd pxeboot/
[root@pxw pxeboot]#ls
initrd.img TRANS.TBL vmlinuz
[root@pxw pxeboot]#cp initrd.img vmlinuz /var/lib/tftpboot/ #将两个文件拷贝到站点/var/lib/tftpboot下。所有的配置文件都在此站点哦!!!
[root@pxw pxeboot]#cd /var/lib/tftpboot/ #切换至站点目录
[root@pxw tftpboot]#ls
initrd.img pxelinux.0 vmlinuz
[root@pxw tftpboot]#mkdir pxelinux.cfg #创建文件夹 pxelinux.cfg
[root@pxw tftpboot]#cd pxelinux.cfg/
[root@pxw pxelinux.cfg]#vim default #在 pxelinux.cfg目录下创建文件default
#这个文件不会写,没关系,可以再开一个会话,可以在isolinux.cfg文件去复制
#开机不等待,也可以设置timeout 600,默认等到60秒
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/centos7
label test
kernel vmlinuz
append test=initrd.img method=ftp://192.168.100.10/centos7
label rescue
kernel vmlinuz
append rescue=initrd.img method=ftp://192.168.100.10centos7
#开启全部服务,关闭防火墙,pxe就装完成了
[root@pxw pxelinux.cfg]# systemctl start dhcpd
[root@pxw pxelinux.cfg]# systemctl start vsftpd
[root@pxw pxelinux.cfg]# systemctl start tftp
[root@pxw pxelinux.cfg]# systemctl stop firewalld.service
[root@pxw pxelinux.cfg]# setenforce 0
装机测试一下
三、Kickstart无人值守安装的实现(使用桌面环境)
%pre: 安装前脚本
%post: 安装后脚本
3.1 准备安装应答文件
[root@pxw kiro]# yum install -y system-config-kickstart
3.2 打开 "Kickstart配置程序"窗口
打开虚拟机桌面左上角 >> “应用程序” >> “系统工具” >> “ Kickstart” 打开
或者
直接“ system-config-kickstart” 命令打开
3.3 配置kickstart 选项
基础配置
安装方法
引导装载程序选项
分区信息
网络配置
验证
验证这一项保持默认选项
防火墙配置
显示配置
显示配置不需要修改
软件包选择
预安装脚本
预安装脚本不用配置
安装后脚本
我在脚本里放入了安装本地yum源
保存配置
保存自动应答软件
3.4 编辑需要引导的菜单default,添加ks参数
[root@localhost ~]#cd /var/ftp/
[root@localhost ftp]#ls
centos7 ks.cfg pub
[root@pxw pxelinux.cfg]# cp /root/anaconda-ks.cfg /var/ftp/ks.cfg
## 和本机安装软件anaconda-ks.cfg 包含了我们本机服务器的脚本文件
[root@localhost ftp]#cd /var/lib/tftpboot/
[root@localhost tftpboot]#ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@localhost tftpboot]#cd pxelinux.cfg/
[root@localhost pxelinux.cfg]#vim default
default auto
prompt 0 ##0代表 不用等用户操作
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.10/centos7 ks=ftp://192.168.100.10/ks.cfg
##在这一行的行末添加