自動化運維工具Cobbler

一、PXE 概述

   預啓動執行環境(Preboot eXecution Environment,PXE,也被稱爲預執行環境)是讓計算機通過網卡獨立地使用數據設備(如硬盤)或者安裝操作系統。PXE當初是作爲Intel的有線管理體系的一部分,Intel和 Systemsoft於1999年9月20日公佈其規格(版本2.1)。通過使用像網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協定(DHCP)、小型文件傳輸協議(TFTP)等幾種網絡協議和全局唯一標識符(GUID)、通用網絡驅動接口(UNDI)、通用唯一識別碼(UUID)的概念並通過對客戶機(通過PXE自檢的電腦)固件擴展預設的API來實現目的。PXE 客戶機(client)這個術語是指機器在PXE啓動過程中的角色。一個PXE 客戶機(client)可以是一臺服務器、桌面級電腦、筆記本電腦或者其他裝有PXE啓動代碼的機器。

   客戶機的固件爲接受到可用的PXE啓動服務器,要在網絡中嘗試找出PXE重定向服務(DHCP代理)。在分析返回的包後,固件會向合適的啓動服務器詢問網絡自檢程序(NBP)的路徑,並且通過TFTP協議下載到電腦的內存中,有可能會去校驗它,最後執行它。當只有全部的PXE 客戶機(client)只使用一個NBP時,全部的PXE 客戶機可能會被指定是用BOOTP協議,從而不需要DHCP代理,但是仍然需要TFTP啓動服務。

   PXE 協議大致上結合了DHCP和TFTP,雖然都有在兩者上面有改進。DHCP用於查找合適的啓動服務器,TFTP用於下載初始引導程序和附加文件。爲了開始一個PXE自檢會話,PXE固件廣播一個帶有明確的PXE選項DHCPDISCOVER包(擴展DHCPDISCOVER)到67/UDP端口(DHCP服務器端口)。PXE選項是PXE固件有PXE能力的鑑定,但是會被一般的DHCP服務忽略。當固件受到從這樣的服務受到DHCPOFFER包時,它會通過要求其提供配置信息來自我配置。

   當 PXE 重定向服務 (DHCP代理) 收到一個 擴展DHCPDISCOVER 包時,它會通過發送一個帶有明確的PXE選項DHCPDISCOVER包到PXE客戶機的68/UDP端口 (DHCP 客戶機端口)來回答。 一個擴展DHCPDISCOVER包主要包含:

  • 一個PXE發現控制領域,以決定是使用多播,廣播(網路)或單播來聯繫PXE啓動服務器。 

  • 一個列出可用的PXE啓動服務器類型的地址表。 

  • 一個代表每個一個PXE啓動服務器類型的條目單。 

  • 一個帶有帶有提示用戶按下哪一個鍵來看到啓動菜單的PXE啓動菜單。 

  • 一個超過多長時間就啓動第一啓動菜單的超時數值。 

   一個DHCP代理服務可能在相同的主機上運行一個標準的DHCP服務器。儘管兩個服務不可以共享67/UDP 端口,DHCP代理服務在4011/UDP 端口上運行,要求從客戶端來的DHCPDISCOVER 包變成DHCPREQUEST 包。標準DHCP服務在其發送的DHCPOFFER 包中加入特殊的PXE 選項組合,這樣PXE客戶端知道可以在同一個主機的 4011/UDP 端口找到一個DHCP代理服務。

   和一個正在啓動系統的啓動服務聯繫必須有一個IP地址(可能來自DHCP服務)。通過多播或單播一個帶有特殊的PXE選項的 DHCPREQUEST 包(擴展DHCPREQUEST包)到 4011/UDP端口,或者廣播(網路)這種包到 67/UDP端口。這種包包含有PXE啓動服務類型和PXE啓動層,一個守護進程允許運行多個啓動服務類型。 一個擴展 DHCPREQUEST包可能是一個DHCPINFORM包。下面是PXE具體工作原理圖,

wKioL1YFWPLQ9kQGAAL3E6I5aUI509.jpg

簡單總結一下,

  • PXE Client發送廣播包請求DHCP分配IP地址DHCP 

  • Server回覆請求,給出IP地址以及Boot 

  • Server的地址PXE下載引導文件執行引導程序 


二、Kickstart 概述

Kickstart 組成

  • Kickstart 安裝選項,包含語言的選擇,防火牆,密碼,網絡,分區的設置等; 

  • %Pre 部分,安裝前解析的腳本,通常用來生成特殊的ks配置,比如由一段程序決定磁盤分區等; 

  • %Package 部分,安裝包的選擇,可以是 @core 這樣的group的形式,也可以是這樣 vim-* 包的形式; 

  • %Post 部分,安裝後執行的腳本,通常用來做系統的初始化設置。比如啓動的服務,相關的設定等。


