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、工作流程

2017-09-17_230927.png(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=ARCHOS architecture being imported
--breed=BREEDthe breed being imported
--os-version=OS_VERSIONthe version being imported
--path=PATHlocal path or rsync location
--name=NAMEname, ex 'RHEL-5'
--available-as=AVAILABLE_AStree is here, don't mirror
--kickstart=KICKSTART_FILEassign this kickstart file
--rsync-flags=RSYNC_FLAGSpass 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環境是否配置正確

2017-09-18_112328.png

當運行cobbler check命令時出現上述的問題,我們通過一個一個解決就可以慢慢的實現cobbler自動化安裝CentOS 系統。下面我們一個一個的解決這些文件

(a)修改cobbler服務端地址選項server[root@localhost ~]# vim /etc/cobbler/settings2017-09-18_113027.png

[root@localhost ~]# cobbler sync #將修改過的文件同步

(b)修改next_server 此選項是修改tftp的地址 [root@localhost ~]# vim /etc/cobbler/settings

2017-09-18_113142.png

[root@localhost ~]# cobbler sync

(c)修改mange_dhcp 此選項是要cobbler管理dhcp [root@localhost ~]# vim /etc/cobbler/settings

2017-09-18_113339.png

[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.

2017-09-18_115919.png

[root@localhost ~]# cobbler sync 

(f)配置dhcp服務 [root@localhost ~]# vim /etc/cobbler/dhcp.template[root@localhost tftpboot]# cobbler sync #將修改後內容太同步到/etc/dhcp/dhcpd.conf文件中

2017-09-18_120239.png

(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)新建一臺虛擬機測試

2017-09-18_141500.png

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

方式一:

(1)修在認證方式

2017-09-18_145331.png

(2)創建管理用戶 [root@localhost ~]# htdigest -c /etc/cobbler/users.digest "Cobbler" admin

2017-09-18_145547.png

注意:第一創建是需要加選項“-c”意味着創建文件/etc/cobbler/users.digest文件。

htdigest命令的使用格式:

  htdigest [ -c ] passwdfile realm username

如何修改管理用戶的密碼呢? [root@localhost ~]# htdigest /etc/cobbler/users.digest "Cobbler" admin 方式二: (a)修改認證方式

2017-09-18_150027.png

(b)創建管理用戶

[root@localhost ~]# useradd cobbler [root@localhost ~]# passwd cobbler

(c)修改文件/etc/cobbler/user.conf

2017-09-18_150352.png

(3)在瀏覽器地址輸入地址https://192.168.4.128/cobbler_web並管理用戶和密碼即可 2017-09-18_150819.png


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