Cobbler 快速入門指南(翻譯) 原 薦

Cobbler 快速入門指南


由於Cobbler涉及各種各樣的技術,Cobbler可能是一個稍微複雜的系統,但它在安裝後幾乎不需要任何配置就支持大量功能。在開始使用Cobbler之前,您應該具備PXE相關知識以及所選發行版的自動化安裝方法。

本快速入門指南將重點介紹紅帽kickstart流程,該流程非常成熟並經過了充分測試。未來我們將爲其他發行版(如Ubuntu和SuSE)添加快速入門指南。下面的步驟將集中在Fedora上,但它們應該適用於任何基於Red Hat的發行版,例如RHEL,CentOS或Scientific Linux。有關您的特定操作系統版本的安裝和先決條件的詳細信息,請參閱安裝補丁程序部分。

最後,本指南將只關注CLI應用程序。欲瞭解更多關於Cobbler Web界面的細節,請點擊這裏:Cobbler Web用戶界面

Disable SELinux(optional)


在開始使用Cobbler之前,最好禁用SELinux或將其設置爲“permissive”模式,特別是您不熟悉SELinux故障排除或修改SELinux策略時。

如果您想在運行cobblerd的系統上繼續使用SELinux,請務必閱讀本手冊中的SELinux With Cobbler部分。

Installing Cobbler


安裝只需通過yum完成:(需要安裝epel源yum -y install epel-release

$ yum install cobbler

這將提供基本配置所有要求的文件。

Changing Settings


在啓動cobblerd服務之前,您應該修改一些配置。

Cobbler/Cobbler的配置存儲在/etc/cobbler/settings。此文件是YAML格式的數據文件,因此在編輯此文件時務必小心,因爲格式不正確的文件將阻止Cobbler/Cobbler運行。

Default Encrypted Password

此設置用於爲新系統指定root用戶的密碼。

default_password_crypted: "$1$bfI7WLZz$PxXetL97LkScqJFxnW7KS1"

您應該通過運行以下命令並將輸出插入到上面的字符串中進行修改(請確保保存引號):

$ openssl passwd -1

Server and Next_Server

server選項設置將用於指定cobbler服務器的IP地址。**不要**使用0.0.0.0,因爲它不是監聽地址。這應該設置爲cobbler服務器的可用IP,以便與例如HTTP和TFTP之類的協議聯繫cobbler服務器。

# default, localhost
server: 127.0.0.1

next_server選項用於指定DHCP/PXE下載網絡引導文件的TFTP服務器的IP。通常,這將與服務器設置的IP相同。

# default, localhost
next_server: 127.0.0.1

DHCP Management and DHCP Server Template

爲了進行PXE引導,您需要一個DHCP服務器來分發地址,並將引導系統指向TFTP服務器,以便在其中下載網絡引導文件。Cobbler可以通過manage_dhcp設置管理DHCP服務器:

# default, don't manage
manage_dhcp: 0

將該設置更改爲1,以便cobbler將根據cobbler附帶的dhcp.template生成dhcpd.conf文件。根據您的網絡設置對該模板進行修改:

$ vi /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.210,192.168.1.211;
     option subnet-mask         255.255.255.0;
     filename                   "/pxelinux.0";
     default-lease-time         2.8.0;
     max-lease-time             43200;
     next-server                $next_server;
}

無論如何,請確保不要修改next-server $next_server; 行,因爲$next_server的值將從/etc/cobbler/settings文件讀取。這個文件是一個cheetah模板,所以一定不要修改這行後面的任何內容:

#for dhcp_tag in $dhcp_tags.keys():

徹底檢查dhcpd.conf配置語法超出了本文檔的範圍,但有關更多信息,請參閱手冊頁以獲取更多詳細信息:

$ man dhcpd.conf

Files and Directory Notes


Cobbler多處使用了/var目錄。該/var/www/cobbler/ks_mirror目錄是存放所有發行版和repo文件的地方,因此,您將需要爲每個導入的發行版準備5-10GB的可用空間。

如果您已將Cobbler安裝到包含分區的可用空間非常小的系統上/var,請閱讀手冊中的“ 重新分配安裝”部分,以瞭解如何正確地重新安裝。

Starting and Enabling the Cobbler Service


