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

剛入職的運維新手常常會被要求去作一些安裝操做系統的工做,若是按照用鏡像光盤安裝操做系統,效率會至關低下。那麼如何提高效率,搭建出一套能夠批量安裝Linux系統的無人值守的安裝系統?linux

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

 

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

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

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

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

[root@linuxprobe linuxprobe]# yum install dhcpsocket

[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf操作系統

allow booting;.net

allow bootp;3d

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就該這麼學》,但願本文對剛入職的運維人員有必定的幫助。

相關文章
相關標籤/搜索