三、Cobbler 簡介

1、Cobbler 概述

   Cobbler由python語言開發,是對PXE和Kickstart以及DHCP的封裝。融合很多特性,提供了CLI和Web的管理形式。更加方便的實行網絡安裝。同時,Cobbler也提供了API接口,使用其它語言也很容易做擴展。它不緊可以安裝物理機,同時也支持kvm、xen虛擬化、Guest OS的安裝。更多的是它還能結合Puppet等集中化管理軟件,實現自動化的管理。

2、新舊對比

以前自動化安裝系統得先設置一個網絡環境,可是設置網絡環境涉及到許多步驟,才能爲開始安裝系統做好準備。你必須:

  • 配置服務,比如 DHCP、TFTP、DNS、HTTP、FTP 和 NFS; 

  • 在 DHCP 和 TFTP 配置文件中填入各個客戶端機器的信息; 

  • 創建自動部署文件(比如 kickstart 和 autoinst); 

  • 將安裝媒介解壓縮到 HTTP/FTP/NFS 存儲庫中。 

   這個過程並不簡單,而且手動註冊每個必須配置的客戶端機器可能很麻煩。對配置一臺機器的任何參數更改(比如要使用一個不同的操作系統),都需要對配置進行手動干預,並有可能對自動部署文件進行手動干預。當機器數量增加時,如果不高度重視文件組織的條理性,TFTP 目錄等元素就可能變得混亂。

   Cobbler 通過爲機器配置的所有方面創建一箇中央管理點,從而解決了這些不足。Cobbler 可重新配置服務,創建存儲庫,解壓縮操作系統媒介,代理或集成一個配置管理系統,控制電源管理等。Cobbler 創建了一個抽象層,您可在其中運行 “add new repository” 或 “change client machine operating system” 等命令。Cobbler 負責處理所有事情:創建或更新配置文件,重新啓動服務,或者將媒介解壓到新創建的目錄中。它的目的是隱藏所有與系統相關的問題,以便您可專注於任務本身。

3、Cobbler 提供的功能

   使用 Cobbler,您無需進行人工干預即可安裝機器。Cobbler 設置一個 PXE 引導環境(它還可使用 yaboot 支持 PowerPC),並控制與安裝相關的所有方面,比如網絡引導服務(DHCP 和 TFTP)與存儲庫鏡像。當希望安裝一臺新機器時,Cobbler 可以:

使用一個以前定義的模板來配置 DHCP 服務(如果啓用了管理 DHCP) 將一個存儲庫(yum 或 rsync)建立鏡像或解壓縮一個媒介,以註冊一個新操作系統 在 DHCP 配置文件中爲需要安裝的機器創建一個條目,並使用您指定的參數(IP 和 MAC 地址) 在 TFTFP 服務目錄下創建適當的 PXE 文件 重新啓動 DHCP 服務以反映更改 重新啓動機器以開始安裝(如果電源管理已啓用)

   Cobbler 支持衆多的發行版:Red Hat、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 的配置結構基於一組註冊的對象。每個對象表示一個與另一個實體相關聯的實體(該對象指向另一個對象,或者另一個對象指向該對象)。當一個對象指向另一個對象時,它就繼承了被指向對象的數據,並可覆蓋或添加更多特定信息。以下對象類型的定義爲:

  • 發行版:表示一個操作系統。它承載了內核和 initrd 的信息,以及內核參數等其他數據。 

  • 配置文件:包含一個發行版、一個 kickstart 文件以及可能的存儲庫,還包含更多特定的內核參數等其他數據。 

  • 系統:表示要配給的機器。它包含一個配置文件或一個鏡像,還包含 IP 和 MAC 地址、電源管理(地址、憑據、類型)以及更爲專業的數據等信息。 

  • 存儲庫:保存一個 yum 或 rsync 存儲庫的鏡像信息。 

  • 鏡像:可替換一個包含不屬於此類別的文件的發行版對象(例如,無法分爲內核和 initrd 的對象)。 

基於註冊的對象以及各個對象之間的關聯,Cobbler 知道如何更改文件系統以反映具體配置。因爲系統配置的內部是抽象的,所以您可以僅關注想要執行的操作。下面是Cobbler各對象之間的關係圖,

wKiom1YFWR6QbCnjAACtHP9L4NM314.jpg


五、Cobbler 工作原理

