本文記錄了我使用Cobbler批量安裝部署Linux和Windows系統的過程,文章主要分為三部分:Cobbler服務端的安裝配置、Linux發行版CentOS和Ubuntu的自動安裝部署、Windows 7系統的自動安裝部署。這里是第一部分關於Cobbler服務端的安裝配置,第二部分:使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安裝(二)、第三部分:使用Cobbler批量部署Linux和Windows:Windows系統批量安裝(三)
批量部署操作系統的相關環境
Cobbler服務端相關
操作系統:
CentOS Linux release 7.4 ,不推薦Debian/Ubuntu系列,原因是Cobbler是由RedHat公司開發,RedHat會使得Cobbler在RedHat/CentOS保持更新迭代,從而兼容易用,而Debian/Ubuntu系列則會在適配方面處於滯后狀態。實際情況是,Cobbler目前有三個大版本,分別為2.4.x、2.6.x、2.8.x,在CentOS 7上yum安裝的版本為2.8.2,而在Ubuntu 16.04上apt安裝的版本為2.4.1,基本上是最“古老”的版本了,並且Cobbler官網原先還提供2.4.x和2.6.x的deb安裝包,2.8.x版本之后不再提供。另外,2.4.x版本在部署的過程中會從指定域名下載一些數據,而該域名已經被Cobbler廢棄,因此無法解析DNS域名,導致安裝部署出現問題。
CentOS發行版
對於CentOS發行版的安裝測試,我測試了CentOS 6.6 x64和CentOS 7.4 x64,這兩個版本都是沒有問題的,32位版本沒有測試過。
Ubuntu發行版
對於Ubuntu發行版發行版的安裝測試,我測試了Ubuntu 16.04,該版本沒有問題,但是Ubuntu 14.10版本則不行,在導入過程中會因失敗而中止,最終查找原因是Cobbler會對每個發行版版本進行相關的簽名校驗,如果不支持該版本則會報錯。可以通過下面的命令進行查看:
cobbler signature report --name=ubuntu
結果如下:
從截圖中可以看到,並沒有發行版Ubuntu 14.10 (Utopic Unicorn)的簽名,因此該版本不被支持,推測該版本是短期支持版本,所以不被支持。
Windows發行版
對於Windows發行版,只測試了Windows 7 x64 SP1旗艦版( cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso ),Windows系統的自動安裝需要配合相關的Autounattend.xml自動應答文件進行。
接下來開始具體的配置說明。
一、Cobbler服務端環境部署
Cobbler體系結構示意圖:
Cobbler組件:
- 發行版(distro) :表示一個操作系統,它承載了內核和initrd的信息,以及內核等其他數據。
- 倉庫 (repository):保存了一個yum或者rsync倉庫的鏡像信息。
- 配置文件(profile):包含了一個發行版(distro),一個kickstart文件以及可能的倉庫(repository),還包含了更多的內核參數等其他數據。
- 系統(system):表示要定制的具體客戶機器,它包含了一個配置文件或一個鏡像,還包含了ip和mac地址,電源管理(地址,憑據,類型)以及更為專業的數據信息。
- 鏡像(image):可替換一個包含不屬於此類別的文件的發行版對象(eg: 無法作為內核和initrd的對象)。
以上各個組件中, 發行版和配置文件為必須配置項。發行版distro 表示具體要導入安裝的系統,配置文件profile 表示對應系統的配置,系統system 則可以定制某一台具體的機器安裝,相當於一條數據庫記錄,可以省略。
Cobbler工作流程:
Server端
第一步,啟動Cobbler服務
第二步,進行Cobbler錯誤檢查,執行cobbler check命令
第三步,進行配置同步,執行cobbler sync命令
第四步,復制相關啟動文件文件到TFTP目錄中
第五步,啟動DHCP服務,提供地址分配
第六步,DHCP服務分配IP地址
第七步,TFTP傳輸啟動文件
第八步,Server端接收安裝信息
第九步,Server端發送ISO鏡像與Kickstart文件
Client端
第一步,客戶端以PXE模式啟動
第二步,客戶端獲取IP地址
第三步,通過TFTP服務器獲取啟動文件
第四步,進入Cobbler安裝選擇界面
第五步,客戶端確定加載信息
第六步,根據配置信息准備安裝系統
第七步,加載Kickstart文件
第八步,傳輸系統安裝的其它文件
第九步,進行安裝系統
環境:CentOS 7.4 x86_64 minimal 全新純凈系統一台,root 權限 。使用 cobbler 服務時,請保持防火牆關閉 。
- 安裝Cobbler
yum update -y yum install epel-release -y yum update -y yum install cobbler dhcp -y
因為默認的倉庫中沒有 cobbler,所以需要安裝 epel-release 軟件來額外配置倉庫源,cobbler會在PXE安裝過程中為待安裝客戶機器分配IP地址,因此還需要安裝 DHCP 服務。在正確安裝 cobbler 之后,可以通過 cobbler 相關命令來查看和配置,如下:
默認安裝后,cobbler 服務還沒有啟動,使用相關命令會報錯,需要關閉防火牆並啟動 cobbler,並且應當將其設置為開機自啟該服務。如下:
setenforce 0 #臨時關閉,重啟后失效,需重新關閉 vi /etc/selinux/config # ==> SELINUX=disabled 禁用 service firewalld stop #臨時關閉防火牆,如有iptables,也一並關閉,重啟后失效,需重新關閉 systemctl disable firewalld
systemctl start cobblerd systemctl enable cobblerd
- Cobbler檢查
啟動服務后,開始進行相應檢查。如下:
cobbler check
該命令執行后,會報告一個錯誤,如下:
錯誤提示 HTTP 服務沒有運行,需要啟動 HTTP,並且應當將其設置為開啟自啟服務。如下:
systemctl start httpd
systemctl enable httpd
再次檢查,如下:
依次解決上面的錯誤:
問題1、2:
修改配置文件 /etc/cobbler/settings
server: 192.168.1.x #修改為cobbler server端所在機器IP next_server: 192.168.1.x #修改為cobbler server端所在機器IP
問題3:
開啟 tftp 服務
vi /etc/xinetd.d/tftp # ==> disable = no systemctl start tftp systemctl enable tftp
問題4:
執行下列命令以下載網絡引導文件進行修復
cobbler get-loaders
問題5:
開啟 rsync 服務
systemctl start rsyncd
systemctl enable rsyncd
問題6:
安裝 debmirror
yum install debmirror -y
問題7:
安裝 pykickstart
yum install pykickstart -y
問題8:
修改配置文件 /etc/cobbler/settings
default_password_crypted: "$1$root$j0bp.KLPyr.u9kgQ428D10"
上面的加密密碼使用下面的命令生成:
openssl passwd -1 -salt "test" "123456" #"test"可以為任意字符串, "123456"為密碼
問題9:
安裝 fence-agents
yum install fence-agents -y
按照以上步驟修復完問題之后,重啟 cobbler 服務,再次 check,如下:
service cobblerd restart
cobbler check
則會收到如下報告:
按照提示相應解決即可,如下:
最后再次check,如果輸出如下,則表明 cobber server 端安裝正常:
如果做完以上操作仍不成功,可重啟系統后再次check。注意防火牆關閉,以及一些必要服務確保啟動。
- Cobbler配置
在 cobber server 端安裝完並且 check 成功之后,接下來需要對cobbler做相應的配置,以便后續使用。
修改配置文件 /etc/cobbler/settings,需要關注的配置如下:
manage_dhcp: 1 #啟用dhcp管理 pxe_just_once: 1 #僅安裝一次
修改配置文件 /etc/cobbler/dhcp.template,需要關注的配置如下:
option routers 192.168.1.x; #修改為cobbler server端所在機器IP option domain-name-servers 192.168.1.x; #修改為cobbler server端所在機器IP
在 cobber 配置更改之后,需要將所有的配置重新生成同步一次(尤其是 DHCP 配置文件),如下:
service cobblerd restart cobbler sync service cobblerd restart
由於啟用了 DHCP 管理,因此需要運行並設置 DHCP 開機自啟,如下:
systemctl start dhcpd
systemctl enable dhcpd
至此,Cobber server 端安裝配置完成。(如不成功,請檢查防火牆和相應服務狀態)