天天看點

Cobbler

在前面講述的PXE安裝作業系統,需要自己一個一個的配置服務,有些人會覺得有些麻煩,就編寫了cobbler程式,大大降低了複雜度。

一、Cobbler

1、Cobbler概念

Cobbler是一個Linux伺服器快速網絡安裝的服務,而且在經過調整也可以支援網絡安裝windows。 該工具使用python開發,小巧輕便(才15k行python代碼),可以通過網絡啟動(PXE)的方式來快速安裝、重裝實體伺服器和虛拟機,同時還可以管理DHCP,DNS,TFTP、RSYNC以及yum倉庫、構造系統ISO鏡像。 Cobbler可以使用指令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),還提供了API接口,可以友善二次開發使用。 Cobbler是較早前的kickstart的更新版,優點是比較容易配置,還自帶web界面比較易于管理。 Cobbler内置了一個輕量級配置管理系統,但它也支援和其它配置管理系統內建,如Puppet,暫時不支援SaltStack。 Cobbler用戶端Koan支援虛拟機安裝和作業系統重新安裝,使重裝系統更便捷。

2、工作流程

Cobbler

(a)client裸機配置了從網絡啟動後,開機後會廣播包請求DHCP伺服器(cobbler server)發送其配置設定好的一個IP

(b)DHCP伺服器(cobbler server)收到請求後發送responese,包括其ip位址

(c)client裸機拿到ip後再向cobbler server發送請求OS引導檔案的請求

(d)cobbler server告訴裸機OS引導檔案的名字和TFTP server的ip和 port

(e)client裸機通過上面告知的TFTP server位址通信,下載下傳引導檔案

(f)client裸機執行執行該引導檔案,确定加載資訊,選擇要安裝的os,

(g)期間會再向cobbler server請求kickstart檔案和os p_w_picpath

(h)cobbler server發送請求的kickstart和os iamge client裸機加載kickstart檔案

(i)client裸機接收os p_w_picpath,安裝該os p_w_picpath

3、cobbler包介紹

cobbler包內建了dhcp,pxe服務,rsync,http,dns,kiskstart,IPMI電源管理。

cobbler指令

格式: cobbler command [subcommand] [--arg1=value1] [--arg2=value2]

cobbler check 核對目前設定是否有問題 cobbler list 列出所有的cobbler元素 cobbler repo 列出元素的詳細資訊

cobbler sync 同步配置到資料目錄,更改配置

cobbler reposync 同步yum倉庫

cobbler distro 檢視導入的發行版系統資訊

cobbler distro add
cobbler distro copy
cobbler distro edit
cobbler distro find
cobbler distro list
cobbler distro remove
cobbler distro rename
cobbler distro report      

cobbler system 檢視添加的系統資訊

cobbler profile 檢視配置資訊

cobbler profile add

    --name=NAME
    --distro=DISTRO 
    --kickstart=KICKSTART 

cobbler profile list    #列出配置檔案資訊
cobbler profile remove     
cobbler profile rename  修改配置檔案名稱  
cobbler profile report  #列出某個配置檔案的報告
    --name=NAME      

cobbler improt

--arch=ARCH OS architecture being imported
--breed=BREED the breed being imported
--os-version=OS_VERSION the version being imported
--path=PATH local path or rsync location
--name=NAME name, ex 'RHEL-5'
--available-as=AVAILABLE_AS tree is here, don't mirror
--kickstart=KICKSTART_FILE assign this kickstart file
--rsync-flags=RSYNC_FLAGS pass additional flags to rsync

3、cobbler目錄介紹

/etc/cobbler/settings : cobbler 主配置檔案 
/etc/cobbler/iso/: iso模闆配置檔案 
/etc/cobbler/pxe: pxe模闆檔案 
/etc/cobbler/power: 電源配置檔案 
/etc/cobbler/user.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 : 子產品的配置檔案      

資料目錄

/var/lib/cobbler/config/: 用于存放distros,system,profiles 等資訊配置檔案
/var/lib/cobbler/triggers/: 用于存放使用者定義的cobbler指令 
/var/lib/cobbler/kickstart/: 預設存放kickstart檔案
/var/lib/cobbler/loaders/: 存放各種引導程式      

鏡像目錄

/var/www/cobbler/ks_mirror/: 導入的發行版系統的所有資料
/var/www/cobbler/p_w_picpaths/ : 導入發行版的kernel和initrd鏡像用于遠端網絡啟動
/var/www/cobbler/repo_mirror/: yum 倉庫存儲目錄      

日志目錄

/var/log/cobbler/installing: 用戶端安裝日志
/var/log/cobbler/cobbler.log : cobbler日志      

4、相關術語

發行版:表示一個作業系統。它承載了核心和initrd資訊,以及核心參數等其他資料。

配置檔案:包含一個發行版、一個kickstart檔案以及可能的存儲庫,還包含更多特定的核心參數等其他資料。

系統:表示要配給的機器。它包含一個配置檔案或一個鏡像,還包含IP和MAC位址、電源管理以及更專業的資料資訊。

