怎樣實(shí)現(xiàn)Cobbler運(yùn)維自動(dòng)化部署,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)是專業(yè)的清流網(wǎng)站建設(shè)公司,清流接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行清流網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
一、參數(shù)說(shuō)明
相關(guān)配置參數(shù):
二、概要
總體來(lái)說(shuō),在RHT/Centos 系列版本下,Cobbler的使用上不會(huì)遇到很大問(wèn)題。Cobbler 主要的作用是,把DHCP 、Kickstart 的修改都集成在一個(gè)平臺(tái)下做了管理,Cobbler的精華其實(shí)是它啟用了Kickstart 配置模板,其中可以內(nèi)嵌python代碼。
這部分技術(shù),Cobbler叫做:snippets
在RHT/Centos 系列中,官方已經(jīng)提供了不少這些代碼,基本上調(diào)用一下就可以了,而Ubuntu下就非常的痛苦,必須自己開發(fā)。
以下是相關(guān)配置路徑(默認(rèn)安裝) :
Cobbler 配置 主要位置:/var/lib/cobbler/ (實(shí)際操作和配置的目錄 )
snippets 代碼 位置:/var/lib/cobbler/snippets/
Kickstart 模板 位置 : /var/lib/cobbler/kickstarts/
安裝源鏡像 位置 : /var/www/cobbler/ks_mirror/ (把它link到apache的發(fā)布目錄,方便kickstart 工作時(shí)通過(guò)http下載安裝鏡像文件 )
三、具體使用流程
1) 導(dǎo)入安裝源
a) 準(zhǔn)備好安裝光盤 (ISO)
暫時(shí)放在: /www/os/CentOS-6.3-x86_64-bin-DVD1.iso
b) 掛載 ISO
mount -o loop /www/os/CentOS-6.3-x86_64-bin-DVD1.iso /mnt/centos63-1
c) 導(dǎo)入安裝源 到Cobbler中
通過(guò)這個(gè)環(huán)節(jié), Cobbler 會(huì)把安裝的鏡像ISO 拷貝到 源安裝鏡像目錄下: /var/www/cobbler/ks_mirror/
操作命令如下:
cobbler import --path=/mnt/centos63-1 --name=centos6.3 --arch=x86_64
參數(shù)說(shuō)明:
--name 為安裝源定義一個(gè)名字
--arch 指定安裝源是32位還是64位、ia64, 目前支持的選項(xiàng)有: x86│x86_64│ia64
注意: 這個(gè)安裝源的***標(biāo)示 就是根據(jù)這兩個(gè)參數(shù)來(lái)定義
本例導(dǎo)入成功后,安裝源的***標(biāo)示就是:centos6.3-x86_64 ,如果重復(fù),系統(tǒng)會(huì)提示導(dǎo)入失敗
更多用法,可以查看官方文檔: man cobbler ,然后查找 import 的配置,如果需要更多的參數(shù)定制 ,可以使用另外一個(gè)命令: cobbler distro。
相關(guān)管理命令:
//查看導(dǎo)入源庫(kù)列表
cobbler distro list
//查看導(dǎo)入安裝源的詳細(xì)資料
cobbler distro report --name centos6.3-x86_64
2) 定義Profile
Profile的概念,我理解為配置分組,這樣可以對(duì)一組服務(wù)器 指定他們都需要安裝的服務(wù)和配置。
比如:指定磁盤的分區(qū)策略,指定需要安裝的服務(wù),鍵盤布局,默認(rèn)語(yǔ)言等等,這些操作,其實(shí)都是通過(guò)在Profile中 指派不同的 kickstart配置文件來(lái)實(shí)現(xiàn)。在***次導(dǎo)入時(shí),系統(tǒng)給安裝源指定一個(gè)默認(rèn)Profile,它定義了一個(gè)KS文件:/var/lib/cobbler/kickstarts/sample.ks,為達(dá)到自定義服務(wù)的需求,我們需要定義自己的Profile,并指定自己的KS文件。當(dāng)然也可以需要自定義多個(gè)KS文件。
接著上面例子,我已經(jīng)導(dǎo)入了一個(gè)安裝源:centos6.3-x86_64,因此需要定義一個(gè)Profile
操作命令如下:
cobbler profile add --name=centos6.3-x86_64 --distro=centos6.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.3-x86_64.ks
如果此profile已經(jīng)存在,則需要修改一下:
cobbler profile edit --name=centos6.3-x86_64 --distro=centos6.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.3-x86_64.ks
參數(shù)說(shuō)明:
--name Profile的名字 ( 同樣也不能重復(fù) ),在此例中,我們新定義的Profile 叫:centos6.3-x86_64
--distro Profile相關(guān)聯(lián)的安裝源ID(通過(guò) cobbler distro list 可查到)
--kickstart Profile相關(guān)聯(lián)的kickstart配置文件 (此文件必須預(yù)先準(zhǔn)備好 )
相關(guān)管理命令:
//查看profile詳情
cobbler profile report --name centos6.3-x86_64
//通過(guò)profile 找到 對(duì)應(yīng)的KS文件
ksfile=$( cobbler profile report --name centos6.3-x86_64|grep -E '^Kickstart' |head -n 1|cut -d ':' -f 2 );cat $ksfile;
3) 準(zhǔn)備自定義的 kickstart 配置文件(For Centos/RHEL)
注意:這是 關(guān)鍵步驟之一
由于需要安裝的操作系統(tǒng)發(fā)行廠商不同,因此KS文件的寫法要求,也不一而足。
本文只討論 CentOs/RHEL 系列的 KS配置
另外:操作系統(tǒng) 版本不同,在KS也存在一定的差異,比如CentOS5 ,和CentOS6下就有不同,切記!
官網(wǎng)的文檔在此:
CentOS5 的 (網(wǎng)上大多是這個(gè)系列的) : http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-kickstart2-options.html
CentOS6 的 (能看到的配置案例很少) : https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html
另外我自己測(cè)試的 KS文件也上傳了。可供大家下載:
centos6.3 64位 KS
centos5.8 64位 KS
另外Cobbler對(duì)RHEL 和CentOS支持非常好,因此很多需要特殊定義的選項(xiàng),都有相應(yīng)的snippets腳本
建議使用前 可以先在snippets目錄下查一下,沒(méi)準(zhǔn)已經(jīng)有了,否則才考慮自己開發(fā) snippets腳本
在KS文件的調(diào)用方法如下:
%post $SNIPPET('post_install_network_config')
此行配置 調(diào)用了 對(duì)網(wǎng)絡(luò)配置的相關(guān) 操作 (里面是一個(gè)模板,支持嵌入 python代碼)
在ks文件里面 有一個(gè)重要配置參數(shù),它用來(lái) 定義系統(tǒng)安裝的源文件下載方式:
例如 CentOS6 配置文件有這么一行:url --url=http://192.168.100.1/cobbler/ks_mirror/centos6.3
這其實(shí)就是前面 導(dǎo)入的安裝源中的 各種安裝包,現(xiàn)在指定了對(duì)他們的訪問(wèn)方式
4) 對(duì)需要 安裝系統(tǒng)的服務(wù)器做定制化
說(shuō)明: 服務(wù)器網(wǎng)卡必須支持PXE功能
定制化 至少有這么幾個(gè):網(wǎng)絡(luò)配置,Hostname 這些
注意: 如果不定制化,網(wǎng)卡通過(guò)PXE啟動(dòng)后,會(huì)出現(xiàn)一個(gè)菜單供人選擇用哪個(gè)配置(其實(shí)就是Profile的名字)
而且每個(gè)安裝源 都有自己的默認(rèn)KS文件,超過(guò)時(shí)間后,會(huì)指定使用默認(rèn)的 KS文件 進(jìn)行安裝
本文主要討論 自動(dòng)化一鍵部署,所以必須要做定制化
這部分的操作 主要通過(guò) cobbler system 來(lái)實(shí)現(xiàn)
操作命令如下:
cobbler system add --name=WebCache-3.167 --mac=00:24:E8:64:24:59 --ip-address=192.168.3.167 --subnet=255.255.255.0 --gateway=192.168.3.1 --interface=eth0 --static=1 --profile=centos6.3-x86_64 --DNS-name=ywtest-3-167.test.com --hostname=ywtest-3-167.test.com --netboot-enabled=true --name-servers="192.168.3.1 202.106.196.115"
以上的命令,對(duì)一臺(tái)服務(wù)器做了以下定義:
a) 服務(wù)器名(不能重復(fù)即可) : WebCache-3.167
因?yàn)檫@個(gè)服務(wù)器打算要用于 Web服務(wù),ip地址是192.168.3.167,這樣的格式是方便記憶
b) 網(wǎng)絡(luò)分配的網(wǎng)卡設(shè)備 : eth0 MAC地址 : 00:24:E8:64:24:59
注意,這是必填項(xiàng),主要是依據(jù)它來(lái)區(qū)別不同的配置
同樣的,這個(gè)參數(shù)也不允許重復(fù)(同一個(gè)MAC 只能跟 一個(gè)自定義配置匹配 )
c) 分配的IP : 192.168.3.167 子網(wǎng)掩碼 : 255.255.255.0 默認(rèn)網(wǎng)關(guān) : 192.168.3.1 設(shè)備名: eth0 分配的是靜態(tài)IP
d) 本機(jī)使用的DNS服務(wù)IP : 192.168.3.1 202.106.196.115 (根據(jù)實(shí)際情況來(lái)配置)
支持添加多個(gè)DNSIP,用空格做間隔
e) 指定一個(gè)Profile : centos6.3-x86_64
這個(gè)選項(xiàng)能自動(dòng)為這臺(tái)機(jī)器 定義了安裝的系統(tǒng),安裝的服務(wù)等等
具體配置 可以查看 profile的 實(shí)際定義的KS文件來(lái)獲取
f) 指定hostname : ywtest-3-167.test.com
cobbler可以根據(jù) 這個(gè)參數(shù) 修改CentOS系統(tǒng)的 hostname 配置
g) Cobbler可以設(shè)置成一個(gè)新服務(wù)器的安裝過(guò)后,第二次PXE啟動(dòng)的時(shí)候 能自動(dòng)選擇跳過(guò)(避免重復(fù)安裝)
但如果需要強(qiáng)制安裝 ,就需要用到這個(gè)參數(shù):--netboot-enabled=true
相關(guān)操作命令:
//查看定制化列表
cobbler system list
//查看某項(xiàng)定制化 詳情
cobbler system --name WebCache-3.167
更多的定制化技巧 :
a) 對(duì)多塊網(wǎng)卡的定制
一般默認(rèn)對(duì)eth0做配置,當(dāng)然Cobbler也支持多塊網(wǎng)卡的定制
需要注意的是,這個(gè)功能 在CentOS/RHEL下沒(méi)有問(wèn)題,Cobbler可以把這些具體設(shè)置 通過(guò)snippets腳本 完成了對(duì)KS的修改
但相同的配置在Ubuntu下還沒(méi)有相應(yīng)的 snippets腳本(理論上可以自己編寫), 所以只能用別的方法來(lái)實(shí)現(xiàn)
操作命令如下:
cobbler system edit --name WebCache-3.167 --interface=eth0.10 --static=1 --ip=192.168.10.5 --subnet=255.255.255.0 cobbler system edit --name WebCache-3.167 --interface=eth2 --static=1 --ip=192.168.20.5 --subnet=255.255.255.0
通過(guò)以上2句話,可以 添加 網(wǎng)卡eth0的別名:eth0:10 ,和 另外一塊網(wǎng)卡eth2的配置
b) 刪除網(wǎng)卡的自定義配置
system edit --name= WebCache-3.167 --interface=eth2 --delete-interface
c) 支持網(wǎng)卡bonding配置
cobbler system edit --name=WebCache-3.167 --interface=eth0 --mac=AA:BB:CC:DD:EE:00 --interface-type=bond_slave --interface-master=bond0 cobbler system edit --name=WebCache-3.167 --interface=eth2 --mac=AA:BB:CC:DD:EE:01 --interface-type=bond_slave --interface-master=bond0 cobbler system edit --name=WebCache-3.167 --interface=bond0 --interface-type=bond --bonding-opts="mode=active-backup miimon=100" --ip=192.168.3.167 --subnet=255.255.255.0 --gateway=192.168.3.1 --static=1
以上命令,配置了一個(gè)bonding,它的成員是: eth0,eth2
d) 配置Bridge類型的網(wǎng)卡
cobbler system edit --name=WebCache-3.167 --interface=eth3 --mac=AA:BB:CC:DD:EE:00 --interface-type=bridge_slave --interface-master=br0 --static=1 cobbler system edit --name=WebCache-3.167 --interface=br0 --mac=AA:BB:CC:DD:EE:00 --interface-type="bridge" --static=1
以上語(yǔ)句 是配置一個(gè)Bridge: br0,它的成員是 eth3
因?yàn)檫@個(gè)bridge我不想配置IP地址,所以要加上參數(shù) : --static=1,否則該Bridge在實(shí)際配置中Cobbler會(huì)配置成DHCP模式
更多技巧,請(qǐng)參考官網(wǎng)WIKI。
也可以多 參考 軟件自帶的 MAN : man cobbler
5) 同步以上步驟 所做的修改
因?yàn)橐陨喜襟E需要修改的組件比較多 (根據(jù)cobbler配置文件來(lái)),大概會(huì)有:
a) Cobbler 自己內(nèi)部配置
以上幾個(gè)環(huán)節(jié)的配置信息,都會(huì)自動(dòng)記錄下來(lái)
b) Dhcp 配置 (需要在主配置文件中 開啟對(duì)Dhcp功能的管理 )
需要注意的是,如果是Centos5下,會(huì)遇到問(wèn)題 ; 而 Centos6卻不會(huì)有問(wèn)題
默認(rèn)Cobbler修改的是/etc/dhcp/dhcpd.conf,而Centos5下 配置文件卻在 /etc/下
因此 可能需要修改dhcp的 系統(tǒng)啟動(dòng)腳本 /etc/init.d/dhcpd
c) Tftp 配置 (需要在主配置文件中 開啟對(duì)Tftp功能的管理 )
因?yàn)橛卸ㄖ苹渲?,所以Cobbler會(huì)在tftp的主配置文件夾中生成對(duì)應(yīng)的配置:
假設(shè):ftft 的root目錄是 /tftpboot/
Cobbler生成的配置文件會(huì) 放在 /tftpboot/pxelinux.cfg/ 下
d) Bind 配置 (需要在主配置文件中 開啟對(duì)DNS功能的管理 )
這部分配置 我的測(cè)試中沒(méi)有打開,因此沒(méi)有測(cè)試
估計(jì)會(huì) 修改Bind的主配置文件 /etc/named.conf
操作命令如下:
cobbler sync
6) 打開電源,BOOT 需要自動(dòng)化安裝的服務(wù)器
一般接上電源,通過(guò)PXE 即可完成自動(dòng)化安裝,基本上經(jīng)過(guò)20-30分鐘,就可以完成一次安裝。
四、補(bǔ)遺
1) 關(guān)于Apache 和Cobbler
在上一篇文章(Cobbler-服務(wù)安裝) 中,我已說(shuō)過(guò) Apache 和Cobbler有深度整合
主要是 Cobbler是用python寫的,它利用Apache的 wsgi模塊 實(shí)現(xiàn)了http的接口
利用這個(gè)接口,可以做這么幾件事:
a 提供安裝源的http下載
b Cobbler的web管理平臺(tái),提供圖形化的操作界面 (此部分我沒(méi)有深入測(cè)試,請(qǐng)自行查看相關(guān)文檔 )
//Cobbler web界面訪問(wèn)地址:
http://192.168.100.1/cobbler_web/ (192.168.100.1 為apache 監(jiān)聽的IP地址)
c 提供接口查詢相關(guān)配置
比如:
//查詢profile詳情
http://192.168.100.1/cblr/svc/op/ks/profile/centos6.3-x86_64
// 查詢定制化配置的KS文件
http://192.168.100.1/cblr/svc/op/ks/system/WebCache-3.167
2) 關(guān)于wsgi
安裝方法: yum -y install mod_wsgi
相關(guān)配置文件:
a) wsgi.conf : 可以讓apache啟動(dòng) wsgi模塊
其內(nèi)容就是一行配置命令:
LoadModule wsgi_module modules/mod_wsgi.so
b) mod_wsgi.so 模塊核心,按apache組件開發(fā)
此文件需要放到apache的模塊組件目錄中
c) cobbler.conf
此配置文件 是主要核心配置
假設(shè) apache和cobbler都是默認(rèn)安裝
那文件會(huì)存在于: /etc/httpd/conf.d/cobbler.conf
3)配置檢查
//kickstart配置檢查
cobbler validateks
//單個(gè)kickstart profile 檢查
/usr/bin/ksvalidator "http://192.168.100.1/cblr/svc/op/ks/profile/centos6.3-x86_64" /usr/bin/ksvalidator "http://192.168.100.1/cblr/svc/op/ks/system/WebCache-3.167"
4) 設(shè)置并同步特定源
a) 增加特定源
cobbler repo add --mirror=http://mirrors.ustc.edu.cn/epel/6/x86_64/ --name=ustc-epel6-x86_64 --arch=x86_64 --breed=yum cobbler repo add --mirror=http://mirrors.ustc.edu.cn/epel/testing/6/x86_64/ --name=ustc-epel6-x86_64-testing --arch=x86_64 --breed=yum
b) 把特定源指定到 profile上
cobbler profile edit --name= centos6.3-x86_64 --repos="epel6-x86_64 epel6-x86_64-testing"
c) 需要同步epel的源到本地,考驗(yàn)?zāi)愕木W(wǎng)絡(luò)速度
cobbler reposync cobbler reposync --tries=3 --no-fail
6) 修改內(nèi)核啟動(dòng)參數(shù),可以保證在安裝開始以后,不會(huì)有選擇 國(guó)家,語(yǔ)言,鍵盤布局 的提示
cobbler profile edit --name=centos6.3-x86_64 --distro=centos6.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.3-x86_64.ks --kopts="locale=en_US netcfg/choose_interface=auto console-setup/ask_detect=false keyboard-configuration/layoutcode=us"
關(guān)于怎樣實(shí)現(xiàn)Cobbler運(yùn)維自動(dòng)化部署問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。