DayDayUP_Linux運維學習_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具體工作原理圖,
enter description here
簡單總結一下,
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文件
第八步,傳輸系統安裝的其它文件
第九步,進行安裝系統

  1. 安裝
[root@www mnt]# yum install dhcp tftp rsync xinetd httpd cobbler tftp-server python-ctypes -y
  1. 啓動服務
[root@www mnt]# service cobblerd restart 
Stopping cobbler daemon:                                   [確定]
Starting cobbler daemon:                                   [確定]
[root@www mnt]# service httpd restart
停止 httpd[確定]
正在啓動 httpd[確定]
  1. 檢查配置執行
[root@www mnt]# 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 : 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

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@www mnt]# sed -i 's/127.0.0.1/192.168.1.110/g' /etc/cobbler/settings
[root@www mnt]# vimx /etc/xinetd.d/tftp
disable=no
[root@www mnt]# vimx /etc/xinetd.d/rsync
disable=no
[root@www mnt]# yum install -y pykickstart
[root@www mnt]# openssl passwd -1 -salt `openssl rand -hex 4`Password: $1$76f29b0d$R3nuR/TTUJexv9cWb.QsI1
$1$4f5cc8a7$nv4P/iD2DYkIc5bSYNg8g/
[root@www mnt]# vimx /etc/cobbler/settings
default_password_crypted: "$1$4f5cc8a7$nv4P/iD2DYkIc5bSYNg8g/"
[root@www mnt]# yum install fence-agents -y
  1. 重啓服務並檢測
    “`
    [root@www mnt]# service cobblerd restart
    Stopping cobbler daemon: [確定]
    Starting cobbler daemon: [確定]
    [root@www mnt]# service httpd restart
    停止 httpd: [確定]
    正在啓動 httpd: [確定]
    [root@www mnt]# 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.
[root@www mnt]#
“`
6. 添加distro(distribution)

[root@www ~]# mount /dev/cdrom /mnt/ -r  //確保光盤已經掛載
[root@www ~]# cobbler import --path=/mnt/ --name=CentOS-6.4 --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 ***

6.2 查看是否導入成功:

[root@www mnt]# cobbler distro list
   CentOS-6.4-x86_64
   CentOS-6.6-x86_64

參數說明:
–name 爲安裝源定義一個名字
–arch 指定安裝源是32位還是64位、ia64, 目前支持的選項有: x86│x86_64│ia64
注意: 這個安裝源的唯一標示 就是根據這兩個參數來定義 本例導入成功後,安裝源的唯一標示就是:centos6.3-x86_64 ,如果重複,系統會提示導入失敗。
7. 配置dhcp服務

[root@www mnt]# vimx /etc/cobbler/settings
manage_dhcp: 1
manage_rsync: 1
[root@www mnt]#  mv /etc/cobbler/dhcp.template{,.bak}
mv:是否覆蓋"/etc/cobbler/dhcp.template.bak"? y
[root@www mnt]# vimx /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@www mnt]# /etc/init.d/xinetd restart
停止 xinetd:                                              [失敗]
正在啓動 xinetd:                                          [確定]
  1. 同步cobbler配置
[root@www mnt]# cobbler sync
task started: 2015-11-14_231416_sync
task started (id=Sync, time=Sat Nov 14 23:14:16 2015)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/CentOS-6.6-x86_64
removing: /var/www/cobbler/images/CentOS-6.4-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/grub-x86_64.efi
removing: /var/lib/tftpboot/grub/grub-x86.efi
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/CentOS-6.6-x86_64
removing: /var/lib/tftpboot/images/CentOS-6.4-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
copying distros to tftpboot
copying files for distro: CentOS-6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-6.6-x86_64/initrd.img
copying files for distro: CentOS-6.4-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-6.4-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: CentOS-6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-6.6-x86_64/initrd.img
Writing template files for CentOS-6.6-x86_64
copying files for distro: CentOS-6.4-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-6.4-x86_64/initrd.img
Writing template files for CentOS-6.4-x86_64
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: CentOS-6.6-x86_64
processing boot_files for distro: CentOS-6.4-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 ***
[root@www mnt]# 

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

[root@www mnt]# vimx  /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.110;

}
[root@www mnt]# service dhcpd restart
正在啓動 dhcpd:                                           [確定]
  1. 測試
    開啓客戶端(可以爲虛擬機或者真機)
    9.1修改啓動方式
    enter description here
    重啓顯示
    enter description here
    安裝
  2. 添加profile