存儲庫:儲存一個yum或rsync存儲庫的鏡像資訊。 鏡像:可替換一個包含不屬于此類别的檔案的發行版對象。(例如,無法分為核心和initrd對象)

二、cobbler實戰

(1)安裝cobbler安裝包和dhcp 

[root@localhost ~]# yum install -y cobbler

[root@localhost ~]# yum install -y dhcp

(2)将服務設為開機啟動并啟動服務 

[root@localhost ~]# systemctl enable tftp

 #将tftp服務設為開機啟動,并啟動它

[root@localhost ~]# systemctl start tftp

[root@localhost ~]# systemctl enabel httpd

 #将http服務設為開機啟動并啟動

[root@localhost ~]# systemctl enable httpd

[root@localhost ~]# systemctl start httpd

[root@localhost ~]# systemctl enable cobblerd

 #将cobbler設為開機啟動并啟動 

[root@localhost ~]# systemctl start cobblerd

(3)運作

cobbler check

指令解決問題 為了確定出現不必要的問題,禁用iptables和setenforce [root@localhost ~]# iptables -F #清空防火牆規則 [root@localhost ~]# setenforce 0 #将selinux設為permissiving [root@localhost ~]# cobbler check #檢查cobbler環境是否配置正确

Cobbler

當運作

cobbler check

指令時出現上述的問題,我們通過一個一個解決就可以慢慢的實作cobbler自動化安裝CentOS 系統。下面我們一個一個的解決這些檔案

(a)修改cobbler服務端位址選項server

[root@localhost ~]# vim /etc/cobbler/settings

Cobbler

[root@localhost ~]# cobbler sync

 #将修改過的檔案同步

(b)修改next_server 此選項是修改tftp的位址 

[root@localhost ~]# vim /etc/cobbler/settings

Cobbler

[root@localhost ~]# cobbler sync

(c)修改mange_dhcp 此選項是要cobbler管理dhcp 

[root@localhost ~]# vim /etc/cobbler/settings

Cobbler

[root@localhost ~]# cobbler sync

(d)擷取啟動菜單 方法一: 如果有網絡的話使用如下方式 

[root@localhost ~]# cobbler get-loaders

 方法二: 如果沒有網絡

/var/lib/tftpboot/

目錄下的pxelinux.0和menu.c32檔案複制到

/var/lib/cobbler/loaders

[root@localhost ~]# cp /var/lib/tftpboot/{pxelinux.0,menu.c32} /var/lib/cobbler/loaders/

[root@localhost ~]# cobbler sync

(e)修改使用者密碼 

[root@localhost ~]# openssl passwd -1

 #生成加密密碼

Password: 
Verifying - Password: 
$1$gMx01QUD$eo5dQGlEDGh9o0fY8dgnr.      
Cobbler

[root@localhost ~]# cobbler sync

(f)配置dhcp服務 

[root@localhost ~]# vim /etc/cobbler/dhcp.template

[root@localhost tftpboot]# cobbler sync

 #将修改後内容太同步到

/etc/dhcp/dhcpd.conf

檔案中

Cobbler

(4)導入yum源 

[root@localhost ~]# cobbler import --path=/media/cdrom --name=centos7.3 --arch=x86_64

--path:指明yum源的路徑
--name:指明複制到`/var/www/cobbler`目錄下
--arhc:指明架構類型      

(5)編輯ks檔案并導入

預設的ks位置

/var/lib/cobbler/kickstarts/sample.ks

首先将ks檔案複制到

/var/lib/cobbler/kickstarts

目錄下,然後将ks檔案導入

[root@localhost kickstarts]# cobbler profile edit/add --name=centos7.3-x86_64 --distro=centos7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg

#編輯原有的ks檔案

[root@localhost tftpboot]# cobbler sync

(6)編輯菜單檔案

預設的菜單檔案

/etc/cobbler/pxe/pxedefault.template

 #預設菜單模闆

啟動菜單存放位置

/var/lib/tftpboot/pxelinux.cfg/default

[root@localhost tftpboot]# cobbler sync

(7)建立一台虛拟機測試

Cobbler

另外cobbler也提供web管理。Cobbler web界面是一個很好的前端,非常容易管理Cobbler。可以添加和删除system、distro、profile,可以檢視、編輯distros、profiles、subprofiles、systems、repos、kickstart檔案 cobbler認證方式有兩種:

方式一:

(1)修在認證方式

Cobbler

(2)建立管理使用者 

[root@localhost ~]# htdigest -c /etc/cobbler/users.digest "Cobbler" admin

Cobbler

注意:第一建立是需要加選項“-c”意味着建立檔案

/etc/cobbler/users.digest

檔案。

htdigest指令的使用格式:

  htdigest [ -c ] passwdfile realm username      

如何修改管理使用者的密碼呢? 

[root@localhost ~]# htdigest /etc/cobbler/users.digest "Cobbler" admin

 方式二: (a)修改認證方式

Cobbler

(b)建立管理使用者

[root@localhost ~]# useradd cobbler

[root@localhost ~]# passwd cobbler

(c)修改檔案

/etc/cobbler/user.conf

繼續閱讀