簡(jiǎn)介
Cobbler是一個(gè)快速網(wǎng)絡(luò)安裝linux的服務(wù)贮尉,而且在經(jīng)過(guò)調(diào)整也可以支持網(wǎng)絡(luò)安裝windows。該工具使用python開(kāi)發(fā)赞辩,小巧輕便(才15k行python代碼)雌芽,使用簡(jiǎn)單的命令即可完成PXE網(wǎng)絡(luò)安裝環(huán)境的配置,同時(shí)還可以管理DHCP诗宣、DNS膘怕、以及yum倉(cāng)庫(kù)、構(gòu)造系統(tǒng)ISO鏡像召庞。今天這里只介紹在企業(yè)中利用cobbler進(jìn)行批量自動(dòng)化安裝centos篮灼。其他更多的功能這里不做介紹诅诱。如果想詳細(xì)了解cobbler請(qǐng)百度 Cobbler部署指南
一娘荡、實(shí)現(xiàn)過(guò)程
1.自動(dòng)安裝過(guò)程
簡(jiǎn)單的來(lái)說(shuō)客戶端的電腦網(wǎng)卡帶有并開(kāi)啟pxe功能炮沐,開(kāi)機(jī)會(huì)自動(dòng)獲取IP地址回怜、tftp地址玉雾、pexlinux文件名----->加載pxelinux.0复旬、內(nèi)核文件vmlinuz驹碍、偽文件系統(tǒng)initrd.img----->啟動(dòng)系統(tǒng)----->到pxelinux指定的tftp地址下載ks.cfg文件----->根據(jù)ks.cfg文件的去http凡恍、ftp咳焚、nfs尋找鏡像革半、安裝操作系統(tǒng)
客戶端<-------IP---------DHCP服務(wù)器
客戶端<----pxelinux----tftp服務(wù)器
客戶端<----default------tftp服務(wù)器
客戶端<-----ks.cfg------http又官、ftp六敬、nfs
客戶端<----鏡像地址---http外构、ftp审编、nfs
客戶端<----安裝系統(tǒng)---http垒酬、ftp件炉、nfs
2.基本配置文件結(jié)構(gòu)
pxe批量部署操作系統(tǒng)就是通過(guò)以下幾個(gè)服務(wù)共同完成的斟冕,cobbler工具是將幾者更加集中地進(jìn)行管理,使運(yùn)維人員不需要在乎底層的工作走净。這里只介紹了cobbler用于批量部署系統(tǒng)用到的服務(wù)以及相關(guān)的文件伏伯。
dhcp /etc/dhcp/dhcp.conf 提供IP地址说搅,提供tftp服務(wù)器弄唧、pexlinux文件名
tftp /var/lib/tftpboot/ 提供初始內(nèi)核以偽文件系統(tǒng)
\---vmlinuz 內(nèi)核文件
\---initrd.img 偽文件系統(tǒng)
\---menu.c32 菜單風(fēng)格
\---pxelinux.0 啟動(dòng)文件
\---pxelinux.cfg
\---default 指定ks.cfg文件的路徑.ks.cfg指定了鏡像的地址與安裝的方式
httpd /var/www/html/centos 提供ks.cfg或鏡像
ftp /var/ftp/pub/centos 提供ks.cfg或鏡像
cobbler 管理力工具候引,將幾者集中管理
3.cobbler命令的使用
cobbler commands 介紹
cobbler check 核對(duì)當(dāng)前設(shè)置是否有問(wèn)題
cobbler list 列出所有的cobbler元素
cobbler report 列出元素的詳細(xì)信息
cobbler sync 同步配置到數(shù)據(jù)目錄,更改配置最好都要執(zhí)行下
cobbler reposync 同步y(tǒng)um倉(cāng)庫(kù)
cobbler distro 查看導(dǎo)入的發(fā)行版系統(tǒng)信息
cobbler system 查看添加的系統(tǒng)信息
cobbler profile 查看配置信息
二澄干、實(shí)現(xiàn)步驟
1. 前期準(zhǔn)備
iptables -F
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config
修改為SELINUX=disabled
2.安裝軟件
yum install cobbler dhcp tftp ftp httpd
systemctl enable cobblerd
systemctl start cobblerd
systemctl enable tftp
systemctl start tftp
systemctl enable httpd
systemctl start httpd
3.配置cobbler
- 檢查cobbler配置文件麸俘,根據(jù)提示修改參數(shù)
cobbler check
可以檢查cobbler的各項(xiàng)參數(shù)从媚,以提示那些沒(méi)有修改好的錯(cuò)誤拜效,如果有些報(bào)錯(cuò)你更改后還在提示那么可以忽略提示。
cobbler check
- 編輯cobbler配置文件
每次修改cobbler的配置文件后都要重啟服務(wù)侮腹,并更新配置文件
vim /etc/cobbler/settings
next_server: 192.168.25.107 #設(shè)置tftp地址
manage_dhcp: 1 #cobberl接管dhcp
server: 192.168.25.107 #cobbler的地址,也就是本機(jī)地址望抽。
pxe_just_once: 1 #cobbler接管pxe
systemctl restart cobblerd #重啟服務(wù)
cobbler sync #更新配置
- 生成dhcp模板
dhcp.template
時(shí)cobberl的dhcp模板文件煤篙,當(dāng)cobberl更新配置時(shí)就會(huì)把這些模板文件覆蓋服務(wù)的配置文件辑奈。比如這個(gè)dhcp模板一旦執(zhí)行cobbler sync
就會(huì)將dhcp的默認(rèn)模板就行覆蓋已烤。
vim /etc/cobbler/dhcp.template #設(shè)定子網(wǎng)段胯究,限定可以分配的地址范圍
subnet 192.168.25.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.25.100 192.168.25.254;
}
cobbler sync
- 生成啟動(dòng)文件
當(dāng)安裝完tftp服務(wù)后會(huì)自動(dòng)在tftp的目錄下生成菜單文件裕循、啟動(dòng)文件净刮。前面也說(shuō)明了cobbler的機(jī)制時(shí)將自己的模板文件覆蓋至服務(wù)的配置文件淹父,但是cobbler默認(rèn)沒(méi)有菜單文件暑认、啟動(dòng)文件的模板穷吮。那就需要手動(dòng)創(chuàng)建cobbler的tftp模板文件捡鱼,可以通過(guò)外網(wǎng)直接下載驾诈,也可以將tftp的文件復(fù)制到cobbler中然后在通過(guò)cobbler修改即可乍迄。
#服務(wù)器連接了外網(wǎng)
cobbler get-loaders
#服務(wù)器沒(méi)有連接外網(wǎng)可以直接復(fù)制
cp /var/lib/tftpboot/{menu.c32,pxelinux.0} /var/lib/cobbler/loaders
- 導(dǎo)入yum源
導(dǎo)入的過(guò)程也就是cobbler將源文件復(fù)制到/var/www/cobbler/ks_mirror的過(guò)程闯两。/var/www時(shí)httpd服務(wù)目錄cobbler將鏡像源復(fù)制到httpd目錄中谅将,這個(gè)路徑也就是ISO的鏡像的路徑饥臂。可以通過(guò)導(dǎo)入不同的yum源來(lái)實(shí)現(xiàn)多系統(tǒng)安裝稽煤。
cobbler import --path=/mnt/cdrom/centos7 --name=centos7.3 --arch=x86_64
cobbler import --path=/mnt/cdrom/centos6 --name=centos6.9 --arch=x86_64
# --path 光盤(pán)的路徑酵熙,也可以使用ftp绿店、http等yum源地址
# --name 鏡像名稱可以隨便寫(xiě),便于cobbler的管理
# --acrh 指定架構(gòu)如果不指定架構(gòu)借嗽,cobbler會(huì)分別創(chuàng)建兩個(gè)架構(gòu)的鏡像
# 但是鏡像本身就是64位的所以創(chuàng)建兩個(gè)沒(méi)有必要恶导,因此直接指定架構(gòu)
cobbler distro list #查看創(chuàng)建的yum源
- 生成ks文件
- 生成ks.cfg文件有兩種方式浸须,一種是通過(guò)vim手動(dòng)創(chuàng)建删窒,一種是通過(guò)工具生成肌索。我個(gè)人還是比較推薦工具生成,因?yàn)閗s.cfg文件配置眾多通過(guò)工具生成更加穩(wěn)定晕换。
- cobbler在導(dǎo)入yum源時(shí)發(fā)現(xiàn)沒(méi)有合適的ks文件闸准,就默認(rèn)創(chuàng)建了一個(gè)ks文件但這個(gè)ks文件是不可用的夷家,直接將他刪除
- 注意如果是手動(dòng)創(chuàng)建ks文件的話,要將本地啟動(dòng)設(shè)為默認(rèn)項(xiàng)瘾英,否則的話用戶沒(méi)有來(lái)得即選就直接安裝操作系統(tǒng),而你又正好配置了清空磁盤(pán)耳鸯、清空分區(qū)表膀曾,那用戶的系統(tǒng)將被重新安裝添谊。
# 刪除默認(rèn)創(chuàng)建的ks文件
cobbler profile list
cobbler profile remove --name=centos6.9-x86_64
cobbler profile remove --name=centos7.3-x86_64
# 創(chuàng)建ks文件
system-config-kickstart #kickstart圖形化生成工具,生成完畢后記得點(diǎn)擊左上角的file將其保存
cp centos6.cfg centos7.cfg /var/lib/cobbler/kickstarts/ #將生成的ks文件復(fù)制到cobbler模板目錄下
# 將創(chuàng)建的ks文件導(dǎo)入cobbler
cobbler profile add --name=centos6.9_desktop --distro=centos6.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6.cfg
cobbler profile add --name=centos7.3_mini --distro=centos7.3-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7.cfg
# add 增加配置
# --name 名稱可以隨便寫(xiě)便于cobbler管理
# --distro 指定yum源扎瓶,也就是之前導(dǎo)入的yum源概荷,如果導(dǎo)入了多個(gè)yum源需要一一對(duì)應(yīng)
# --kickstart 自己生成ks文件的路徑误证,cobbler會(huì)將你自己生成的ks文件轉(zhuǎn)換成cobbler可以識(shí)別的ks文件
cobbler sync 同步配置
#創(chuàng)建完成的ks文件中url這一項(xiàng)可以使用$tree來(lái)代替愈捅。cobbler會(huì)自動(dòng)將其替代
三慈鸠、測(cè)試
將機(jī)器與cobbler接入同一vlan中林束,開(kāi)機(jī)后會(huì)自動(dòng)進(jìn)入pxelinux界面壶冒。讓用戶選擇是通過(guò)本地啟動(dòng)還是安裝操作系統(tǒng)∨痔冢現(xiàn)在只需要敲下回車(chē)即可自動(dòng)安裝操作系統(tǒng)。
四锨阿、cobbler的web端管理
cobbler可以通過(guò)安裝web服務(wù)使管理更加的便捷墅诡。
- 安裝
yum install cobbler-web
- 配置認(rèn)證方式
打開(kāi)modules.conf
配置文件末早,可以看到cobbler支持眾多的用戶登錄認(rèn)證方式然磷。常用的認(rèn)證方式有兩種認(rèn)證方式刊驴,第一種為cobbler默認(rèn)的authn_configfile
通過(guò)配置文件認(rèn)證寡润。第二種為authn_pam
通過(guò)PAM模塊來(lái)認(rèn)證即系統(tǒng)用戶梭纹。
- 基于配置文件的認(rèn)證方式业踢。此方式為系統(tǒng)默認(rèn)的認(rèn)證方式知举,確認(rèn) module = authn_configfile即可雇锡。
# 修改配置文件
vim /etc/cobbler/modules.conf
[authentication]
module = authn_configfile # <-------僅修改了這里
# 創(chuàng)建認(rèn)證用戶 aubin锰提,僅在創(chuàng)建第一用戶時(shí)使用 -c選項(xiàng)創(chuàng)建后續(xù)的用戶則不在使用
# 倒數(shù)第二個(gè)參數(shù)是relam的名稱必須為Cobbler且第一個(gè)字母為大寫(xiě)
htdigest -c /etc/cobbler/users.digest Cobbler aubin
- 基于PAM模塊的認(rèn)證立肘,通過(guò)PAM模塊將cobbler的認(rèn)證方式交給系統(tǒng)來(lái)認(rèn)證。
# 修改配置文件
vim /etc/cobbler/modules.conf
[authentication]
module = authn_pam # <-------僅修改了這里
#創(chuàng)建系統(tǒng)用戶茧痒,且設(shè)置為不可登陸
useradd -s /sbin/nologin aubin
# 修改用戶文件
vim /etc/cobbler/users.conf
[admins]admin = "aubin" # <-------寫(xiě)入剛剛創(chuàng)建的系統(tǒng)用戶
- 測(cè)試登錄
輸入創(chuàng)建的用戶即可登錄旺订,web界面的管理過(guò)于簡(jiǎn)單僅用鼠標(biāo)點(diǎn)擊點(diǎn)擊再點(diǎn)擊即可進(jìn)行管理区拳,如遇問(wèn)題請(qǐng)自行百度樱调。
五、常見(jiàn)錯(cuò)誤
- 如下圖的錯(cuò)誤經(jīng)常出現(xiàn)在虛擬機(jī)環(huán)境下伙窃,這時(shí)因?yàn)閯?chuàng)建的虛擬機(jī)內(nèi)存不夠大为障。將虛擬機(jī)關(guān)機(jī)調(diào)整需虛擬機(jī)內(nèi)最為1.5G以上呻右,就不會(huì)出現(xiàn)如下錯(cuò)誤鞋喇。
- 提示TFTP連接超時(shí)落塑,請(qǐng)檢查防火墻是否關(guān)閉。
- 選擇操作系統(tǒng)后可以出現(xiàn)下圖所示,加載內(nèi)核散吵、加載偽文件系統(tǒng)。那么就說(shuō)明各項(xiàng)服務(wù)包括cobbler配置沒(méi)有錯(cuò)誤晦款,如果之后再出現(xiàn)問(wèn)題缓溅,請(qǐng)排查yum源是否完整可用肛宋。