天天看點

自動化運維之Cobbler部署系統

一 、Cobbler簡介

  Cobbler是一個快速網絡安裝linux的服務,而且在經過調整也可以支援網絡安裝windows。該工具使用python開發,小巧輕便(才15k行python代碼),使用簡單的指令即可完成PXE網絡安裝環境的配置,同時還可以管理DHCP、DNS、yum倉庫、構造系統ISO鏡像。

  Cobbler支援指令行管理,web界面管理,還提供了API接口,友善二次開發

  Cobbler用戶端Koan支援虛拟機安裝和作業系統重新安裝,使重裝系統更便捷。

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)重新啟動機器以開始安裝(如果電源管理已啟動)

  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可從用戶端配置虛拟機并重新安裝系統。

二、Cobbler的設計方式

  Cobbler的配置結構基于一組注冊的對象。每個對象表示一個與另一個實體相關聯的實體(該對象指向另一個對象,或者另一個對象指向該對象)。當一個對象指向另一個對象時,它就繼承了被指向對象的資料,并可覆寫或添加更多特定資訊。以下對象類型的定義

 基于注冊的對象以及各個對象之間的關聯,Cobbler知道如何更改檔案系統以反應具體配置。因為系統配置的内部是抽象的,是以您可以僅關注想要執行的操作。

三、Cobbler各個元件的關系

      通過cobbler管理的或者手動管理的服務

       TFTP

       rsync

       DHCP

       DNS

四、安裝配置Cobbler

   1、安裝方式

     cobbler可以手動編譯安裝,也可以基于yum源的安裝,如果使用yum源安裝,則需要配置epel源epel源可以通過下載下傳官網的epel源的目錄來實作

   2、檢查配置檔案,需要在啟動cobblerd和httpd服務的前提下檢查

    以上8個問題的解決方法

    1.修改/etc/cobbler/settings檔案中的server參數的值為提供cobbler服務的主機對應的ip位址

      server: 192.168.13.8

    2.修改/etc/cobbler/settings檔案的next_server參數的值為提供PXE服務的主機的ip

      next_server: 192.168.13.8

    3.如果目前節點可以通路網際網路,執行“cobbler get-loaders”指令下載下傳pxelinux.0,menu.c32,elibo.efi,yaboot檔案,否則則需要安裝syslinux程式包,複制/usr/share/syslinux/中的pxelinux.0,menu.c32等檔案至/var/lib/cobbler/loaders目錄中

    4.将/etc/xinetd.d/rsync 中的disable改為no,或者執行 chkconfig rsync on

    5.注釋/etc/debmirror.conf檔案中的“@dists="sid";”一行

    6.注釋/etc/debmirror.conf檔案中的“@arches="i386";”一行

    7.執行“openssl passwd -1 -salt `pensshl rand -hex 4`”生成密碼,并将密碼串替換掉/etc/cobbler/settings中的default_password_crypted

      default_password_crypted: "$1$6a385fbf$iOHgbfJ0BJRQh78yAMA2L1"

    8.安裝cam和fence-agents來實作電源管理

    同步資料

五、配置cobbler依賴的服務

   cobbler的運作以來dhcp、tftp、rsync、dns服務        

    cobbler可行管理這些服務中的部分甚至全部,但需要配置/etc/cobbler/settings檔案中的“manager_dhcp”、“manage_tftpd”、“manage_rsync”、“manage_dns”來定義,同時各種服務都有着不同的實作方式,如果進行自定義,需要通過修改/etc/cobbler/modules.conf配置檔案中各個服務的子產品參數的值來實作

    我們通過獨立管理,不通過cobbler管理這些服務。

   1、配置dhcp服務

   啟動服務測試    

   2、配置tftpd服務

六、配置Cobbler

  1、定義distro

  實作coobler的第一步就是定義distro,可以通過其指定外部的安裝引導核心及ramdisk檔案的方式實作。而如果已經有現成的安裝樹(如OS的安裝鏡像)則使用import導入的方式

    列出所有的distro

  2、管理profile

     cobbler使用profile來為特定的需求類别提供所需要安裝的配置,即在distro的基礎上通過提供kickstart檔案來生成一個特定的系統安裝配置。distro的profile可以出現在pxe的引導菜單中作為安裝的選擇之一。

      關于kickstart的檔案制作請參照我的上篇部落格

    添加profile

   3、重新開機cobblerd服務并同步資料到相應目錄

   4、系統安裝測試

開始安裝。。。

七、配置cobbler_web

   cobbler_web支援多種認證方式,如authn_configfil、authn_ldap或 authn_pam等,預設為authn_denyall拒接所有。

   下面我們使用authn_pam子產品認證cobbler_web使用者

   通路:  (注意我使用的虛拟機是雙網卡172.16.13.8與192.168.13.8兩個ip位址)

此時我們可以手動的添加删除配置,更靈活的對distro 、profile等元件的管理!

PS: 水準有限,有錯誤請指出!

本文出自 “” 部落格,請務必保留此出處