在啓動cobblerd服務之前,請確保httpd服務已經安裝並啓動:

$ yum install -y httpd
$ systemctl restart httpd
$ systemctl enable httpd

一旦你更新了以上設置,你就可以啓動cobblerd服務了。Fedora現在使用systemctl來管理服務,但您仍然可以使用常規的init腳本:

$ systemctl start cobblerd.service
$ systemctl enable cobblerd.service
$ systemctl status cobblerd.service

or

$ service cobblerd start
$ chkconfig cobblerd on
$ service cobblerd status

如果一切順利,你應該看到status command的輸出如下所示:

cobblerd.service - Cobbler Helper Daemon
          Loaded: loaded (/lib/systemd/system/cobblerd.service; enabled)
          Active: active (running) since Sun, 17 Jun 2012 13:01:28 -0500; 1min 44s ago
        Main PID: 1234 (cobblerd)
          CGroup: name=systemd:/system/cobblerd.service
                  └ 1234 /usr/bin/python /usr/bin/cobblerd -F

Checking for Problems and Your First Sync


既然cobblerd服務已經啓動並正在運行,那麼是時候檢查配置問題了。Cobbler的檢查配置命令cobbler check會提出一些建議,但重要的是要記住,這些主要只是建議,可能不是基本功能的關鍵,請根據情況來進行解決所提出的問題。

$ cobbler check
The following are potential configuration items that you may want to fix:


....

....


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

請您在更改配置後務必按照其建議重新啓動Cobblerd服務,以便更改生效。

一旦你解決了cobbler check提出的所有問題,現在是第一次同步的時候了。

$ cobbler sync
task started: 2012-06-24_224243_sync
task started (id=Sync, time=Sun Jun 24 22:42:43 2012)
running pre-sync triggers
...
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
running: find /var/lib/tftpboot/images/.link_cache -maxdepth 1 -type f -links 1 -exec rm -f '{}' ';'
received on stdout:
received on stderr:
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout:
received on stderr:
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 

假設一切順利,沒有錯誤報告,您就可以繼續下一步了。

Importing Your First Distribution


Cobbler通過cobbler import命令自動添加發行版和配置文件。此命令可以(通常)自動檢測您導入的分類類型和版本,併爲您創建(一個或多個)具有正確設置的配置文件。

Download an ISO Image

爲了導入發行版,您需要爲您的發行版提供DVD ISO。**注:**您必須使用完整的DVD,而不是“Live CD”ISO。在這個例子中,我們將使用Fedora 28 x86_64 ISO,可以在這裏下載

一旦下載這個文件,請將它掛載在某個目錄下:

$ mount -t iso9660 -o loop,ro /path/to/isos/Fedora-Server-dvd-x86_64-28-1.1.iso /mnt

Run the Import

您現在已準備好導入的發行版。名稱和路徑參數是導入的唯一且必需選項:

$ cobbler import --name=fedora28 --arch=x86_64 --path=/mnt

--arch選項不需要指定,因爲它通常會被自動檢測。在這個例子中,我們這樣做是爲了防止找到多個體繫結構(Fedora在完整的DVD上運行i386包,默認情況下,cobbler將創建x86_64和i386發行版)。

Listing Objects

如果在導入期間未報告錯誤,則可以查看有關在導入過程中創建的發行版和配置文件的詳細信息。

$ cobbler distro list


$ cobbler profile list

導入命令通常會創建至少一個發行版/配置文件對,其名稱與上面顯示的名稱相同。在某些情況下(例如,當找到基於xen的內核時),將創建多個發行/配置文件對。

Object Details

這個報告命令顯示了Cobbler Object的細節:

$ cobbler distro report --name=fedora28-x86_64
Name                           : fedora28-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        :
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/fedora28-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/fedora28-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/fedora28-x86_64'}
Management Classes             : []
OS Version                     : fedora28
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

正如你在上面看到的那樣,Kickstart Metadata字段(內部爲--ksmeta)用於各種變量,並且包含關鍵的tree變量。這些在kickstart模板中用於指定可以找到安裝文件的URL。

其他要注意的是:有些字段被設置爲<< inherit >>。這意味着他們將使用默認設置(在settings文件中找到),或者(對於配置文件,子配置文件和系統)將使用父對象中配置的設置。