wKioL1YFWUmgJg5hAAIGFWIpdk8906.jpg

下面我們來簡單的說明一下,

Server端:

  • 第一步,啓動Cobbler服務 

  • 第二步,進行Cobbler錯誤檢查,執行cobbler check命令 

  • 第三步,進行配置同步,執行cobbler sync命令 

  • 第四步,複製相關啓動文件文件到TFTP目錄中 

  • 第五步,啓動DHCP服務,提供地址分配 

  • 第六步,DHCP服務分配IP地址 

  • 第七步,TFTP傳輸啓動文件 

  • 第八步,Server端接收安裝信息 

  • 第九步,Server端發送ISO鏡像與Kickstart文件 

Client端:

  • 第一步,客戶端以PXE模式啓動 

  • 第二步,客戶端獲取IP地址 

  • 第三步,通過TFTP服務器獲取啓動文件 

  • 第四步,進入Cobbler安裝選擇界面 

  • 第五步,客戶端確定加載信息 

  • 第六步,根據配置信息準備安裝系統 

  • 第七步,加載Kickstart文件 

  • 第八步,傳輸系統安裝的其它文件 

  • 第九步,進行安裝系統 


六、搭建使用Cobbler

1、安裝cobbler

[root@proxy ~]#  yum install dhcp tftp rsync xinetd httpd cobbler -y

啓動服務:

[root@example ~]# service cobblerd start                             
[root@example ~]# service httpd start

檢查配置執行:

[root@example ~]# cobbler check
Traceback (most recent call last):
  File "/usr/bin/cobbler", line 36, in <module>
    sys.exit(app.main())
  File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line 657, in main
    rc = cli.run(sys.argv)
  File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line 270, in run
    self.token         = self.remote.login("", self.shared_secret)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1253, in request
    return self._parse_response(h.getfile(), sock)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response
    return u.close()
  File "/usr/lib64/python2.6/xmlrpclib.py", line 838, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<class 'cobbler.cexceptions.CX'>:'login failed'">

報錯解決方法:

[root@example ~]# service cobblerd restart
Stopping cobbler daemon:                                   [確定]
Starting cobbler daemon:                                   [確定]
[root@example ~]# cobbler get-loaders
task started: 2015-08-29_220217_get_loaders
task started (id=Download Bootloader Content, time=Sat Aug 29 22:02:17 2015)
downloading http://cobbler.github.com/loaders/README to /var/lib/cobbler/loaders/README
downloading http://cobbler.github.com/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo
downloading http://cobbler.github.com/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot
downloading http://cobbler.github.com/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux
downloading http://cobbler.github.com/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi
downloading http://cobbler.github.com/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot
downloading http://cobbler.github.com/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0
downloading http://cobbler.github.com/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32
downloading http://cobbler.github.com/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi
downloading http://cobbler.github.com/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi
*** TASK COMPLETE ***

在檢查配置:

[root@example ~]# cobbler check
The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
4 : change 'disable' to 'no' in /etc/xinetd.d/rsync
5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
6 : ksvalidator was not found, install pykickstart
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.

上面這段信息大意就是:

  • 編輯/etc/cobbler/settings文件,找到 server選項,修改爲適當的ip地址,本實例配置ip爲:192.168.1.8

  • 編輯/etc/cobbler/settings文件,找到 next_server選項,修改爲適當的ip地址,本實例配置ip爲:192.168.1.8 

  • 編輯/etc/xinetd.d/tftp文件,將文件中的disable字段的配置由yes改爲no 

  • 編輯/etc/xinetd.d/rsync文件,將文件中的disable字段的配置由yes改爲no 

  • 提示說debmirror沒安裝。如果不是安裝 debian之類的系統,此提示可以忽略。

  • ksvalidator沒有被發現,安裝pykickstart 

  • 修改cobbler用戶的默認密碼,可以使用如下命令生成密碼,並使用生成後的密碼替換/etc/cobbler/settings中的密碼。

  • fencing tools未安裝。

操作如下:

[root@example ~]# vim /etc/cobbler/settings
server: 192.168.1.8
next_server: 192.168.1.8
[root@example ~]# vim /etc/xinetd.d/tftp
disable=no
[root@example ~]# vim /etc/xinetd.d/rsync
disable=no
[root@example ~]# yum install -y pykickstart
[root@proxy ~]# openssl passwd -1 -salt `openssl rand -hex 4`Password: $1$76f29b0d$R3nuR/TTUJexv9cWb.QsI1
[root@example ~]# vim /etc/cobbler/settings
default_password_crypted: "$1$76f29b0d$R3nuR/TTUJexv9cWb.QsI1"
[root@example ~]#  yum install fence-agents -y

