CentOS的無人值守安裝[PXE]
實驗環境:一臺ftp服務器,並提供ks.cfg文件
一臺或若干臺客戶機
VMware workstation 10
PXE簡介:預啓動執行環境)工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP或MTFTP協議下載一個啓動軟件包到本是機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。
我們知道在linux系統的安裝過程,我們看到的交互式安裝界面是anaconda安裝程序提供的,而這款程序的
關鍵作用是產生ks.cfg文件,那麼我們就將試着將PXE與ftp服務器接合器起來實現自動化安裝,所以我們的第一步就是先在本地建成vsftpd服務器,
如圖,安裝vsftpd服務器,第一步掛載光盤並修改本地yum庫的配置文件,將enable=1,意爲啓用本地yum源
再將暫時不用的網絡yum配置文件先把他挪到一邊去,比如新建一個old目錄並把它挪進去
注意此時我們服務器的相關安全功能要把他關掉,比如,selinux功能,防火牆功能:
用setenforce把他設爲0,然後用iptables -L 查看防火牆列表,如圖
發現防火牆功能沒有打開,那就可以先不用去設置他,接着安裝:
然後接着我們要做的就是用kickstart工具來產生ks.cfg文件,然後才能用於anoncond的安裝使用,我們先搜索一下關於kickstart工具的安裝信息,如圖
發現有兩個,而我們需要的就是關於系統配置的那個,然後把他安裝,如圖(noarch是一種那最爲常見的二進制軟件包文件後綴,可安裝在任意平臺)
相關提示,輸入y
然後我們切換到ftp服務器所在的目錄中去,發現有一個pub的目錄,說明我們要把要用到的文件拷貝到他的同一級目錄中去,即/var/ftp,如圖
接着我們就要用到上面安裝的kickstart了,(注意,因爲kickstart需要圖形界面的支持,所以使用xshell的同學應該先確認一下自己的xshell有沒有該功能,建議使用Xmanager 4)
耐心等待一會後,複製完成後我們就可以接着執行kickstart指令了,如圖
然後我們進行有關的選擇,比如語言和鍵盤類型,然後時去改爲asia/shanghai,然後在給出一個你自己的根口令,然後給口令加密那項也要選上,接着目標平臺不用改,因爲絕大多數pc都是這兩種,然後再選擇安裝後重啓,並選擇下一項靜默安裝,注意,千萬不能選交互安裝,那樣安裝的步驟會很多,如圖
接着第二步,安裝方法,選擇執行新安裝,然後選ftp服務器,之後輸入你建立的服務器的ip地址和相關文件的存放目錄,如圖(我們的文件拷貝在根目錄下),此時不必指定用戶名和口令
然後接着第三項,我們選新安裝一個啓動加載項,然後給grub加上或不加口令,然後選在MBR上安裝引導加載程序,再往下的內核參數中,我們選擇靜默模式,然後創建新分區,我們可以簡單創建一下,如圖創建一個/分區,給他20G,然後再建一個/boot引導分區,最後再建一個/wap交換分區
(注意,交換分區不需掛載點,我們要直接在文件類型中選擇交換,然後指定大小,如圖
然後可以看到所有的具體分區信息;
然後再網絡設備中,我們要給系統加一塊網卡,比如圖中的命名爲eth0,爲了方便地址管理,類型選擇爲dhcp
接下來驗證,下面那一行我們還用不到,所以只需選擇加密方式爲屏蔽口令和本地MD5類型即可,如圖:
接下來安全,我們爲了後續的方便把本地的防火牆禁用掉,把selinux也關閉,如圖
然後是顯示的有關選項,這個可以看自己的喜好而定,但首次啓用時的代理服務要禁用掉,並且要選擇有桌面系統,gnome 或kde,如圖:
再然後是軟件包的選擇,我們可以在列表中選擇自己想要安裝的軟件包
接着我們要進行預安裝腳本的安裝和安裝後的腳本,我們暫時還不需要,接下來進行文件的生成:
然後我們進入相關的路徑,可以看到我們的生成的文件,如圖;
用vim打開後會開到他的配置文件內容,上半部分是安裝選項,後半部分是數據包選擇,以%package開頭以%end結尾,如圖
然後用yum安裝vsftpd,
接着把ftp服務器打開,用service vsftpd restart,如圖
因爲pxe環境用的是tftp所以我們還要安裝tftp-server軟件包和安裝並配置dhcp服務器
並且看一下他的文件信息,如圖
然後編輯/etc/xinetd.d/tftp這個文件,從這個文件可以看出他是一個後臺運行常駐內存的超級守護進程
將第十四行的disable選項改爲no,啓動這個超級守護進程
然後重新啓動這個超級守護進程
接着再把ks.cfg文件拷貝到ftp所在的目錄下,並且可以看到文件類型和大小,如圖
配置ftp服務器,將ftp中放入啓動所需要的各種文件,拷貝光盤鏡像,內核文件,初始化內存文件到/var/lib/tftpboot目錄下,內容如下
然後安裝syslinux命令
進入他的/usr/share/syslinux文件中,可以看到在目錄下有一個pxelinux.0的驅動文件(注意是0(零)不是o),需要把他拷貝進/var/lib/tftpboot這樣一個目錄中,
如圖,我們可以看到三條內容(前面拷過兩個)
在次/var/lib/tftpboot/目錄下新建一個pxelinux.cfg的目錄,並進入光盤的鏡像文件中,將isolinux中的isolinux.cfg文件拷貝到/var/lib/tftpboot/pxelinux.cfg目錄中,並命名爲default
然後對這個文件進行修改,不過小編在這步編寫的時候一直寫不了,(因爲權限,因爲從光盤複製過來的原因。。。。)所以我們要用chmod 改一下他的權限,
然後改如下內容
並在第一個label項下的append追加項的後面加入ks.cfg=ftp://192.168.1.187/ks.cfg
進入dhcp的配置文件中,此時他是沒有內容的,我們需要重新編寫,可以讀取他的樣板文件,進行修改,進入/etc/dhcp/dhcpd.conf後在底行模式用r /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample讀取樣板文件
將dhcp配置文件的編輯,將原有的樣板文件中的地址池的例子刪除,然後重新定義,既從34行以後的都刪除,從33行開始改爲以下內容,如圖
並將第8.9行多餘的內容刪除
在啓用dhcp前一定要將虛擬機的dhcp關掉(如果有的話),否則,容易地址衝突
重啓dhcp服務器
爲了保證我們的dhcp服務的正常工作,我們可以查看一下系統的message日誌,看dhcp是否工作證常,如圖
可以看到dhcp各項服務正常
(也可以將vsftpd也重新啓動一下)
接着重新開啓一個新的虛擬機,如圖,選centos,並開機
可以看到屏幕顯示的從哪個服務器上獲得的開機文件及地址信息,
看到安裝正常進行,達到預期效果