Linux系統下手把手完成無人值守安裝服務

剛入職的運維新手經常會被要求去做一些安裝操作系統的工作,如果按照用鏡像光盤安裝操作系統,效率會相當低下。那麼如何提升效率,搭建出一套可以批量安裝Linux系統的無人值守的安裝系統?


PXE+TFTP+FTP+DHCP+Kickstart服務可以搭建出一個無人值守安裝系統。這種無人值守安裝系統可以自動的爲數十臺服務器安裝系統,將運維人員從重複性的工作中解救出來,大大提升了系統安裝的效率。




 


如上圖所示,是無人值守安裝系統的工作流程。


PXE(Preboot eXecute Environment,預啓動執行環境)是由 Intel 公司開發的技術,可以讓計算機通過網絡來啓動操作系統(前提是計算機上安裝的網卡支持 PXE 技術),主要用於在無人值守安裝系統中引導客戶端主機安裝 Linux 操作系統。Kickstart 是一種無人值守的安裝方式,其工作原理是預先把原本需要運維人員手工填寫的參數保存成一個ks.cfg 文件,當安裝過程中需要填寫參數時則自動匹配 Kickstart 生成的文件。所以只要Kickstart 文件包含了安裝過程中需要人工填寫的所有參數,那麼從理論上來講完全不需要運維人員的干預,就可以自動完成安裝工作。


當然需要使用 TFTP 協議幫助客戶端獲取引導及驅動文件。vsftpd 服務程序用於將完整的系統安裝鏡像通過網絡傳輸給客戶端。當然,只要能將系統安裝鏡像成功傳輸給客戶端即可,因此也可以使用 httpd 來替代 vsftpd 服務程序。


首先,配置DHCP服務程序。DHCP 服務程序用於爲客戶端主機分配可用的 IP 地址,而且這是服務器與客戶端主機進行文件傳輸的基礎,因此我們先行配置 DHCP 服務程序。


[root@linuxprobe linuxprobe]# yum install dhcp


[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf


allow booting;


allow bootp;


ddns-update-style interim;


ignore client-updates;


subnet 192.168.10.0 netmask 255.255.255.0 {


option subnet-mask 255.255.255.0;


option domain-name-servers 192.168.10.10;


range dynamic-bootp 192.168.10.100 192.168.10.200;


default-lease-time 21600;


max-lease-time 43200;


next-server 192.168.10.10;


filename "pxelinux.0";


}


該操作的目的是爲了允許BOOTP引導程序協議,旨在讓局域網內暫時沒有操作系統的主機也能獲取靜態 IP地址;在配置文件的最下面加載了引導驅動文件 pxelinux.0 ,其目的是讓客戶端主機獲取到 IP 地址後主動獲取引導驅動文件,自行進入下一步的安裝過程。具體解釋見《Linux就該這麼學》。


第二步,配置TFTP服務程序。


vsftpd 是一款功能豐富的文件傳輸服務程序,允許用戶以匿名開放模式、本地用戶模式、虛擬用戶模式來進行訪問認證。但是,當前的客戶端主機還沒有安裝操作系統,該如何進行登錄認證呢?而 TFTP 作爲一種基於 UDP 協議的簡單文件傳輸協議,不需要進行用戶認證即可獲取到所需的文件資源。因此接下來配置 TFTP 服務程序,爲客戶端主機提供引導及驅動文件。當客戶端主機有了基本的驅動程序之後,再通過 vsftpd 服務程序將完整的光盤鏡像文件傳輸過去。


[root@linuxprobe ~]# yum install tftp-server


[root@linuxprobe ~.d]# vim /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


per_source = 11


cps = 100 2


flags = IPv4


}


第三步,配置SYSLinux服務程序。SYSLinux 是一個用於提供引導加載的服務程序。與其說 SYSLinux 是一個服務程序,不如說更需要裏面的引導文件,在安裝好 SYSLinux 服務程序軟件包後,/usr/share/syslinux 目錄中會出現很多引導文件。


[root@linuxprobe ~]# yum install syslinux


[root@linuxprobe ~]# cd /var/lib/tftpboot


[root@linuxprobe tftpboot]# cp /usr/share/syslinux/pxelinux.0 .


[root@linuxprobe tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .


[root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .


首先需要把 SYSLinux 提供的引導文件複製到 TFTP 服務程序的默認目錄中,也就是前文提到的文件 pxelinux.0,這樣客戶端主機就能夠順利地獲取到引導文件了。另外在 RHEL 7 系統光盤鏡像中也有一些我們需要調取的引導文件。確認光盤鏡像已經被掛載到/media/cdrom 目錄後,使用複製命令將光盤鏡像中自帶的一些引導文件也複製到 TFTP 服務程序的默認目錄中。


[root@linuxprobe tftpboot]# mkdir pxelinux.cfg


[root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default


然後在 TFTP 服務程序的目錄中新建 pxelinux.cfg 目錄,雖然該目錄的名字帶有後綴,但依然也是目錄,而非文件!將系統光盤中的開機選項菜單複製到該目錄中,並命名爲 default。這個 default 文件就是開機時的選項菜單,如圖所示。




第四步,配置vdftpd服務程序。


[root@linuxprobe ~]# yum install vsftpd


在確認系統光盤鏡像已經正常掛載到/media/cdrom 目錄後,把目錄中的光盤鏡像文件全部複製到 vsftpd 服務程序的工作目錄中。


[root@linuxprobe ~]# cp -r /media/cdrom/* /var/ftp


最後,創建KickStart應答文件。


畢竟,我們使用 PXE + Kickstart 部署的是一套“無人值守安裝系統服務”,而不是“無人值守傳輸系統光盤鏡像服務”,因此還需要讓客戶端主機能夠一邊獲取光盤鏡像,還能夠一邊自動幫我們填寫好安裝過程中出現的選項。


在 root 管理員的家目錄中有一個名爲 anacondaks.cfg 的文件,它就是應答文件。下面將這個文件複製到 vsftpd 服務程序的工作目錄中(在開機選項菜單的配置文件中已經定義了該文件的獲取路徑,也就是 vsftpd 服務程序數據目錄中的 pub 子目錄中)。使用 chmod 命令設置該文件的權限,確保所有人都有可讀的權限,以保證客戶端主機可以順利獲取到應答文件及裏面的內容:


[root@linuxprobe ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg


[root@linuxprobe ~]# chmod +r /var/ftp/pub/ks.cfg


到目前爲止,我們的服務基本部署完畢,集體詳細解釋過程參見《Linux就該這麼學》,希望本文對剛入職的運維人員有一定的幫助。

--------------------- 

作者:Linux資源站 

來源:CSDN 

原文:https://blog.csdn.net/Linuxprobe18/article/details/87195628 

版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章