李志煒 田秀云



關(guān)鍵詞:自動部署;Linux;PXE
0引言
互聯(lián)網(wǎng)從誕生開始,就打破了計算機各自獨立的局面,將無數(shù)的計算機連接成巨大的信息交互網(wǎng)絡(luò)。一方面網(wǎng)絡(luò)中的每一個節(jié)點都需要提供穩(wěn)定的服務(wù),一個節(jié)點可能就是由數(shù)十上百臺的服務(wù)器構(gòu)成,如果這些服務(wù)器需要完全一致的安裝設(shè)置和軟件配置,靠人員手動操作效率太低和難免出錯。另一方面,網(wǎng)絡(luò)的一端到另一端可能跨越半個地球,要想對相距遙遠的兩臺服務(wù)器進行統(tǒng)一的安裝和初始化,除了派送人員安裝,另外一個不錯的方法就是利用覆蓋全球的網(wǎng)絡(luò)進行遠程安裝。這就引出2個系統(tǒng)安裝的需求:能全自動的對數(shù)十臺服務(wù)器做統(tǒng)一的安裝設(shè)置;能通過網(wǎng)絡(luò)對遠程的服務(wù)器進行安裝。PXE技術(shù)就完全滿足了這2個需求,PXE相較于前者有著不少的優(yōu)勢,使用PXE不需要額外添加硬件設(shè)備,在原有的網(wǎng)卡固件上就能實現(xiàn)。它解決了TFTP+BOOTP+DHCP方案不能提供定制設(shè)置的問題。另外小型化的PXE占用的資源很少。其能支持的客戶端很多,從功能完備、算力強大的大型計算機到功能專一且小巧的單片機,都有很好的支持,本研究有一定的現(xiàn)實意義。
1整體方案
PXE需要DHCP服務(wù)的支持,DHCP給客戶端分配一個合法IP地址并告知TFTP的IP地址,使客戶端能從TFTP獲取引導(dǎo)文件pxelinux.O、內(nèi)核文件vmlinuz和initrd.img等。再根據(jù)菜單配置文件default提供的光盤鏡像文件和應(yīng)答文件在網(wǎng)絡(luò)中的位置,客戶端取得光盤鏡像,并根據(jù)應(yīng)答文件的設(shè)置進行自動安裝。最后運行應(yīng)答文件中的初始化腳本,完成初始化。服務(wù)器響應(yīng)服務(wù)圖如圖1所示。
2PXE各個服務(wù)的具體部署
2.1PXE服務(wù)器提供DHCP服務(wù)
用命令yum-y install dhcp進行DHCP服務(wù)的安裝,安裝后用命令rpm-q dhcp進行確認。DHCP配置文件的路徑/etc/dhcp/dhcpd.conf,下面幾個是配置DHCP的重要參數(shù)以及說明。
range dynamic-bootp 192.168.233.26 192.168.233.30.可分配給客戶端的lP范圍,將192.168.233.0網(wǎng)段中的26-30作為IP池。option routers 192.168.233.2,指定客戶端的網(wǎng)關(guān)。option domain-name-servers223.5.5.5,指定客戶端的DNS。default-lease-time21600,默認租約時間,單位為s。max-lease-time43200,最大租約時間,單位為s。next-server192.168.233.50,TFFP服務(wù)器在內(nèi)網(wǎng)中的位置,即IP地址。filename”pxelinux.0”,引導(dǎo)文件的名稱??蛻舳藦腄HCP服務(wù)器(PXE服務(wù)器)中獲得IP地址192.168.233.26,并得知DHCP服務(wù)器的IP地址192.168.233.50和網(wǎng)關(guān)地址192.168.233.2。
2.2 PXE服務(wù)器提供Tbq'P服務(wù)
用命令yum-y install tftp-server進行TFTP服務(wù)的安裝,安裝后用命令rpm-q trip-server進行確認。TFTP的配置文件為/ete/xinetd.d/tftp,其中參數(shù)server args=-s/var/lib/tftpboot,其含義為安裝所用到的引導(dǎo)文件和內(nèi)核文件等都是放在此目錄下的。安裝syslinux服務(wù),將/usr/share/syslinux/pxelinux.0復(fù)制到Tbq30根目錄。掛載光盤到空目錄,將內(nèi)核文件vmlinuz和initrd.img,菜單樣式文件vesamentL e32,窗口提示信息文件boot.msg復(fù)制到TFTP根目錄。最后將菜單配置文件isolinux.cfg復(fù)制到TFTP根目錄下的pxelinux.cfg目錄中,并重命名為default。
2.3 PXE服務(wù)器提供安裝源
(1)HTTP方式
用命令yum-y install httpd進行安裝,安裝后用命令rpm-q httpd進行確認。默認的http的主配置文件的路徑是/ete/httpd/eonf/httpd.eonf,http文件根目錄的位置是/var/www/html,此位置為掛載光盤鏡像的目錄,客戶端也從該目錄讀取鏡像文件來進行安裝操作。接著用命令mount-bind/media//var/www/html/CentOS7/將/media的光盤映射再映射到空目錄CentOS7。客戶端通過HTTP服務(wù)器的IP地址就能進入服務(wù)器,并且進入的是文件根目錄/var/www/html/,在這個目錄下就有一個放著光盤鏡像的目錄CentOS7/。只需在網(wǎng)絡(luò)位置后指定CentOS7/目錄,即http://192.168.233.50/CentOS7/。用命令systemetlstart httpd.service和systemctl enable httpd.service,將HTTP服務(wù)啟動并設(shè)為開機自啟動。進入配置文件default修改指定安裝源,替換原來的安裝源。appendinitrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet將上面內(nèi)容改為:append initrd=initrd.img inst.repo=http://192.168.233.50/CentOS。
(2)FFP方式
用命令yum-y install vsflpd進行安裝,安裝后用命令rpm-q vsflpd進行確認,用命令systemctl restartvsftpd啟動vsflp服務(wù),并設(shè)置為開機自啟動systemctlenable vsftpd。vsflp服務(wù)默認的根目錄在/var/flp/,使用命令\cp-r/media//var/ftp/CentOS7/將光盤鏡像文件全部復(fù)制到vsftpd服務(wù)的根目錄的CentOS7/目錄下。與HTTP方式相同,通過FFP服務(wù)器獲取光盤鏡像的網(wǎng)絡(luò)位置為ftp://192.168.233.50/CentOS7/。修改default的指定安裝源的參數(shù),append initrd=initrd.img inst.repo=ftp://192.168.233.50/CentOS7
(3)NFS方式
用命令yum-y install nfs-utils進行安裝,安裝后用命令rpm-q nfs-utils進行確認。
設(shè)置共享目錄,在系統(tǒng)根目錄新建/data/nfs/用于共享文件,接下來同F(xiàn)TP一樣復(fù)制光盤鏡像文件進/data/nfs/CentOS7/目錄。為了讓這個共享目錄生效,需要在配置文件/etc/exports中聲明共享目錄的位置、可以訪問共享目錄的網(wǎng)段以及對應(yīng)的權(quán)限。寫出光盤鏡像文件的完整路徑/data/nfs/CentOS7。格式為nfs:[NFS服務(wù)器IP地址]:[光盤鏡像文件的絕對路徑],依照此格式將inst.stage2=hd:LABEL=CentOS\x207\x20x86_64修改為inst.repo=nfe:192.168.233.50:/data/nfs/CentOS7。
客戶端使用快照還原回剛配置好硬件的狀態(tài)。還原好后啟動客戶端,等待請求IP、獲取引導(dǎo)文件、獲取菜單配置文件,進入到菜單后選擇InstallCentOS 7,選擇語言后,INSTALLATION SOURCE(安裝源)變成了NFS Server 192.168.233.50,雖然在default中寫了光盤鏡像的絕對路徑,但這里也不會顯示出來。接下來進行正常的安裝流程就可以了。
3應(yīng)答文件設(shè)計
Kickstart作為應(yīng)答文件無需額外安裝服務(wù),真正做到輕便。且Kickstart的功能十分強大,在Kickstart里面不僅能替代手工自動完成在安裝頁面的設(shè)置,如設(shè)置語言、root用戶密碼、磁盤分區(qū),還能利用安裝源自定義安裝所需服務(wù)。甚至能攜帶腳本,并在系統(tǒng)安裝完成后自動運行這些腳本,這就給管理人員減少了很多不必要的重復(fù)工作。
4客戶端初始化設(shè)計
系統(tǒng)初始化要做的事主要有設(shè)置時問同步、安全策略、配置網(wǎng)卡、優(yōu)化內(nèi)核。這些都可以寫在應(yīng)答文件里面,在系統(tǒng)安裝完成后自動執(zhí)行。也可以寫成一個獨立的初始化腳本,通過應(yīng)答文件下載和設(shè)置運行時間。
5客戶端SSH免密設(shè)計
無論是通過SSH登錄客戶端,還是通過scp傳輸文件給客戶端,都需要輸入密碼,這是一種保障客戶端安全的措施。管理人員通過一臺管理終端管理數(shù)十臺客戶端,登錄管理終端這個過程已經(jīng)有足夠的安全保障,但批量管理客戶端還要反復(fù)輸入數(shù)十次密碼,這反倒降低了管理效率,所以需要客戶端對管理終端開啟SSH免密。
本研究將ssh-keygen生成的密鑰寫進一個文件,再將文件發(fā)送給管理終端。先測試了scp命令在Kickstart腳本執(zhí)行的時候可以正常使用,再將文件里面的內(nèi)容寫進管理終端的“密鑰庫”里面,這樣就完成了與ssh-copy-id 192.168.233.50相同的功能,實現(xiàn)了SSH免密。
6結(jié)束語
本文使用經(jīng)典的PXE+Kickstart方式實現(xiàn)網(wǎng)絡(luò)自動部署服務(wù)器,并使用HTFP、KIP和NFS作為安裝源,豐富了客戶端獲取光盤鏡像的來源,可以根據(jù)不同的服務(wù)需求和實際情況靈活選取安裝源。另外在應(yīng)答文件Kickstart中添加初始化腳本和SSH免密腳本,讓服務(wù)器在系統(tǒng)安裝完成后,自動實現(xiàn)系統(tǒng)初始化,使服務(wù)器在短時間內(nèi)便可投人生產(chǎn)環(huán)境。SSH免密腳本也可在系統(tǒng)安裝后自動運行,為統(tǒng)一管理服務(wù)器搭好橋梁,減少了后期的人員操作,提高了服務(wù)器的管理效率。