Creating a kickstart file (Options)


你已經成功導入了發行版,發行版鏡像的內容會自動複製到/var/www/cobbler/ks_mirror目錄下,現在你可以選擇提供一個定製的ks文件(在CentOS安裝完成後提供一個文件/root/anaconda-ks.cfg),你可以將/root/anaconda-ks.cfg複製到/var/lib/cobbler/kickstarts目錄下;你也可以不用提供ks文件,因爲cobbler默認提供了很多ks文件在/var/lib/cobbler/kickstarts目錄下(默認使用sample_end.ks)。

如果你決定提供定製的ks文件,那麼如下命令進行指定ks文件,系統將會更具你指定ks文件進行部署:

$ cobbler profile edit --name=fedora28-x86_64 --kickstart=/var/lib/cobbler/kickstarts/anaconda-ks.cfg

每次對cobbler做出修改後,你都應該執行命令cobbler sync。 至此,你已經可以開始批量部署操作系統了。 啓動client並確保和cobbler server端在同一網絡內即可開始自動部署。

Creating a System (Options)


現在您已擁有發行版和配置文件,您可以創建一個系統。配置文件可用於PXE啓動,但Cobbler的大部分功能都圍繞着system object。您可以提供更多的系統信息來給Cobbler使用。

首先,我們將根據導入期間創建的配置文件創建一個system object。創建system時,名稱和配置文件是唯一且必需的兩個字段:

$ cobbler system add --name=test --profile=fedora28-x86_64
$ cobbler system list
test
$ cobbler system report --name=test
Name                           : test
TFTP Boot Files                : {}
Comment                        :
Enable gPXE?                   : 0
Fetchable Files                : {}
Gateway                        :
Hostname                       :
Image                          :
IPv6 Autoconfiguration         : False
IPv6 Default Device            :
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : <<inherit>>
Kickstart Metadata             : {}
LDAP Enabled                   : False
LDAP Management Type           : authconfig
Management Classes             : []
Management Parameters          : <<inherit>>
Monit Enabled                  : False
Name Servers                   : []
Name Servers Search Path       : []
Netboot Enabled                : True
Owners                         : ['admin']
Power Management Address       :
Power Management ID            :
Power Management Password      :
Power Management Type          : ipmitool
Power Management Username      :
Profile                        : fedora28-x86_64
Proxy                          : <<inherit>>
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos Enabled                  : False
Server Override                : <<inherit>>
Status                         : production
Template Files                 : {}
Virt Auto Boot                 : <<inherit>>
Virt CPUs                      : <<inherit>>
Virt Disk Driver Type          : <<inherit>>
Virt File Size(GB)             : <<inherit>>
Virt Path                      : <<inherit>>
Virt RAM (MB)                  : <<inherit>>
Virt Type                      : <<inherit>>

創建system的主要原因是網絡配置。使用配置文件時,僅限於DHCP接口,但通過system可以指定更多的網絡配置選項。

所以現在我們將在192.168.1/24網絡中設置一個簡單的接口:

$ cobbler system edit --name=test --interface=eth0 --mac=00:11:22:AA:BB:CC --ip-address=192.168.1.100 --netmask=255.255.255.0 --static=1 --dns-name=test.mydomain.com

默認網關沒有按每個NIC指定,因此只需單獨添加(與主機名一同添加):

$ cobbler system edit --name=test --gateway=192.168.1.1 --hostname=test.mydomain.com

--hostname字段對應於本地系統名稱,由hostname命令返回。--dns-name(可以根據NIC設置)應該對應於與該接口的IP綁定的DNS A記錄。兩者都不是必需的,但指定兩者都是一個好習慣。某些高級功能(如配置管理)依賴於--dns-name字段進行系統記錄查找。

無論何時編輯system object,cobbler都會執行所謂的"lite sync",它會重新生成關鍵文件,如TFTP根目錄中的PXE引導文件。有一件事情不會執行服務管理操作,例如重新生成dhcpd.conf重新啓動DHCP服務。在添加帶有靜態接口的系統後,執行完整的“cobbler sync”是一個好主意,以確保dhcpd.conf文件被正確的靜態租約重寫並且服務被重啓。

官方鏈接


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