重啓服務並檢測:

[root@example ~]# /etc/init.d/cobblerd restart
[root@example ~]# /etc/init.d/xinetd restart
[root@example ~]# cobbler check  
The following are potential configuration items that you may want to fix:

1 : debmirror package is not installed, it will be required to manage debian deployments and repositories

Restart cobblerd and then run 'cobbler sync' to apply changes.
2、添加distro(distribution):
[root@example ~]# mount /dev/cdrom /mnt/ -r
[root@example ~]# cobbler import --path=/mnt/ --name=CentOS-6.6 --arch=x86_64
task started: 2015-08-29_222129_import
task started (id=Media import, time=Sat Aug 29 22:21:29 2015)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64:
creating new distro: CentOS-6.6-X86_64-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64 -> /var/www/cobbler/links/CentOS-6.6-X86_64-x86_64
creating new profile: CentOS-6.6-X86_64-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64 for CentOS-6.6-X86_64-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64/repodata
*** TASK COMPLETE ***

查看是否導入成功:

[root@example ~]# cobbler distro list
   CentOS-6.6-X86_64-x86_64

參數說明:

--name  爲安裝源定義一個名字

--arch    指定安裝源是32位還是64位、ia64, 目前支持的選項有: x86│x86_64│ia64

注意: 這個安裝源的唯一標示 就是根據這兩個參數來定義 本例導入成功後,安裝源的唯一標示就是:centos6.3-x86_64 ,如果重複,系統會提示導入失敗。

3、配置dhcp服務

[root@example ~]# vim /etc/cobbler/settings
manage_dhcp: 1
[root@example ~]# mv /etc/cobbler/dhcp.template{,.bak}
[root@example ~]# vim /etc/cobbler/dhcp.template
subnet 192.168.1.0 netmask 255.255.255.0 {
  option routers	   192.168.1.1;
  option domain-name-servers 192.168.1.1;
  option subnet-mask	    255.255.255.0;
  range dynamic-bootp	   192.168.1.30 192.168.1.100;
  default-lease-time	    21600;
  max-lease-time	   43200;
  next-server	 $next_server;
  class "pxeclients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    if option pxe-system-type = 00:02 {
         filename "ia64/elilo.efi";
    } else if option pxe-system-type = 00:06 {
         filename "grub/grub-x86.efi";
    } else if option pxe-system-type = 00:07 {
         filename "grub/grub-x86_64.efi";
    } else {
         filename "/pxelinux.0";
    }
  }
}
[root@example ~]# /etc/init.d/xinetd restart

同步cobbler配置

[root@example ~]# cobbler sync
task started: 2015-08-29_223050_sync
task started (id=Sync, time=Sat Aug 29 22:30:50 2015)
running pre-sync triggers
cleaning trees
removing: /var/
www/cobbler/p_w_picpaths/CentOS-6.6-X86_64-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/p_w_picpaths
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/p_w_picpaths/CentOS-6.6-X86_64-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
copying distros to tftpboot
copying files for distro: CentOS-6.6-X86_64-x86_64
trying hardlink /var/
www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64/p_w_picpaths/pxeboot/vmlinuz
 -> /var/lib/tftpboot/p_w_picpaths/CentOS-6.6-X86_64-x86_64/vmlinuz
trying hardlink /var/
www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64/p_w_picpaths/pxeboot/initrd.img
 -> /var/lib/tftpboot/p_w_picpaths/CentOS-6.6-X86_64-x86_64/initrd.img
copying p_w_picpaths
generating PXE configuration files
generating PXE menu structure
copying files for distro: CentOS-6.6-X86_64-x86_64
trying hardlink /var/
www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64/p_w_picpaths/pxeboot/vmlinuz
 -> /var/
www/cobbler/p_w_picpaths/CentOS-6.6-X86_64-x86_64/vmlinuz
trying hardlink /var/
www/cobbler/ks_mirror/CentOS-6.6-X86_64-x86_64/p_w_picpaths/pxeboot/initrd.img
 -> /var/
www/cobbler/p_w_picpaths/CentOS-6.6-X86_64-x86_64/initrd.img
Writing template files for CentOS-6.6-X86_64-x86_64
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: CentOS-6.6-X86_64-x86_64
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***

   cobbler會自動進行初始化工作,移除已經存在的啓動項,然後根據模板拷貝loader文件。之後再生成pxe的配置文件,生成dhcp的配置文件,最後再重啓dhcp服務。 至此,就可以使用虛擬機來測試cobbler安裝了。 OK開啓真機或者虛擬機來測試注意開啓網絡引導 網卡要開啓PXE引導程序 。

