一、無(wú)人值守安裝系統(tǒng)
1漠秋、為什么需要無(wú)人值守安裝系統(tǒng)?
使用光盤鏡像來(lái)安裝 Linux 系統(tǒng)抵屿,坦白講,該方法適用于只安裝少量 Linux 系統(tǒng)的情況捅位。如果生產(chǎn)環(huán)境中有數(shù)百臺(tái)服務(wù)器都需要安裝系統(tǒng)轧葛,這種方式就不合時(shí)宜了。
這時(shí)艇搀,我們就需要使用 PXE + TFTP +FTP + DHCP + Kickstart 服務(wù)搭建出一個(gè)無(wú)人值守安裝系統(tǒng)尿扯。這種無(wú)人值守安裝系統(tǒng)可以自動(dòng)地為數(shù)十臺(tái)服務(wù)器安裝系統(tǒng),這一方面將運(yùn)維人員從重復(fù)性的工作中解救出來(lái)焰雕,也大大提升了系統(tǒng)安裝的效率衷笋。
2、無(wú)人值守安裝系統(tǒng)的工作流程
3矩屁、什么是 PXE 辟宗?
PXE(Preboot eXecute Environment,預(yù)啟動(dòng)執(zhí)行環(huán)境)是由 Intel 公司開(kāi)發(fā)的技術(shù)吝秕,可以讓計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)來(lái)啟動(dòng)操作系統(tǒng)(前提是計(jì)算機(jī)上安裝的網(wǎng)卡支持 PXE 技術(shù))泊脐,主要用于在無(wú)人值守安裝系統(tǒng)中引導(dǎo)客戶端主機(jī)安裝 Linux 操作系統(tǒng)。
4烁峭、什么是 Kickstart 容客?
Kickstart 是一種無(wú)人值守的安裝方式,其工作原理是預(yù)先把原本需要運(yùn)維人員手工填寫的參數(shù)保存成一個(gè)ks.cfg 文件约郁,當(dāng)安裝過(guò)程中需要填寫參數(shù)時(shí)則自動(dòng)匹配 Kickstart 生成的文件缩挑。
所以只要Kickstart 文件包含了安裝過(guò)程中需要人工填寫的所有參數(shù),那么從理論上來(lái)講完全不需要運(yùn)維人員的干預(yù)鬓梅,就可以自動(dòng)完成安裝工作供置。
TFTP、FTP 以及 DHCP 服務(wù)程序的配置與部署己肮,在前面章節(jié)中已經(jīng)詳細(xì)講解過(guò)士袄,這里不再贅述。
5谎僻、數(shù)據(jù)資源如何傳輸?shù)娇蛻舳酥鳈C(jī)上娄柳?
由于當(dāng)前的客戶端主機(jī)并沒(méi)有完整的操作系統(tǒng),也就不能完成 FTP 協(xié)議的驗(yàn)證了艘绍,所以需要使用 TFTP 協(xié)議幫助客戶端獲取引導(dǎo)及驅(qū)動(dòng)文件赤拒。
vsftpd 服務(wù)程序用于將完整的系統(tǒng)安裝鏡像通過(guò)網(wǎng)絡(luò)傳輸給客戶端。當(dāng)然,只要能將系統(tǒng)安裝鏡像成功傳輸給客戶端即可挎挖,因此也可以使用 httpd 來(lái)替代 vsftpd 服務(wù)程序这敬。
二、部署無(wú)人值守安裝服務(wù)
1蕉朵、配置 DHCP 服務(wù)程序
DHCP 服務(wù)程序用于為客戶端主機(jī)分配可用的 IP 地址崔涂,而且這是服務(wù)器與客戶端主機(jī)進(jìn)行文件傳輸?shù)幕A(chǔ),因此我們先行配置 DHCP 服務(wù)程序始衅。
1)配置“無(wú)人值守系統(tǒng)”服務(wù)端的 IP 為 192.168.10冷蚂。并關(guān)閉虛擬機(jī)自身的 DHCP 服務(wù),避免虛擬機(jī)自帶的 DHCP 服務(wù)對(duì)我們手動(dòng)部署的 DHCP 服務(wù)造成干擾汛闸。
2)安裝 DHCP 服務(wù)程序包
yum install dhcp
3)配置 dhcpd 服務(wù)
允許了 BOOTP 引導(dǎo)程序協(xié)議蝙茶,旨在讓局域網(wǎng)內(nèi)暫時(shí)沒(méi)有操作系統(tǒng)的主機(jī)也能獲取靜態(tài) IP地址;在配置文件的最下面加載了引導(dǎo)驅(qū)動(dòng)文件 pxelinux.0(這個(gè)文件會(huì)在下面的步驟中創(chuàng)建)诸老,其目的是讓客戶端主機(jī)獲取到 IP 地址后主動(dòng)獲取引導(dǎo)驅(qū)動(dòng)文件隆夯,自行進(jìn)入下一步的安裝過(guò)程。
vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
systemctl enable dhcpd
2别伏、配置 TFTP 服務(wù)程序
在前面章節(jié)中我們已經(jīng)學(xué)習(xí)過(guò) vsftpd服務(wù) 和 TFTP 服務(wù)蹄衷。vsftpd 是一款功能豐富的文件傳輸服務(wù)程序,允許用戶以匿名開(kāi)放模式厘肮、本地用戶模式宦芦、虛擬用戶模式來(lái)進(jìn)行訪問(wèn)認(rèn)證。但是轴脐,當(dāng)前的客戶端主機(jī)還沒(méi)有安裝操作系統(tǒng)调卑,該如何進(jìn)行登錄認(rèn)證呢?
而 TFTP 作為一種基于 UDP 協(xié)議的簡(jiǎn)單文件傳輸協(xié)議大咱,不需要進(jìn)行用戶認(rèn)證即可獲取到所需的文件資源恬涧。接下來(lái)配置 TFTP 服務(wù)程序,為客戶端主機(jī)提供引導(dǎo)及驅(qū)動(dòng)文件碴巾。當(dāng)客戶端主機(jī)有了基本的驅(qū)動(dòng)程序之后溯捆,再通過(guò) vsftpd 服務(wù)程序?qū)⑼暾墓獗P鏡像文件傳輸過(guò)去。
1)安裝 TFTP 服務(wù)程序包
yum install tftp-server
2)關(guān)于 xinetd 服務(wù)
TFTP 是一種非常精簡(jiǎn)的文件傳輸服務(wù)程序厦瓢,它的運(yùn)行和關(guān)閉是由 xinetd 網(wǎng)絡(luò)守護(hù)進(jìn)程服務(wù)來(lái)管理的提揍。xinetd 服務(wù)程序會(huì)同時(shí)監(jiān)聽(tīng)系統(tǒng)的多個(gè)端口,然后根據(jù)用戶請(qǐng)求的端口號(hào)調(diào)取相應(yīng)的服務(wù)程序來(lái)響應(yīng)用戶的請(qǐng)求煮仇。
3)配置 TFTP 服務(wù)程序(xinetd 服務(wù))
開(kāi)啟 TFTP 服務(wù)程序劳跃,只需在 xinetd 服務(wù)程序的配置文件中把 disable 參數(shù)改成 no 就可以了。
vim /etc/xinetd.d/tftp
systemctl restart xinetd
systemctl enable xinetd
4)修改 firewall 防火墻策略
TFTP 服務(wù)程序默認(rèn)使用的是 UDP 協(xié)議浙垫,占用的端口號(hào)為 69刨仑,所以在生產(chǎn)環(huán)境中還需要在 firewalld 防火墻管理工具中寫入使其永久生效的允許策略郑诺,以便讓客戶端主機(jī)順利獲取到引導(dǎo)文件。
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload
3杉武、配置 SYSLinux 服務(wù)程序
1)關(guān)于 SYSLinux 服務(wù)程序
SYSLinux 是一個(gè)用于提供引導(dǎo)加載的服務(wù)程序辙诞。與其說(shuō) SYSLinux 是一個(gè)服務(wù)程序,不如說(shuō)我們更需要它里面的引導(dǎo)文件轻抱,在安裝好 SYSLinux 服務(wù)程序軟件包后飞涂,/usr/share/syslinux 目錄中會(huì)出現(xiàn)很多引導(dǎo)文件。
2)安裝 SYSLinux 服務(wù)程序
yum install syslinux
3)提取引導(dǎo)文件至 TFTP 服務(wù)的默認(rèn)目錄中去
我們需要把 SYSLinux 提供的引導(dǎo)文件(即上述提到的文件 pxelinux.0)復(fù)制到 TFTP 服務(wù)程序的默認(rèn)目錄中祈搜,這樣客戶端主機(jī)就能夠順利地獲取到引導(dǎo)文件了封拧。
另外在 RHEL7 系統(tǒng)光盤鏡像中也有一些我們需要調(diào)取的引導(dǎo)文件。在確認(rèn)光盤鏡像已經(jīng)被掛載到/media/cdrom 目錄后夭问,使用 cp 命令將光盤鏡像中自帶的一些引導(dǎo)文件也復(fù)制到 TFTP 服務(wù)程序的默認(rèn)目錄中。
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
4)提取開(kāi)機(jī)菜單文件并進(jìn)行相關(guān)配置
在 TFTP 服務(wù)程序的目錄中新建 pxelinux.cfg 目錄曹铃,雖然該目錄的名字帶有后綴缰趋,但依然也是目錄。將系統(tǒng)光盤中的開(kāi)機(jī)選項(xiàng)菜單復(fù)制到該目錄中陕见,并命名為 default秘血,這個(gè) default 文件就是開(kāi)機(jī)時(shí)的選項(xiàng)菜單。
cd /var/lib/tftpboot
mkdir pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg ./pxelinux.cfg/default
默認(rèn)的開(kāi)機(jī)菜單中有兩個(gè)選項(xiàng)评甜,要么是安裝系統(tǒng)灰粮,要么是對(duì)安裝介質(zhì)進(jìn)行檢驗(yàn)。既然我們已經(jīng)確定采用無(wú)人值守的方式來(lái)安裝Linux系統(tǒng)忍坷,現(xiàn)在我們來(lái)編輯這個(gè) default 文件:
vim cd /var/lib/tftpboot/pxelinux.cfg/default
把第 1 行的 default 參數(shù)修改為 linux粘舟,這樣系統(tǒng)在開(kāi)機(jī)時(shí)就會(huì)默認(rèn)執(zhí)行那個(gè)名稱為 linux 的選項(xiàng)了。
在 64 行佩研,我們把默認(rèn)的光盤鏡像安裝方式修改成 FTP 文件傳輸方式柑肴,并指定好光盤鏡像的獲取地址以及 Kickstart 應(yīng)答文件的獲取路徑。
4旬薯、配置 vsftpd 服務(wù)程序
在我們這套無(wú)人值守安裝系統(tǒng)的服務(wù)中晰骑,光盤鏡像資源是通過(guò) FTP 協(xié)議傳輸?shù)模虼藙?shì)必要用到 vsftpd 服務(wù)程序绊序。
當(dāng)然硕舆,也可以使用 httpd 服務(wù)程序來(lái)提供 Web 網(wǎng)站訪問(wèn)的方式,只要能確保將光盤鏡像順利傳輸給客戶端主機(jī)即可骤公。如果打算使用 Web 網(wǎng)站服務(wù)來(lái)提供光盤鏡像抚官,一定記得將上述 /var/lib/tftpboot/pxelinux.cfg/default 配置文件中的光盤鏡像獲取網(wǎng)址和 Kickstart 應(yīng)答文件獲取網(wǎng)址修改一下。
1)安裝 vsftpd 服務(wù)程序包
yum install vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
在配置文件修改正確之后阶捆,一定將相應(yīng)的服務(wù)程序添加到開(kāi)機(jī)啟動(dòng)項(xiàng)中耗式,這樣無(wú)論是在生產(chǎn)環(huán)境中還是在紅帽認(rèn)證考試中,都可以在設(shè)備重啟之后依然能提供相應(yīng)的服務(wù)。
2)提取光盤鏡像資源至 vsftpd 服務(wù)的工作目錄中
在確認(rèn)系統(tǒng)光盤鏡像已經(jīng)正常掛載到/media/cdrom 目錄后刊咳,把目錄中的光盤鏡像文件全部復(fù)制到 vsftpd 服務(wù)程序的工作目錄中彪见。這個(gè)過(guò)程大約需要 3~5 分鐘。
cp -r /media/cdrom/* /var/ftp
3)修改 firewalld 防火墻策略
在 firewalld 防火墻管理工具中寫入“使 FTP 協(xié)議永久生效”的允許策略娱挨,然后在 SELinux 中放行 FTP 傳輸余指。
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setsebool -P ftpd_connect_all_unreserved=on
5、創(chuàng)建 KickStart 應(yīng)答文件
1)關(guān)于“無(wú)人值守安裝Linux系統(tǒng)”的進(jìn)一步理解
使用 PXE + Kickstart 部署的是一套“無(wú)人值守安裝系統(tǒng)服務(wù)”跷坝,而不是“無(wú)人值守傳輸系統(tǒng)光盤鏡像服務(wù)”酵镜,因此還需要讓客戶端主機(jī)能夠一邊獲取光盤鏡像,還能夠一邊自動(dòng)幫我們填寫好安裝過(guò)程中出現(xiàn)的選項(xiàng)柴钻。
簡(jiǎn)單來(lái)說(shuō)淮韭,如果生產(chǎn)環(huán)境中有 100 臺(tái)服務(wù)器,它們需要安裝相同的系統(tǒng)環(huán)境贴届,那么在安裝過(guò)程中單擊的按鈕和填寫的信息也應(yīng)該都是相同的靠粪。那么,為什么不創(chuàng)建一個(gè)類似于備忘錄的需求清單呢毫蚓?這樣占键,在無(wú)人值守安裝系統(tǒng)時(shí),可以從這個(gè)需求清單中找到相應(yīng)的選項(xiàng)值元潘,從而免去了手動(dòng)輸入之苦畔乙,更重要的是,也徹底解放了人的干預(yù)翩概,徹底實(shí)現(xiàn)無(wú)人值守自動(dòng)安裝系統(tǒng)牲距,而不是單純地傳輸系統(tǒng)光盤鏡像。
2)關(guān)于 Kickstart 文件
Kickstart 其實(shí)并不是一個(gè)服務(wù)程序钥庇,而是一個(gè)應(yīng)答文件嗅虏。Kickstart 應(yīng)答文件中包含了系統(tǒng)安裝過(guò)程中需要使用的選項(xiàng)和參數(shù)信息,系統(tǒng)可以自動(dòng)調(diào)取這個(gè)應(yīng)答文件的內(nèi)容上沐,從而徹底實(shí)現(xiàn)了無(wú)人值守安裝系統(tǒng)皮服。
3)獲取 Kickstart 應(yīng)答文件
那么,該去哪里找到這個(gè) Kickstart 文件呢参咙?其實(shí)在 root 管理員的家目錄中有一個(gè)名為 anaconda-ks.cfg 的文件龄广,它就是應(yīng)答文件。
下面把這個(gè)應(yīng)答文件復(fù)制到 vsftpd 服務(wù)程序的工作目錄中(在開(kāi)機(jī)選項(xiàng)菜單的配置文件中已經(jīng)定義了該文件的獲取路徑蕴侧,也就是 vsftpd 服務(wù)程序數(shù)據(jù)目錄中的 pub 子目錄中)择同。
再使用 chmod 命令設(shè)置該文件的權(quán)限,確保所有人都有可讀的權(quán)限净宵,以保證客戶端主機(jī)可以順利獲取到應(yīng)答文件及里面的內(nèi)容敲才。
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
4)配置 Kickstart 應(yīng)答文件
如果覺(jué)得系統(tǒng)默認(rèn)自帶的Kickstart 應(yīng)答文件參數(shù)較少裹纳,不能滿足生產(chǎn)環(huán)境的需求,則可以通過(guò) Yum軟件倉(cāng)庫(kù)來(lái)安裝 system-config-kickstart 軟件包紧武。這是一款圖形化的 Kickstart 應(yīng)答文件生成工具剃氧,可以根據(jù)自己的需求生成自定義的 Kickstart應(yīng)答文件,然后把生成的文件放到/var/ftp/pub 目錄中并將其名字修改為 ks.cfg 即可阻星。
三朋鞍、測(cè)試 “PXE + Kickstart 無(wú)人值守安裝系統(tǒng)” 服務(wù)
上述我們已經(jīng)完成了 PXE + Kickstart 無(wú)人值守安裝系統(tǒng)的服務(wù),現(xiàn)在就可以使用它來(lái)為客戶端主機(jī)安裝 Linux 系統(tǒng)了妥箕。
下面我們?cè)诳蛻舳酥鳈C(jī)上安裝 VM 虛擬機(jī)滥酥,在虛擬機(jī)環(huán)境中測(cè)試“192.168.10.10服務(wù)器上的無(wú)人值守安裝系統(tǒng)”服務(wù)。
1)第1步:先把客戶端主機(jī)的虛擬機(jī)的網(wǎng)卡模式設(shè)定成與服務(wù)端一致的“僅主機(jī)模式”畦幢,否則兩臺(tái)主機(jī)之間將無(wú)法進(jìn)行通信坎吻。客戶端主機(jī)的硬件配置選項(xiàng)并沒(méi)有強(qiáng)制性要求宇葱。
2)第2步:在客戶端的虛擬機(jī)中點(diǎn)擊“新建虛擬機(jī)向?qū)А笔菡妫x擇“典型(推薦)”模式來(lái)安裝。
3)第3步:把虛擬機(jī)操作系統(tǒng)的安裝來(lái)源設(shè)置為“稍后安裝操作系統(tǒng)”贝搁,這樣做的目的是讓虛擬機(jī)從網(wǎng)絡(luò)中(192.168.10.10服務(wù)端)獲取Linux系統(tǒng)安裝鏡像資源。
4)第4步:指定將要安裝的操作系統(tǒng)的類型為 " Linux -> RedHat Enterprise Linux 7 64位"芽偏;指定系統(tǒng)在本地主機(jī)上的安裝路徑雷逆;自定義虛擬機(jī)的系統(tǒng)名稱;指定系統(tǒng)要使用多大的磁盤容量污尉,比如20G膀哲。
5)第5步:自定義硬件,把將要安裝的Linux系統(tǒng)的“網(wǎng)絡(luò)適配器”設(shè)備設(shè)置為“僅主機(jī)模式”(這個(gè)步驟非常重要)被碗,然后單擊“確定”按鈕某宪。
至此,用于測(cè)試的客戶端主機(jī)(虛擬機(jī))和“PXE + Kickstart 無(wú)人值守安裝系統(tǒng)”服務(wù)端都已經(jīng)準(zhǔn)備好了锐朴。
6)第6步:開(kāi)始自動(dòng)為客戶端主機(jī)(測(cè)試用的虛擬機(jī))安裝Linux系統(tǒng)
在生產(chǎn)環(huán)境中兴喂,只需要將配置好的“PXE + Kickstart 無(wú)人值守安裝系統(tǒng)”服務(wù)器上架,接通服務(wù)器和客戶端主機(jī)之間的網(wǎng)線焚志,然后啟動(dòng)客戶端主機(jī)(測(cè)試用的虛擬機(jī))即可衣迷。
接下來(lái)就會(huì)自動(dòng)開(kāi)始傳輸光盤鏡像文件,并進(jìn)行自動(dòng)安裝了酱酬。期間完全無(wú)須人工干預(yù)壶谒,直到安裝完畢時(shí)才需要運(yùn)維人員進(jìn)行簡(jiǎn)單的初始化工作。
可見(jiàn)膳沽,當(dāng)生產(chǎn)環(huán)境工作中有數(shù)百臺(tái)服務(wù)器需要批量安裝Linux系統(tǒng)時(shí)汗菜,使用無(wú)人值守安裝系統(tǒng)是非常有必要的让禀。
本章復(fù)習(xí)題
作者:夏海峰
鏈接:http://www.reibang.com/p/ff0d230f80a6
來(lái)源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處陨界。