企业级批量无人值守安装
一、批量无人值守安装
1.简介
PXE(Pre-boot Execution Environment)是由intel设计的协议,它可以使计算机通过网络启动。
PXE协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。PXE在其启动过程中,客户端请求服务器分配IP地址,之后PXE Client使用TFTP Client通过TFTP(Trivial File Transfer Protocol)协议下载启动安装程序所需的文件。
PXE网络安装:客户机通过支持PXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其它信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录需要人工干预填写的各种参数,并记录生成一个名为anaconda-ks.cfg的文件。
装机模式:网络批量装机、U盘介质批量装机
PXE工作流程
- PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP和安装相关文件
- DHCP 服务器返回分配给客户机的IP地址,以及PXE文件的存放位置(文件一般是放在一台TFTP服务器上)
- PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件
- PXE Client 取得pxelinux.0 文件后之执行该文件
- 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统
- 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装相关软件包
2.核心技术(dhcp、httpd、tftp)
dhcp:网络参数共享、tftp服务器地址、共享文件名
tftp:引导文件、菜单文件、内核和驱动文件系统
httpd:系统镜像、软件仓库、装机脚本
cobbler:批量管理server端相关软件(dhcp、tftp、httpd、dns…)rsync
cobbler优点:对于初级运维管理人员非常的友好、增加web管理页面,同时共享多个linux的发行版本
3.实验
3.1 准备环境
准备两台虚拟机,一台虚拟机进行软件配置,另一台进行测试
软件工具:dhcp、tftp-server、httpd
虚拟客户机需要关闭启动时连接
3.2 防护关闭
#SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#Firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
3.3 软件安装
yum -y install httpd dhcp tftp-server syslinux
system-config-kickstart
注意:如果CentOS 7有图形界面可以安装system-config-kickstart软件,实现手动创建*.ks.cfg文件。
3.4 软件配置
DHCP服务设置
-
修改配置文件
cp -a /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf vim /etc/dhcp/dhcpd.conf option domain-name-servers 114.114.114.114; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.48.0 netmask 255.255.255.0 { range 192.168.48.200 192.168.48.249; option domain-name-servers 114.114.114.114; option routers 192.168.48.2; default-lease-time 600; max-lease-time 7200; next-server 192.168.48.110; #填写tftp服务器IP地址 filename "pxelinux.0"; #填写引导文件名称 }
-
启动dhcpd服务,并设置开机自启动
systemctl enable --now dhcpd ss -tlunp|grep dhcpd #检查启动状态
httpd服务配置
-
使用httpd实现光盘共享
mkdir /var/www/html/centos7 mount /dev/sr0 /var/www/html/centos7
-
启动httpd服务、并设置开机自启
systemctl enable --now httpd
-
检查httpd服务启动状态,以及镜像共享情况
ss -tlunp|grep httpd http://192.168.48.110/centos7/
tftp服务配置
-
配置xinetd服务下的tftp服务
vim /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no #修改为no per_source = 11 cps = 100 2 flags = IPv4 }
-
启动tftp.socket,并设置开机自启动
systemctl enable --now tftp.socket
-
检查tftp服务启动状态
systemctl status tftp ss -tlunp | grep ":69"
3.5 编写引导安装相关文件,放到指定位置
3.5.1 需要共享的文件
- 引导文件 - pxelinux.0
- 引导菜单 - default{isolinux.cfg} – 开机后选择启动项的菜单文{该文件存放在一个叫:pxelinux.cfg的目录下}
- 内核文件 - vmlinuz initrd.img
3.5.2 导入必要文件到指定位置(内核文件、引导菜单文件)
cp -a /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#引导文件