1. 程式人生 > >KickStart無人值守部署

KickStart無人值守部署

KickStart無人值守部署

kickstart是一個利用Anconda工具實現伺服器自動化安裝的方法;通過生成kickstart配置檔案ks.cfg,伺服器安裝可以實現從裸機到全功能服務的的非互動式(無人值守式)安裝配置。
•PXE,全名Pre-boot Execution Environment,預啟動執行環境;PXE不是一種安裝方式,是一種引導的方式。通過網路介面啟動計算機,不依賴本地儲存裝置(如硬碟)或本地已安裝的作業系統;Client/Server的工作模式;PXE客戶端會呼叫網際協議(IP)、使用者資料報協議(UDP)、動態主機設定協議(DHCP)、小型檔案傳輸協議(TFTP)等網路協議;

這裡寫圖片描述

這裡寫圖片描述

1 PXE Client向DHCP傳送請求
PXE Client從自己的PXE網絡卡啟動,通過PXE BootROM(自啟動晶片)會以UDP(簡單使用者資料報協議)傳送一個廣播請求,向本網路中的DHCP伺服器索取IP。
2 DHCP伺服器提供資訊
DHCP伺服器收到客戶端的請求,驗證是否來至合法的PXE Client的請求,驗證通過它將給客戶端一個”提供”響應,這個”提供”響應中包含了為客戶端分配的IP地址、pxelinux啟動程式(TFTP)位置,以及配置檔案所在位置。
3 PXE客戶端請求下載啟動檔案
客戶端收到伺服器的”迴應”後,會迴應一個幀,以請求傳送啟動所需檔案。這些啟動檔案包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等檔案。
4 Boot Server響應客戶端請求並傳送檔案
當伺服器收到客戶端的請求後,他們之間之後將有更多的資訊在客戶端與伺服器之間作應答, 用以決定啟動引數。BootROM由TFTP通訊協議從Boot Server下載啟動安裝程式所必須的檔案(pxelinux.0、pxelinux.cfg/default)。default檔案下載完成後,會根據該檔案中定義的引導順序,啟動Linux安裝程式的引導核心。
5 請求下載自動應答檔案
客戶端通過pxelinux.cfg/default檔案成功的引導Linux安裝核心後,安裝程式首先必須確定你通過什麼安裝介質來安裝linux,如果是通過網路安裝(NFS, FTP, HTTP),則會在這個時候初始化網路,並定位安裝源位置。接著會讀取default檔案中指定的自動應答檔案ks.cfg所在位置,根據該位置請求下載該檔案。
6 客戶端安裝作業系統
將ks.cfg檔案下載回來後,通過該檔案找到OS Server,並按照該檔案的配置請求下載安裝過程需要的軟體包。
OS Server和客戶端建立連線後,將開始傳輸軟體包,客戶端將開始安裝作業系統。安裝完成後,將提示重新引導計算機。

安裝方法 PXE + TFTP + FTP + DHCP + Kickstart
總的安裝包
yum install dhcp xinetd tftp-server vsftpd syslinux system-config-kickstart

