Kickstart 是什么?
kickstart是一個定義了Linux安裝過程的配置文件,比如要在系統中使用的時區、如何對驅動器進行分區、或者應該安裝哪些軟件包。有了這個文件可以解放雙手,讓Linux安裝過程按照我們預先定義的要求進行自動化安裝,同時部署大量主機時十分有用。一般centos系統安裝后,會在root目錄下生成一個名為anaconda-ks.cfg的kickstart配置文件。
kickstart文件組成
命令段:用于配置系統
install
cdrom #安裝介質
lang zh_CN.UTF-8 #安裝語言
keyboard us #鍵盤類型
selinux --enforcing #是否開啟selinux
timezone --utc Asia /Shanghai #時區、系統時鐘是否使用UTC時間
bootloader --location=mbr --driveorder=sda --append= "crashkernel=auto rhgb quiet"
軟件包段:選擇要安裝的軟件包組及軟件包
@core #安裝
@base #安裝
lftp #安裝
-zsh #這里說明不安裝,但如果有其他安裝的文件需要依賴其時,也會安裝
腳本段:
%pre #安裝過程開始之前執行的腳本;所能夠執行的操作較少,因為是簡潔版的shell環境;
%post #所有軟件包安裝完成之后執行的腳本;由于是此時系統已安裝完成,所以是完整的shell環境;
指定kickstart配置文件對應格式如下:
kickstart資源 選項格式
CD ks=cdrom:/directory/ks.cfg
硬盤驅動器 ks=hd:device/directory/ks.cfg
FTP服務器 ks=ftp://server.mydomain.com/directory/ks.cfg
HTTP服務器 ks=http://server.mydomain.com/directory/ks.cfg
HTTPS服務器 ks=https://server.mydomain.com/directory/ks.cfg
NFS服務器 ks=nfs:server.mydomain.com:/directory/ks.cfg
其它設備 ks=file:/device/directory/ks.cfg
Kickstart安裝部署操作
環境介紹
用于安裝Kickstart的主機IP地址為172.16.252.251,os為CentOS 7.6
DHCP服務安裝配置
安裝DHCP
# 停止防火墻
systemctl stop firewalld && systemctl disabled firewalld
# 關閉SEliunx
vim /etc/selinux/config
... ...
SELINUX=enforcing 改為disabled
......
# 安裝dhcp
yum install -y dhcp
配置DHCP
vim /etc/dhcp/dhcpd.conf
option domain-name-servers 223.5.5.5;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 172.16.252.0 netmask 255.255.255.0 {
range 172.16.252.100 172.16.252.200;
option routers 172.16.252.2;
next-server 172.16.252.251;
filename "pxelinux.0";
}
啟動dhcp服務:
systemctl start dhcpd && systemctl enable dhcpd
鏡像掛載
# 安裝并啟動httpd
yum install httpd -y
systemctl start httpd && systemctl enable httpd
# 設置永久掛載:
# 將本機cdrom中的系統掛載到路徑中,也可以將本機中的iso文件掛載
vim /etc/fstab <<EOF
/dev/cdrom /var/www/html/centos iso9660 defaults 0 0
TFTP安裝部署
# 安裝tftp服務
yum install tftp-server xinetd -y
# 配置tftp
sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp
# 啟動tftp服務
systemctl start xinetd && systemctl enable xinetd
yum -y install syslinux -y
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /var/www/html/centos/isolinux/{vesamenu.c32,splash.png,vmlinuz,initrd.img} /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
# cp /var/www/html/centos/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cat > /var/lib/tftpboot/pxelinux.cfg/default <<EOF
default vesamenu.c32
timeout 600
menu background splash.png
menu title CentOS 7 Kickstart Install
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.252.251/ks.cfg
EOF
應答文件配置
vim /etc/yum.repos.d/local.repo
[Deployment CentOS]
name= centos 7 local repo
baseurl=http://172.16.252.251/centos
gpgcheck=0
# 配置系統安裝設定
vim /var/www/html/ks.cfg
install
keyboard 'us'
lang en_US
auth --useshadow --passalgo=sha512
rootpw --iscrypted $1$Ov9w.uuf$i5xxnVAy3ZwK7GIEyRymU0
text
firstboot --disable
selinux --disabled
firewall --disabled
reboot
timezone Asia/Shanghai
url --url="http://172.16.252.251/centos"
bootloader --location=mbr
zerombr
clearpart --all --initlabel
# 以下為將分區格式調整為uefi啟動,啟用lvm分區
bootloader --location=mbr --boot-drive=sda
clearpart --all --initlabel
part /boot/efi --fstype="efi" --ondisk=sda --size=300
part /boot --fstype xfs --ondisk=sda --size=1024
part pv.01 --fstype="lvmpv" --ondisk=sda --size=1 --grow
volgroup centos --pesize=4096 pv.01
logvol /home --fstype=xfs --size=4096 --name=home --vgname=centos
logvol swap --fstype=swap --size=4096 --name=swap --vgname=centos
logvol / --fstype=xfs --size=1 --grow --name=root --vgname=centos
%post --interpreter=/bin/bash
# useradd dev
# echo "passwd1!" | passwd --stdin dev # 此處可同步創建用戶并給用戶創建密碼
echo "passwd1!" | passwd --stdin root # 此處為配置root 密碼為passwd1!
%end
%packages
@base
@debugging
@performance
@vim
@git
@wget
%end
測試部署
將需要部署的主機加入到服務器的網絡,確保能與服務器通信后,打開pxe啟動,開機即可。



? 自動安裝,安裝完成后會自動重啟進入系統。

進入系統后,root
密碼為預先配置的密碼。