[root@www mnt]# cd /var/lib/cobbler/kickstarts/
[root@www kickstarts]# cp sample_end.ks CentOS-6.6-X86_64-basic
[root@www kickstarts]# cobbler profile add --name=CentOS-6.4-x86_64-basic --distro=CentOS-6.4-X86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6.6-X86_64-basic 
[root@www kickstarts]# cobbler sync
task started: 2015-11-14_234708_sync
task started (id=Sync, time=Sat Nov 14 23:47:08 2015)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/CentOS-6.6-x86_64
removing: /var/www/cobbler/images/CentOS-6.4-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/grub-x86_64.efi
removing: /var/lib/tftpboot/grub/grub-x86.efi
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/CentOS-6.6-x86_64
removing: /var/lib/tftpboot/images/CentOS-6.4-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
copying distros to tftpboot
copying files for distro: CentOS-6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-6.6-x86_64/initrd.img
copying files for distro: CentOS-6.4-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-6.4-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: CentOS-6.6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-6.6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-6.6-x86_64/initrd.img
Writing template files for CentOS-6.6-x86_64
copying files for distro: CentOS-6.4-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-6.4-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6.4-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-6.4-x86_64/initrd.img
Writing template files for CentOS-6.4-x86_64
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: CentOS-6.6-x86_64
processing boot_files for distro: CentOS-6.4-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 ***
[root@www kickstarts]# 

查看是否生成:
[root@www kickstarts]# cobbler distro list
CentOS-6.4-x86_64
CentOS-6.6-x86_64

10 Cobbler相關選項說明
10.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倉庫到本地
10.2 導入鏡像文件
命令:cobbler import –path=鏡像路徑 – name=安裝引導名 –arch=32位或64位
參數:
path 是鏡像所掛載的目錄
name 是導入到cobbler裏面顯示的名字
arch 是32位系統還是64位系統
10.3 導入kickstart文件
命令:cobbler profile add –name=list名 –distro=鏡像 –kickstart=路徑
參數:
name是表示添加的ks 的名字,用cobbler report可以看到這個名字
distro 是用哪個鏡像,list的distros裏面選擇一個,需要版本相對應
kickstart 是具體的 ks 文件路徑
10.4 同步DHCP、HTTPD
命令:cobbler sync
注,每次修改完dhcp.template之類的配置文件需要執行一次使其生效。
10.5查看Cobbler列表
命令:cobbler list
注,列出Cobbler所有的元素。
10.6刪除相關列表
命令:cobbler distro/profile remove –name=要刪除的引導文件名
刪除指定 distro , 也就是鏡像
刪除指定的 profile 文件,也就是 ks
10.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/images/ 導入發行版的Kernel和initrd鏡像用於遠程網絡啓動
/var/www/cobbler/repo_mirror/ yum倉庫存儲目錄
日誌目錄 /var/log/cobbler/:
/var/log/cobbler/install.log 客戶端的安裝系統日誌
/var/log/cobbler/cobbler.log cobbler日誌

錯誤解決
`ProtocolError:

vim /etc/sysconfig/selinux

SELINUX=disabled

4 : change ‘disable’ to ‘no’ in /etc/xinetd.d/tftp
解決:編輯/etc/xinetd.d/tftp文件,將文件中的disable字段的配置由yes改爲no

5 : change ‘disable’ to ‘no’ in /etc/xinetd.d/rsync
解決:編輯/etc/xinetd.d/rsync文件,將文件中的disable字段的配置由yes改爲no

6 : since iptables may be running, ensure 69, 80, and 25151 are unblocked
解決:在iptables中將69,80,25151端口打開。如果僅僅只是在內部環境中使用,建議直接將防火牆關掉

7 : debmirror package is not installed, it will be required to manage debian deployments and repositories
解決:yum install debmirror

或:rpm -Uvh ftp://rpmfind.net/linux/epel/5/i386/debmirror-20090807-1.el5.noarch.rpm –nodeps –force

8 : ksvalidator was not found, install pykickstart
解決:yum install pykickstart

9 : 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
解決: 修改默認密碼就OK了,然後把密碼寫入到/etc/cobbler/settings中

openssl passwd -1 -salt ‘random-phrase-here’ ‘your-password-here’

10 : comment ‘dists’ on /etc/debmirror.conf for proper debian support
11 : comment ‘arches’ on /etc/debmirror.conf for proper debian support

解決:註釋/etc/debmirror.conf 下面兩行

@dists=”sid”;

@sections=”main,main/debian-installer,contrib,non-free”;

@arches=”i386”;

cobbler check

No configuration problems found. All systems go.
返回這個結果就OK了

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