cobbler自動化
防僞碼:凡事欲其成功,必要付出代價:奮鬥。
前言:随着網際網路時代的發展,it迎來了自動化。什麼自動化?自動化的流程是什麼?為什麼it行業會使用自動化?讓我們帶着問題來學習今天的cobbler自動化。
理論知識:
1. pxe流程
pxe屬于c/s結構。
pxe+kickstart工作概述
cobbler安裝配置自動化批量裝系統
cobbler功能:
cobbler使用python編寫,yum也使用python編寫的。
cobbler部署:
系統環境:centos 7
注意:為了系統穩定,centos 7.3系統不太穩定,建議使用穩定的系統版本。
安裝epel源
wget -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安裝cobbler安裝包
yum -y install httpd dhcp tftp cobbler
啟動httpd和cobbler服務(注意順序)
檢測cobbler
cobbler check
出現如下報錯:關閉selinux,并重新開機系統。
按着檢測出的問題解決問題:
vim /etc/cobbler/settings
384 server: 192.168.226.144 (384行修改server的ip位址為cobbler位址)
重新開機cobbler服務并檢測cobbler
根據問題解決問題。
vim /etc/cobbler/settings
272 next_server: 192.168.226.141 (272行 修改next_server的ip位址為cobbler位址)
yum -y install xinetd
vim /etc/xinetd,d/tftp
14 disable = no (14行改為no)
安裝cobbler get-loaders
安裝pykickstart
yum -y install pykickstart
根據問題結局問題。
systemctl start rsyncd.service
systemctl enable rsyncd.service
systemctl restart xinetd
設定cobbler密碼生成加密密碼,并複制下面的加密密碼。
$1$123123$mav.kvi/b3swmflerpd2b0 (此處我伺服器上生成的cobbler加密密碼)
修改/etc/cobbler/settings檔案中的密碼一行
101 default_password_crypted: "$1$123123$mav.kvi/b3swmflerpd2b0"
(101行 加密密碼改為之前複制的加密密碼)
此處就是如上複制的加密密碼需要寫入到/etc/cobbler/settings配置檔案中
cobbler check
根據實際需要,如果生産環境需要,則解決一下兩個問題,如生産環境不需要,則不用添加。
設定dhcp(最好讓cobbler管理dhcp),要想讓cobbler管理dhcp需要修改配置檔案
/etc/cobbler/settings下的dhcp這一項
242 manage_dhcp: 1 (修改242行,把0改為1,代表讓cobbler來管理dhcp,如果是0,代表手動自己管理dhcp)
重新開機cobblerd服務
systemctl restart cobblerd
修改/etc/cobbler/dhcp.template配置檔案。
vim /etc/cobbler/dhcp.template
根據生産環境的需要修改dhcp。
注意:如果讓cobbler來管理dhcp,就不能用/etc/dhcp/dhcp.conf來管理dhcp,需要用/etc/cobbler/dhcp.template來管理dhcp。
執行cobbler sync
檢視dhcp端口号:
如果以後要是更改dhcp服務就要執行cobbler sync 做到同步
下面我們來使用cobbler來裝系統試一下!
首先需要那些必備品呢?
1. 鏡像
2. kickstart
下面來挂在已經傳上去的鏡像,(我的鏡像傳到了/opt下,到時候根據生産環境自己調整)。
挂載鏡像:
mount -o loop /opt/centos-7-x86_64-dvd-1511.iso /mnt
導入鏡像:
cobbler import --path=/mnt/ --name=centos-7-x86 --arch=x86_64
參數:--path 導入路徑 --name 起一個名字 --arch 架構是32還是64
導入成功後,yum倉庫就做好了,那麼導入到什麼位置了?
在/var/www/cobbler/ks_mirror/centos-7-x86-x86_64/下。
為什麼會放在/var/www/cobbler/ks_mirror/centos-7-x86-x86_64/下,那麼我們可以看一下apache的配置檔案 /etc/httpd/conf.d/cobbler.conf
執行cobbler list
cobbler list
會有兩個centos-7-x86_64,profiles這個是可以修改的
安裝時需要,如在vm中模仿,則需要關閉vmware workstation的dhcp功能
在/var/lib/cobbler/kickstarts中有很多自動安裝檔案,
如果使用xshell工具可以使用rz指令導入檔案,
導入centos-7的檔案:
切記centos 7 和centos 6.5的模闆檔案不一樣,不可混用。
檢視cobbler profile report
cobbler profile report
檢視名稱:
cobbler profile list
更改kickstarts配置:
cobbler profile edit --name=centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-7.1-x86_64_cobbler.cfg
檢視kickstarts是否更改:
cobbler profile report
顯示已經更改。
更改網卡名稱,增加核心參數:
cobbler profile edit --name=centos-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'
(--kopts是kernel options的縮寫)
檢視到已更改完成。
執行cobbler sync同步一下
cobbler sync
以上操作完成,我們可以試一下自動化安裝一個系統看一下
建立一個新的虛拟機隻需要下一步就可以在這裡我就不多說,
出現如上圖檔說明已經可以自動安裝了
如何更改
這個界面中的cobbler | http://cobbler.github.io/如何更改呢?
修改/etc/cobbler/pxe/pxedefault.template檔案
然後執行cobbler sync
cobbler sync
更改後的如下圖:
選擇centos-7-x86_64自動安裝即可。
cobbler設定profile還可以web界面中,圖形化設定profile。
需要安裝cobbler-web安裝包
yum -y install cobbler-web
注意:cobbler是python編寫的,cobbler的web界面是django編寫的(django是python的一個架構)。
安裝完畢後需要重新開機apache。(為什麼重新開機apache呢?下面來看一下/etc/httpd/conf.d/下會有一個cobbler_web.conf,是以需要重新啟動apache服務)
重新開機apache服務:
systemctl restart httpd
注意:重新開機服務不會影響自動安裝,安裝過程中遇到重新開機會卡頓一下後,自動重試10次再次繼續安裝。
那麼安裝完cobbler web界面如何通路呢?
通路cobbler web界面
注意:選擇進階,使用https通路
通路成功的cobbler web界面:
注意:cobbler使用者密碼使用http的基本認證就可以。
通路時注意防火牆規則。
在/etc/cobbler/users.conf和/etc/cobbler/users.digest下,一個為cobbler使用者檔案,一個為cobbler密碼檔案。由于密碼是加密的,不知道密碼,隻能生成一個新的密碼。
生成密碼:
htdigest /etc/cobbler/users.digest "cobbler" cobbler
注意:“”中為描述資訊 後面為使用者
設定密碼完成登陸cobbler web界面:
設定profile,可以在這裡設定。
編輯profile界面:
cobbler web界面很強大 ,在這裡就不一一解釋了。
編輯的代碼放在哪裡?不知道 可以在apache配置檔案中檢視存放位置。
在/usr/share/cobbler/web/下
這是一個django的一個工程。
url存放位置:/usr/share/cobbler/web/urls.py檔案下,所有的url都存放在這個檔案下。
在view.py檔案中設定請求方法。
檢視自動安裝是否安裝完畢:
已安裝完畢。
koan實作自動化安裝系統
假如我需要重裝這一台伺服器,但是又不想去機房重裝這台伺服器,那麼我該怎麼安裝呢?
下面介紹一下cobbler 提供的一個koan功能。
首先需要安裝koan這個包(一般沒有次包,需要安裝epel源)
安裝epel源:
yum -y install koan
koan 是cobbler自帶的一個自動化的軟體包。可以通過koan選擇需要安裝的系統自動化安裝。
檢視重裝的系統:
自動化重新安裝系統:
koan --replace-self --server=192.168.226.128 --profile=centos-7-x86_64
注:--replace-self 重裝那台伺服器系統(寫cobbler系統的ip)
--profile= 在cobbler上顯示的系統
為什麼會執行reboot就會重新裝系統呢?
執行完koan --replace-self --server=192.168.226.128 --profile=centos-7-x86_64
指令後,會在/boot/grub2/grub.cfg下生成一個啟動項。
執行reboot後,會顯示如下圖。
可以自動化安裝了。
注意:自動化安裝需要執行以上的三部就可以實作自動化安裝。
可以使用cobbler distro help 檢視指令幫助
使用cobbler distro report列出所有發行版
如何導入其他源呢?我們來試一下導入epel源 (注意實體環境要檢視磁盤空間再考慮導入)在這裡我就不導入了,占用磁盤太大。
導入epel源:
cobbler repo add --name=centos-7-x86_64-epel --mirror=https://mirrors.aliyum.com/el/7server/x86_64/ --arch=x86_64 --breed=yum
執行cobbler reposync下載下傳到本地并建構
cobbler reposync
嘗試導入openstack源,下載下傳到本地并建構
cobbler repo add --name=openstack-newton --mirror=https://mirrors.aliyun.com/cent/7.3.1611/cloud/x86_64/openstack-newton/ --arch=x86_64 --breed=yum
執行cobbler reposync
成功後,如何已自動安裝就有openstack-newton呢?
兩種方法:
一、使用cobbler web界面在profiles中添加。
二、使用指令:cobbler profile edit --name=xxx --repo=”xxx”
以上兩種方法都可以使用。
如果要想每天同步可以使用crontab
#每天一點一分進行同步,檢查機制,這樣可以增量同步
1 1 * * * cobbler reposync --tries=3 --no-fail
cobbler不僅僅隻限先于自動化裝機。
詳細cobbler原理請參考:
cobbler學習位址(手冊)
http://www.ibm.com/developerworks/cn/linux/l-cobbler/index.html
官網位址:http://cobbler.github.io/manuals/2.8.0/
cobbler還可以使用mac位址對伺服器使用定制化的自動安裝
首先生成一個固定的mac位址,然後執行如下操作:
cobbler system add --name=linux-node1 --mac=00:50:56:3c:e6:18 --profile=centos-7-x86_64 --ip-address=192.168.226.110 --subnet=255.255.255.0 --gateway=192.168.226.2 --interface=eth0 --static=1 --hostname=linux-node1.example.com --name-servers="192.168.226.2" --kickstart=/var/lib/cobbler/kickstarts/centos-7.1-x86_64_cobbler.cfg
就可以按着設定安裝伺服器系統
通過api方式自動化安裝系統。
用python編寫兩個小腳本。
1. cobbler_list.py
2. cobbler-api.py
存放在/var/lib/cobbler/kickstarts下。
執行cobbler system list
再執行python cobbler-api.py
true代表成功。
使用cobbler system list 發現會多一個要自動安裝的系統:
下面字就可以自動化安裝了。
cobbler支援電源管理。
希望大家能學會cobbler自動化,真希望能幫助大家!謝謝!