一、配置DHCP服務
[[email protected] ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 防寫,將以只讀方式掛載
[[email protected] ~]# yum install dhcp -y
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.


# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
ddns-update-style interim;
ignore client-updates;
filename “pxelinux.0”; #指定引導檔案
next-server 192.168.223.129; #指定引導檔案
subnet 192.168.223.0 netmask 255.255.255.0 {
option routers 192.168.223.1;
option domain-name-servers 114.114.114.114;
range dynamic-bootp 192.168.223.200 192.168.223.230;
default-lease-time 60;
max-lease-time 60;
}
[[email protected] ~]# systemctl restart dhcpd
二、配置TFTP伺服器

簡單檔案傳輸協議TFTP(Trivial File Transfer Protocol)是一種基於UDP協議的傳輸協議,其與前面學習的vsftpd服務程式的FTP協議有很大不同,TFTP協議不具備FTP的許多功能(例如列出目錄,密碼認證等等),但TFTP協議配置非常簡單,而且資源消耗更低,非常適合傳輸不敏感的檔案。

vsftpd是一款功能豐富的檔案傳輸服務程式,允許使用者以匿名開放模式、本地使用者模式、虛擬使用者模式來進行訪問認證。但是,當前的客戶端主機還沒有安裝作業系統,該如何進行登入認證呢?而TFTP作為一種基於UDP協議的簡單檔案傳輸協議,不需要進行使用者認證即可獲取到所需的檔案資源。因此接下來配置TFTP服務程式,為客戶端主機提供引導及驅動檔案。當客戶端主機TFTP是一種非常精簡的檔案傳輸服務程式,它的執行和關閉是由xinetd網路守護程序服務來管理的。xinetd服務程式會同時監聽系統的多個埠,然後根據使用者請求的埠號調取相應的服務程式來響應使用者的請求。需要開啟TFTP服務程式,只需在xinetd服務程式的配置檔案中把disable引數改成no就可以了。儲存配置檔案並退出,然後重啟xinetd服務程式,並將其加入到開機啟動項中(在RHEL 7系統中,已經預設啟用了xinetd服務程式,因此在將其新增到開機啟動項中的時候沒有輸出資訊屬於正常情況)。有了基本的驅動程式之後,再通過vsftpd服務程式將完整的光碟映象檔案傳輸過去

[[email protected] ~]# yum install -y tftp
[[email protected] ~]# yum install xinetd.x86_64
編輯xinetd配置檔案,啟動TFTP服務程式:
[[email protected] ~]# vi /etc/xinetd.d/tftp

# default: off
*# description: The tftp server serves files using the trivial file transfer *
*# protocol. The tftp protocol is often used to boot diskless *
*# workstations, download configuration files to network-aware printers, *
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
[[email protected] ~]# systemctl start tftp.socket
[[email protected] ~]# systemctl restart xinetd
[[email protected] ~]# systemctl restart tftp.socket

三、 PXE引導配置(bootstrap)
syslinux是一個功能強大的引導載入程式,而且相容各種介質。SYSLINUX是一個小型的Linux作業系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。
SYSLinux是一個用於提供引導載入的服務程式。與其說SYSLinux是一個服務程式,不如說更需要裡面的引導檔案,在安裝好SYSLinux服務程式軟體包後,/usr/share/syslinux目錄中會出現很多引導檔案。
[[email protected] ~]# yum install syslinux
[[email protected] ~]# mkdir -p /tftpboot/pxelinux.cfg
把SYSLinux提供的引導檔案複製到TFTP服務程式的預設目錄中,也就是前文提到的檔案pxelinux.0,這樣客戶端主機就能夠順利地獲取到引導檔案了。另外在RHEL 7系統光碟映象中也有一些我們需要調取的引導檔案。確認光碟映象已經被掛載到/media/cdrom目錄後,使用複製命令將光碟映象中自帶的一些引導檔案也複製到TFTP服務程式的預設目錄中。然後在TFTP服務程式的目錄中新建pxelinux.cfg目錄,雖然該目錄的名字帶有後綴,但依然也是目錄,而非檔案!將系統光碟中的開機選項選單複製到該目錄中,並命名為default。這個default檔案就是開機時的選項選單
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[[email protected] ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/
[[email protected] ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/
[[email protected] ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[[email protected] ~]# chmod 644 /tftpboot/pxelinux.cfg/default
#修改配置檔案
[[email protected] ~]# vim /tftpboot/pxelinux.cfg/default
1 default linux #修改預設啟動模式
64 append initrd=initrd.img ks=ftp://172.16.50.171/ks.cfg #修改載入的KS應答檔案

四、準備安裝映象
[[email protected] ~]# systemctl restart vsftpd
掛載系統映象到共享目錄
光碟映象是通過FTP協議傳輸的
[[email protected] ~]# mount /dev/sr0 /var/ftp/pub/
mount: /dev/sr0 防寫,將以只讀方式掛載

五、建立KS應答檔案
在虛擬機器中執行以下命令來使用圖形介面建立一個KS應答檔案
[[email protected] ~]# yum install -y system-config-kickstart.noarch
[[email protected] ~]# system-config-kickstart
這裡寫圖片描述

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
其餘的都可預設