1. 程式人生 > >批量無人值守部署(Pxe、Kickstart)

批量無人值守部署(Pxe、Kickstart)

PXE使用需要以下幾點:
客戶端的網絡卡必須要支援PXE功能,並且開機選擇從網絡卡啟動,進入PXE程式
PXE伺服器必須要提供至少含有DHCP以及TFTP的服務!
DHCP服務提供客戶端網路,並且告知TFTP所在的位置;
TFTP提供客戶端boot loader及kernel file下載路徑
PXE工作流程:
Client向PXE Server上的DHCP傳送IP地址請求訊息,返回Client的IP地址,同時將pxe環境下的Boot
loader檔案pxelinux.0的位置資訊傳送給Client
Client向PXE Server上的TFTP請求pxelinux.0
Client執行接收到的pxelinux.0檔案
Client向TFTP請求pxelinux.cfg檔案(裡面放置的是是啟動選單,即grub的配置檔案)
Client向TFTP傳送Linux核心請求資訊
Client向TFTP傳送根檔案請求資訊
Client載入Linux核心
Client通過nfs/ftp/http下載系統安裝檔案進行安裝
Kickstart是一種無人值守的安裝方式
Kickstart工作流程:
在這裡插入圖片描述


步驟
1.先關掉防火牆和selinux
systemctl stop firewalld
setenforce 0
2.設定靜態ip地址並重啟網絡卡
cat /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/init.d/network restaet
3.安裝配置DHCP服務
yum -y install dhcp
vi /etc/dhcp/dhcpd.conf

subnet 192.168.50.0 netmask 255.255.255.0 { #設定網段
option routers 192.168.50.2; #設定閘道器
option subnet-mask 255.255.255.0; #設定子網掩碼
option domain-name-servers 192.168.50.2; #設定dns伺服器地址
range dynamic-bootp 192.168.50.200 192.168.50.205; #IP地址租用的範圍
default-lease-time 21600; #預設租約時間
max-lease-time 43200; #最大租約時間
next-server 192.168.50.132; #tftp伺服器地址
filename "pxelinux.0"; #tftp伺服器根目錄下面的檔名
}    

開啟服務並設定開機自啟動
systemctl start dhcpd
systemctl enable dhcpd
4.安裝搭建TFTP服務
yum -y install tftp -server tftp
vi /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						//將yes改為no,啟動tftp服務
       per_source              = 11
       cps                     = 100 2
       flags                   = IPv4 }

開啟服務並設定開機自啟動
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
5.組建PXE服務環境
安裝syslinux包
yum install syslinux -y
cd /var/lib/tftpbootcd
將pxelinux.0拷貝到tftp服務目錄
cp /usr/share/syslinux/pxelinux.0 .
cp /mnt/images/pxeboot/{vmlinuz,initrd.img} .
cp /mnt/isolinux/{vesamenu.c32,boot.msg} .
在tftp服務目錄下建立pxelinux.cfg目錄
mkdir pxelinux.cfg
配置啟動選單檔案,將系統自帶的啟動檔案拷貝到TFTP目錄下改名為
cp /mnt/isolinux/isolinux.cfg pxelinux.cfg/default

vi pxelinux.cfg/default 刪除60行後的內容,自己編寫

label linux
menu label ^Install CentOS 74
kernel vmlinuz	指定核心
append initrd=initrd.img ks=http://192.168.50.132/config/ks.cfg biosdevname=0
net.ifnames=0	//指定自動安裝檔案ks.cfg

6.搭建http服務
#通過HTTP協議把光碟映象內容傳給客戶端
yum install httpd -y
cp -rf /mnt/* /var/www/html/
mkdir -p /var/www/html/config #新建目錄,把自定義的檔案、指令碼等放置於此
開啟服務並設定開機自啟動
systemctl start http
systemctl enable http
7.建立kickstart檔案
vi /var/www/html/config/ks.cfg

#platform=x86, AMD64 或 Intel EM64T  
#version= 
 
#Firewall configuration  //關閉防火牆
firewall --disabled  
 
#Install OS instead of upgrade //安裝系統
install    
 
#Use network installation //使用網路安裝,配置http獲取安裝包
url --url="http://192.168.50.132/" 
#!!!
 
#Use CDROM installation media 
repo --name="yum" --baseurl=http://192.168.50.132/
#!!!
 
#Root password  //配置root密碼
rootpw --iscrypted $1$mi4lP.ZY$j5UDGX34knfGuSYPwd82u/   #redhat 
#openssl passwd -1  
 
#Use graphical install graphical or text 
text
 
#Run the Setup Agent on first boot 
firstboot --disable
 
#System keyboard  //配置鍵盤
keyboard us  
 
#System language  //配置語言
lang en_US.UTF-8
 
#SELinux configuration  //關閉selinux
selinux --disabled  
 
#Reboot after installation  //安裝完重新引導
reboot  
 
#System timezone  //配置時區
timezone  --isUtc Asia/Shanghai
 
#Network information  //配置網路為自動獲取
network  --bootproto=dhcp --device=eth0 --noipv6 --activate 
network  --hostname=web 
#!!!
 
#System bootloader configuration  //系統載入程式配置
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
 
#Clear the Master Boot Record  //清空主引導記錄
zerombr 
 
#Partition clearing information  //分割槽資訊
clearpart --all --initlabel  
#!!!
 
#Disk partitioning information //指定分割槽大小
part /boot --fstype="xfs" --ondisk=sda --size=200
part swap --fstype="swap" --ondisk=sda --size=2048
part / --fstype="xfs" --ondisk=sda --size=17166
 
#!!!
 
%packages  
@core 
wget 
%end
 
%post   //配置yum
#yum_client 
cd /etc/yum.repos.d/ 
rm -rf * 
wget http://192.168.50.132/config/yum.repo
%end
%addon com_redhat_kdump --disable --reserve-mb='auto' 
%end

8.啟動客戶機安裝
客戶機要和伺服器在同一區域網內