基于DHCP、PXE的kickstart自动安装简介
基于DHCP、PXE的kickstart自动安装简介
通常,在安装操作系统的过程需大量的人机交互过程,为减少交互过程,为提高安装效率,Red Hat Linux开始支持称为kickstart的功能,只需事先定义好一个kickstart自动应答配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。安装好一机器,安装程序都会创建一个kickstart配置文件/root/anaconda-ks.cfg,记录真实安装配置。CentOS作为Red Hat Enterprise Linux(RHEL)的衍生版也支持此功能。
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服务器、启动文件等),之后请求并下载安装需要的文件。
- 测试集群简介
服务端:
- IP:11.2.104.1
- 系统:centos7.6
客户端:
- IP:11.2.104.3
- 系统:centos7.6
安装pxe装系统所需要的软件
yum -y install dhcp nfs-utils tftp-server
配置tftp:
tftp提供dhcp获取IP后所需要下载的pxelinux.0和default、efidefault等文件的服务。修改配置文件/etc/xinetd.d/tftp:
1 | vim /etc/xinetd.d/tftp |
准备启动文件
syslinux:
cp /usr/share/syslinux/menu.c32 /install/tftpboot/
cp /usr/share/syslinux/vesamenu.c32 /install/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /install/tftpboot/
mkdir -p /install/tftpboot/pxelinux.cfg
cp /mnt/isolinux/{vmlinuz,initrd.img} /install/tftpboot
准备自动安装文件ks.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76#platform=x86, AMD64, 或 Intel EM64T
#version=CentOS7
# Install OS instead of upgrade #全新安装而不是升级
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$y10oqPAp$qCWLZ7KzL/QgFYlg3C2R10 #采用加密记录
#rootpw --plaintext 123456 #采用明文记录
# System language
lang en_US
# Firewall configuration #屏蔽防火墙
firewall --disabled
# System authorization information #设定NIS信息
auth --useshadow --passalgo=sha512 --enablenis --nisdomain=mydomain.org --nisserver=192.168.100.254
# Use text mode install #安装方式,文本界面,图形的话graphy
text
# SELinux configuration #关闭SELinux
selinux --disabled
# Do not configure the X Window System #不配置X图形界面
skipx
# Use NFS installation media #设定安装方式
nfs --server=192.168.100.254 --dir=/centos
# Use http installation source
#url --url=http://192.168.100.254/centos/7/
# Network information #采用DHCP获取IP
network --bootproto=dhcp
# Reboot after installation #安装后自动重启,如果BIOS中设置从PXE首先启动,那么会重复安装,请注意,安装后应设置为从先硬盘启动
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information #清除原有分区
clearpart --all
# Disk partitioning information
part / --fstype="xfs" --size=10000
part /boot --fstype="xfs" --size=200
#part /boot/efi --fstype=efi --size=200 #UEFI引导安装时需要,传统LEGACY引导时可屏蔽此选项
part swap --fstype="swap" --size=8000
part /tmp --fstype="xfs" --grow --size=1
%packages #设定所需要的软件包,按需要调整
@base #@表示一组软件包
@network-server
@performance
@system-admin-tools
sdparm
tree
tuned
tuned-utils
ypbind
nfs-utils
vim-enhanced
#-表示从默认软件包的需要去除的软件包
-lvm2
-nano
-pcmciautils
-plymouth
-rfkill
-rsync
-system-config-firewall-tui
-system-config-network-tui
-unzip
-vconfig
-wireless-tools
%end #%packages结尾
%pre #预案装脚本,非必须
date
%end #%pre结尾
%post #安装后脚本,非必须
cat >>/root/.bashrc <>/etc/fstab
%end #%post结尾配置http服务:
1 | mount -o loop CentOS-7-x86_64-DVD-1810-Hygon-v7.iso /mnt |
- 配置dhcpd服务
1 | vim /etc/dhcp/dhcpd.conf |
- 准备引导文件
1 | vim /install/tftpboot/pxelinux.cfg/default |
- 设置节点通过pxe启动
1 | ipmitool -H sscnode156m -U admin -P admin chassis bootdev pxe |