配置啓動dhcp服務:

[root@example ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.121 192.168.1.125;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.8;
}
[root@example ~]# service dhcpd restart

4、測試使用Cobbler                    

將啓動項改爲網卡啓動:

wKiom1YFWYGDNlV6AADjAtxlfMM233.jpg

啓動服務後出現此界面:

wKioL1YFWlSj6D6eAACl8MBXBOA663.jpg

默認安裝後查看系統:

wKiom1YFWnyhziUJAAHlhsff5eY551.jpg

5、添加profile

[root@example ~]# cd /var/lib/cobbler/kickstarts/
[root@example kickstarts]# cp sample_end.ks CentOS-6.6-X86_64-basic 
[root@example kickstarts]# cobbler profile add --name=CentOS-6.4-x86_64-basic --distro=CentOS-6.6-X86_64-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.6-X86_64-basic 
[root@example kickstarts]# cobbler sync

查看是否生成:

[root@example ~]# cobbler profile list
   CentOS-6.4-x86_64-basic
   CentOS-6.6-X86_64-x86_64

wKioL1YFWpfCPeRoAAC9fdUehUw940.jpg


七、Cobbler相關選項說明

1、Cobbler 常用命令詳解

  • cobbler check #檢查cobbler配置 

  • cobbler sync #同步配置到dhcp/pxe和數據目錄 

  • cobbler list #列出所有的cobbler元素 

  • cobbler import #導入安裝的系統鏡像 

  • cobbler report #列出各元素的詳細信息 

  • cobbler distro #查看導入的發行版系統信息 

  • cobbler profile #查看配置信息 

  • cobbler system #查看添加的系統信息 

  • cobbler reposync #同步yum倉庫到本地

2、導入鏡像文件

命令:cobbler import --path=鏡像路徑 -- name=安裝引導名 --arch=32位或64位

參數:

  • path 是鏡像所掛載的目錄 

  • name 是導入到cobbler裏面顯示的名字 

  • arch 是32位系統還是64位系統

3、導入kickstart文件

命令:cobbler profile add --name=list名 --distro=鏡像 --kickstart=路徑

參數:

  • name是表示添加的ks 的名字,用cobbler report可以看到這個名字 

  • distro 是用哪個鏡像,list的distros裏面選擇一個,需要版本相對應 

  • kickstart 是具體的 ks 文件路徑

4、同步DHCP、HTTPD

命令:cobbler sync

注,每次修改完dhcp.template之類的配置文件需要執行一次使其生效。

5、查看Cobbler列表

命令:cobbler list

注,列出Cobbler所有的元素。

6、刪除相關列表

命令:cobbler distro/profile remove --name=要刪除的引導文件名

刪除指定 distro , 也就是鏡像

刪除指定的 profile 文件,也就是 ks

7、Cobbler安裝後目錄說明

cobbler配置文件目錄/etc/cobbler:

  • /etc/cobbler/settings cobbler主配置文件 

  • /etc/cobbler/iso/ iso模板配置文件 

  • /etc/cobbler/pxe pxe模板文件 

  • /etc/cobbler/power 電源的配置文件 

  • /etc/cobbler/users.conf Web 服務授權配置文件 

  • /etc/cobbler/users.digest 用於web訪問的用戶名密碼配置文件 

  • /etc/cobbler/dhcp.template DHCP服務的配置模板 

  • /etc/cobbler/dnsmasq.template DNS服務的配置模板 

  • /etc/cobbler/tftpd.template tftp服務的配置模板 

  • /etc/cobbler/modules.conf Cobbler模塊配置文件

cobbler數據目錄/var/lib/cobbler:

  • /var/lib/cobbler/config/ 用於存放distros、systems、profiles等信息配置文件 

  • /var/lib/cobbler/triggers 用於存放用戶定義的cobbler 命令 

  • /var/lib/cobbler/kickstarts/ 默認存放kickstart文件 

  • /var/lib/cobbler/loaders 存放的各種引導程序

鏡像數據目錄/var/www/cobbler:

  • /var/www/cobbler/ks_mirror/ 導入的發行版系統的所有數據 

  • /var/www/cobbler/p_w_picpaths/ 導入發行版的Kernel和initrd鏡像用於遠程網絡啓動 

  • /var/www/cobbler/repo_mirror/ yum倉庫存儲目錄

日誌目錄 /var/log/cobbler/:

  • /var/log/cobbler/install.log 客戶端的安裝系統日誌 

  • /var/log/cobbler/cobbler.log cobbler日誌



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章