使用PXE+Kickstart無人值守安裝服務
一、簡介
使用PXE+TFTP+FTP+DHCP+Kickstart服務搭建出一個無人值守安裝系統,可以無人值守就可以為數10臺伺服器安裝系統,大大提高系統安裝效率。
PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP(trivial file transfer protocol)協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端(客戶端)基本軟體設定,從而引導預先安裝在伺服器中的終端作業系統。
Kickstart是一種無人值守的安裝方式,其工作原理是預先把原本需要運維人員手工填寫的引數儲存成一個ks.cfg檔案,當安裝過程中需要填寫引數時則自動匹配Kickstart生成的檔案。所以只要Kickstart檔案包含了安裝過程中需要人工填寫的所有引數,那麼從理論上來講完全不需要運維人員的干預,就可以自動完成安裝工作。
由於客戶端沒有完整的作業系統,也就不能使用FTP協議的驗證,所以先使用TFTP協議幫助客戶端獲取引導及驅動檔案,在使用vsftp服務程式將完整的系統映象傳輸給客戶端,亦可以使用httpd來替代vsftpd服務程式。
工作流程:
二、配置DHCP服務
進行實驗時,要先關閉iptables和selinux,無人值守系統雙網絡卡,一個要設定為僅主機模式,一個為橋接模式,用於連線網路。
主機名稱 |
作業系統 |
IP地址 |
無人值守系統 |
CentOS 6 |
192.168.231.142 |
客戶端 |
2.1虛擬機器設定
不使用本地DHCP服務
網路介面卡設定為主機模式,使虛擬機器之間能夠相互通訊
2.2配置DHCP
#yum install dhcp -y
#vim /etc/dhcp/dhcpd.conf 新增
//允許了BOOTP載入程式協議,旨在讓區域網內暫時沒有作業系統的主機也能獲取靜態IP地址;
allow booting;
allow bootp;
//定義DNS服務動態更新的型別,型別包括:none(不支援動態更新)、interim(互動更新模式)與ad-hoc(特殊更新模式)
ddns-update-style interim;
//忽略客戶端更新DNS記錄
ignore client-updates;
subnet 192.168.231.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.231.142;
range dynamic-bootp 192.168.231.100 192.168.231.110;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.231.142;
//讓客戶端主機獲取到IP地址後主動獲取引導驅動檔案,自行進入下一步的安裝過程。
filename "pxelinux.0";
}
2.3啟動DHCP服務,並新增到開機啟動項
#service dhcpd start
#chkconfig dhcpd on //設定開機啟動
三、配置TFTP服務程式
3.1安裝tftp服務
#yum install tftp-server
TFPT的執行和關閉是由xinetd網路守護程序來管理的,xinetd服務程式會同時監聽系統的多個埠,然後根據使用者請求的埠號調取相應的服務程式來相應使用者的請求。
3.2修改配置檔案
#vim /etc/xinetd.d/tftp
3.3啟動服務
service xinetd start
新增到開機啟動項
chkconfig xinetd on
四、配置SYSLinux服務程式
4.1安裝SYSLinux
SYSLinux是一個用於提供引導載入的服務程式。而我們主要使用裡面的引導檔案,檔案存在於/usr/share/syslinux
#yum install syslinux
4.2把SYSLinux提供的引導檔案複製到TFTP服務程式的預設目錄中,也就是前文提到的pxelinux.0,這樣客戶端就可以獲取到引導檔案了。另外,還需要CentOS6中的引導檔案,這就要掛載光碟映象(掛載到/media/cdrom),然後複製相應檔案到TFTP服務程式的預設目錄中。
#cd /var/lib/tftpboot
#cp /usr/share/syslinux/pxelinux.0 ./
#mount /dev/sr0 /media/cdrom
使其開機也能自動掛載
#vim /etc/fstab 新增一條
/dev/sr0 /media/cdrom udf,iso9660 defaults 0 0
#cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} ./
# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} ./
4.3然後在TFTP服務程式的目錄中新建pxelinux.cfg目錄,並將系統光碟中的開機選項選單複製到該目錄中,命名為default
#mkdir pxelinux.cfg
#cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
#vim pxelinux.cfg/default
18 label linux
19 menu label ^Install or upgrade an existing system
20 menu default
21 kernel vmlinuz
22append initrd=initrd.img inst.stage2=ftp://192.168.231.142 ks=ftp://192.168.231.142/pub/ks.cfg quiet
五、配置VSFtpd服務程式
5.1光碟映象通過FTP協議傳輸,因此要用到vsftpd服務程式。當然也可以用http服務程式。
#yum install vsftpd -y
#chkconfig vsftpd on
確認系統光碟映象已經掛載到/media/cdrom目錄,把目錄中的光碟映象檔案全部服務制到vsftpd服務程式的目錄中。
cp -r /media/cdrom/* /var/ftp
六、建立KickStart應答檔案
6.1在安裝系統過程中,經常需要手動填寫一些引數,點選一些按鈕,非常麻煩,如果把引數填好,形成一個應答檔案,讓系統自動執行,這該多好啊!而Kickstart就是這樣一個應答檔案,檔案中包含系統安裝過程中需要使用的選項和引數資訊,系統可以自動調取應答檔案的內容,從而實現無人值守安裝系統。
這個檔案就存在於root管理員的家目錄中,名為anaconda-ks.cfg。
把這個檔案複製到/var/ftp/pub/ks.cfg,以ks.cfg命名,並賦予檔案可讀許可權。
#cp anaconda-ks.cfg /var/ftp/pub/ks.cfg
#chmod +r /var/ftp/pub/ks.cfg
#vim /var/ftp/pub/ks.cfg
ks.cfg檔案內容
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://192.168.231.142/var/ftp"
# Root password
rootpw --iscrypted $1$b8Xgsj2c$K5p5zn5zlUbaf69kdRz1A.
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part swap --fstype="swap" --size=1024
part / --fstype="ext4" --size=6967
part /boot --fstype="ext4" --size=200
%packages
@base
@compat-libraries
@debugging
@development
git
%end
如果感覺系統自帶的應答檔案引數較少,可以通過Yum軟體倉庫來安裝system-config-kickstart軟體包。這是一個圖形換的Kickstart應答檔案生成工具,可以根據需求生成相應檔案,然後將檔案放到/var/ftp/pub目錄中,並修改名字為ks.cfg即可。詳情可參考:https://blog.csdn.net/yuanfangPOET/article/details/82933018
七、虛擬機器無人值守安裝如下:
在此選擇稍後安裝系統
網絡卡設定為僅主機模式
然後開啟此虛擬機器就可以自行安裝系統啦!