前言:html
網絡安裝服務器套件 Cobbler(補鞋匠)從前,咱們一直在作裝機民工這份頗有前途的職業。自打若干年前 Red Hat 推出了 Kickstart,此後咱們頓覺身價倍增。再也不須要刻了光盤一臺一臺地安裝 Linux,只要搞定 PXE、DHCP、 TFTP,還有那滿屏眼花繚亂不知所云的 Kickstart 腳本,咱們就能夠像哈里波特同樣,輕點魔棒,瞬間安裝上百臺服務器。這一堆花裏胡哨的東西可不是通常人都能整明白的,沒有大專以上學歷,通不過英語四級, 根本別想玩轉。node
總而言之,這是一份多麼有前途,多麼有技術含量的工做啊。
python
很不幸,Red Hat 最新(Cobbler項目最初在2008年左右發佈)發佈了網絡安裝服務器套件 Cobbler(補鞋匠),它已將 Linux 網絡安裝的技術門檻,從大專以上文化水平,成功下降到初中如下,連補鞋匠都能學會。linux
對於咱們這些在裝機領域浸淫多年,經驗豐富,老驥伏櫪,志在千里的民工兄弟們來講,不啻爲一個晴天霹靂。ios
筆者QQ:315420700 【讓咱們共同窗習ZB技巧吧】github
1. Cobbler介紹shell
Cobbler是一個Linux服務器快速網絡安裝的服務,並且在通過調整也能夠支持網絡安裝windows。apache
該工具使用python開發,小巧輕便(才15k行python代碼),能夠經過網絡啓動(PXE)的方式來快速安裝、重裝物理服務器和虛擬機,同時還能夠管理DHCP,DNS,TFTP、RSYNC以及yum倉庫、構造系統ISO鏡像。
Cobbler可使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler-web),還提供了API接口,能夠方便二次開發使用。
Cobbler是較早前的kickstart的升級版,優勢是比較容易配置,還自帶web界面比較易於管理。
Cobbler內置了一個輕量級配置管理系統,但它也支持和其它配置管理系統集成,如Puppet,暫時不支持SaltStack。
Cobbler客戶端Koan支持虛擬機安裝和操做系統從新安裝,使重裝系統更便捷。
1)Cobbler能夠幹啥
使用Cobbler,您無需進行人工干預便可安裝機器。Cobbler設置一個PXE引導環境(它還可使用yaboot支持PowerPC),並 控制與安裝相關的全部方面,好比網絡引導服務(DHCP和TFTP)與存儲庫鏡像。當但願安裝一臺新機器時,Cobbler能夠:
1)使用一個之前定義的模板來配置DHCP服務(若是啓用了管理DHCP)
2)將一個存儲庫(yum或rsync)創建鏡像或解壓縮一個媒介,以註冊一個新操做系統
3)在DHCP配置文件中爲須要安裝的機器建立一個條目,並使用指定的參數(IP和MAC)
4)在TFTP服務目錄下建立適當的PXE文件
5)從新啓動DHCP服務來反應新的更改
6)從新啓動機器以開始安裝(若是電源管理已啓動)
2)Cobbler支持的系統和功能
Cobbler支持衆多的發行版:RedHat、Fedora、CentOS、Debian、Ubuntu和SUSE。當添加一個操做系統(一般經過使用ISO文件)時,Cobbler知道如何解壓縮合適的文件並調整網絡服務,以正確引導機器。
Cobbler可使用kickstart模板。基於Red Hat或 Fedora的系統使用kickstart文件來自動化安裝流程。經過使用模板,就會擁有基本的kickstart模板,而後定義如何針對一種配置文件或 機器配置而替換其中的變量。例如,一個模板可能包含兩個變量$domain和$machine_name.在Cobbler配置中,一個配置文件指定 domain=mydomain.com,而且每臺使用該配置文件的機器在machine_name變量中指定其名稱。該配置文件的全部機器都使用相同的 kickstart安裝且針對domain=mydomain.com進行配置,但每臺機器擁有其本身的機器名稱。您仍然可使用kickstart模板 在不一樣的域中安裝其餘機器並使用不一樣的機器名稱。
爲了協助管理系統,Cobbler可經過fence scripts鏈接到各個電源管理環境。Cobbler支持apc_snmp、bladecenter、bullpap、drac、 ether_wake、ilo、integrity、ipmilan、ipmitool、lpar、rsa、virsh和wti。要從新安裝一臺機器,可 運行reboot system foo命令,並且Cobbler會使用必要的 和信息來爲您運行恰當的fence scripts(好比機器插槽數)。
除了這些特性,還可使用一個配置管理系統(CMS)。你有兩種選擇:該工具內的一個內部系統,或者現成的外部CMS,好比Chef或 Puppet。藉助內部系統,你能夠指定文件模板,這些模板會依據配置參數進行處理(與kickstart模板的處理方式同樣),而後複製到你指定的位 置。若是必須自動將配置文件部署到特定機器,那麼此功能頗有用
使用koan客戶端,Cobbler可從客戶端配置虛擬機並從新安裝系統。
2.Cobbler各個組件之間關係:
主要目的配置網絡接口:
Cobbler的配置結構基於一組註冊的對象。每一個對象表示一個與另外一個實體相關聯的實體(該對象指向另外一個對象,或者另外一個對象指向該對象)。當一個對象指向另外一個對象時,它就繼承了被指向對象的數據,並可覆蓋或添加更多特定信息。如下對象類型的定義
Distros(發行版):表示一個操做系統,它承載了內核和initrd的信息,以及內核參數等其餘數據
Profile(配置文件):包含一個發行版、一個kickstart文件以及可能的存儲庫,還包含更多特定的內核參數等其餘數據
Systems(系統):表示要配給的額機器。它包含一個配置文件或一個景象,還包含IP和MAC地址、電源管理(地址、憑據、類型)、(網卡綁定、設置valn等)
Repository(鏡像):保存一個yum或rsync存儲庫的鏡像信息
Image(存儲庫):可替換一個包含不屬於此類比的額文件的發行版對象(例如,沒法分爲內核和initrd的對象)。
基於註冊的對象以及各個對象之間的關聯,Cobbler知道如何更改文件系統以反應具體配置。由於系統配置的內部是抽象的,因此您能夠僅關注想要執行的操做。
3.基礎環境準備
centos6系列:
centos7系列:
注意:
4.安裝Cobbler
centos6系列:
centos7系列:
5. 檢測Cobbler
cobbler的運行依賴於dhcp、tftp、rsync及dns服務,其中dhcp可由dhcpd(isc)提供,也可由dnsmasq提供;tftp可由tftp-server程序包提供,也可由cobbler功能提供,rsync有rsync程序包提供,dns可由bind提供,也可由dnsmasq提供
cobbler可自行管理這些服務中的部分甚至是所有,但須要配置文件/etc/cobbler/settings中的「manange_dhcp」、「manager_tftpd」、「manager_rsync」、「manager_dns」分別來進行定義,另外,因爲各類服務都有着不一樣的實現方式,如若須要進行自定義,須要經過修改/etc/cobbler/modules.conf配置文件中各服務的模塊參數的值來實現。
centos6系列:
centos7系列:
檢查配置文件,須要在cobblerd和httpd啓動的狀況下檢查
centos6系列:
如上各問題的解決方法以下所示:
centos7系列:
5.1 配置DHCP
centos6系列:
centos7系列:
5.2 設置開機自啓動
centos6系列:
centos7系列:
6.Cobbler的命令行管理(6和7的命令是一致的)
6.1導入鏡像
6.2配置ks.cfg(使用centos7的鏡像的時候,注意下方的ks.cfg要在安裝包那裏刪除掉@server-policy,這玩意在7沒有的,不要問我爲啥會特地在這裏寫,由於愛過!!!!!!被傷過!!!!!)
這裏是若是方向鍵不選擇第二項就沒法裝機,不算自動化,咱們須要進行手動指定才能夠徹底自動化
kickstart實現某臺服務器使用指定ks文件可能比較複雜,可是Cobbler就很簡單了,區分一臺服務器的最簡單的方法就是物理MAC地址。
VMware查看物理MAC地址
開啓空的虛擬機開始裝系統
新版 Cobbler 的 Web 界面使用的是 https
登陸URL: https://192.168.31.71/cobbler_web
/etc/cobbler/users.conf # Web服務受權配置文件
/etc/cobbler/users.digest # 用於web訪問的用戶名密碼配置文件
#在Cobbler組添加ren用戶,提示輸入2遍密碼確認
[root@cobbler kickstarts]# htdigest /etc/cobbler/users.digest "Cobbler" ren
Adding user ren in realm Cobbler
New password:
Re-type new password:
同步下
[root@cobbler kickstarts]# cobbler sync
附錄:
添加repos源
客戶機重裝系統教程:1
centos7系列:
1)不指定詳細system模板,讓cobbler本身裝一臺centos7的鏡像
2)指定設定好的系統配置,讓系統生成一個指定的mac地址綁定的ip和其餘你指定的東西
已經按照指定的system配置安裝好了,可是這裏出現了一個問題,雙網卡的話,兩個網段,如今的路由都是同一個了,因此上不了網了,求高手解決