PXE无人值守自动化安装
实验环境
dhcp server:Cerntos7 192.168.10.121
tftp server:Centos7 192.168.10.121
vsftp server:Centso7 192.168.10.122
注:防火墙、selinux均已关闭,yum源为本地光盘镜像
PXE
- PXE:preboot execute environment(预引导启动环境),由Intel公司开发的网络引导技术,工作于C/S架构,基于网络引导启动客户端操作系统的安装。允许客户端通过网络从远程服务器下载引导镜像,并加载安装整个文件或整个操作系统。
- 依赖dhcp,tftp,file server(vsftpd,httpd,nfs等),客户端主机网卡也需支持BOOTROOM芯片,支持PXE相关协议。
- dhcp分配IP地址及指定引导文件位置。
- tftp提供引导镜像文件的下载
- vsftpd提供操作系统安装包的下载,将光盘的内容复制到file server中
- 网络引导Linux的相关软件由syslinux提供,需要安装syslinux程序,syslinux程序的相关文件目录:/usr/share/syslinux
TFTP服务
- 简单文件传输协议(Trivial File Transfer Protocol)网络文件基于UDP传输的简单的协议 ,端口为UDP 69
属于C/S架构:客户端程序tftp,服务端程序tftp-server,基于守护进程xinetd来运行。
- xinetd配置文件:/etc/xinetd.d/tftp
tftp服务端提供客户端文件访问根目录:/var/lib/tftpboot
PXE自动化安装工作流程
- 客户机开机后广播发送dhcp的FIND帧
- dhcp服务器收到该帧够进行IP地址分配,并返回TFTP服务器的地址
- 客户端通过tftp服务获取pxe引导文件,将内核与初始化镜像文件加载至内存中运行
- 通过default中启动菜单文件中指定的ks.cfg位置向tftp服务器发起请求获取自动应答文件
- tftp服务器向其返回ks.cfg自动应答文件
- 通过自动应答文件获取系统镜像位置,并按照文件配置进行自动化安装
其他
- pxelinux.0:pxe引导程序(由syslinux程序提供)
- pxelinux.cfg/default:系统启动时的启动菜单,指出要加载的内核镜像和inird 镜像,然后引导。
- vmlinuz:Linux内核
- initrd.img:初始化镜像文件,存放了引导时的一些驱动程序
搭建实践
搭建TFTP服务
首先安装守护进程xinetd(为tftp等服务提供)
安装tftp服务
修改tftp配置文件
service tftp { socket_type = dgram protocol = udp wait = no #不等待 user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot #默认共享文件目录 disable = no #是否不可以,no表示启用tftp per_source = 11 cps = 100 2 flags = IPv4 }
启动服务
将所需配置文件放置tftp服务器共享目录下
放置内核、初始化镜像、引导菜单
安装syslinux,并将其附带的pxe引导文件复制至共享目录下
修改cfg引导菜单文件
default linux #默认使用linux选项 prompt 0 #是否提示 0不提示(不等待用户选择直接使用默认项) 1提示 timeout 15 #延时 label linux menu label ^Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.ks=ftp://192.168.10.122/ks.cfg quiet #附加参数,initrd指定初始化镜像文件位置,inst.ks指定kickstart自动应答文件位置
注:default指定启动的默认项,应当设置为安装项
使用tree查看目录结构
安装配置DHCP服务
安装服务
修改配置文件
subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.60; option domain-name-servers 114.114.114.114; option domain-name "www.lg.com"; option routers 192.168.10.2; default-lease-time 600; max-lease-time 7200; next-server 192.168.10.121 #TFTP服务器ip地址 filename "pxelinux.0"; #pxe引导文件名 }
启动服务
客户机测试
安装配置VSFTP服务
安装服务
安装kickstart(用于图形化生产自动应答文件,需要图形化界面)
启动system-config-kickstart图形化生成自动应答文件
设置默认语言、键盘布局、时区、root密码、cpu架构类型、是否安装后重启、是否使用文本安装
指定安装方式为全新安装,指定系统镜像文件位置
指定引导安装类型等选项
设置分区配置
添加/boot分区
添加swap交换分区,swap不需要选择挂载点
添加/根分区
分区添加完成后查看分区配置
网络配置,当需要额外的网卡配置时指定
密码加密验证配置
防火墙、SELinux配置
显示配置
选择安装的软件包,若yum配置文件中库的名称不是development则会出现如下错误
解决办法:
修改后需要重新启动kickstart程序
安装前执行的脚本配置
安装完成后执行的脚本配置
设置完成后,保存配置文件至指定目录
将文件放置vsftp共享目录/var/ftp/下即可
注:使用ksvalidator命令检测自动应答文件语法是否错误挂载系统镜像文件至ftp共享目录下
启动服务
测试
创建测试虚拟机
开机测试