天天看點

Cobbler自動化

                                cobbler自動化

    防僞碼:凡事欲其成功,必要付出代價:奮鬥。

    前言:随着網際網路時代的發展,it迎來了自動化。什麼自動化?自動化的流程是什麼?為什麼it行業會使用自動化?讓我們帶着問題來學習今天的cobbler自動化。

理論知識:

1. pxe流程

Cobbler自動化

pxe屬于c/s結構。

pxe+kickstart工作概述

Cobbler自動化
Cobbler自動化

       cobbler安裝配置自動化批量裝系統

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自動化

安裝cobbler安裝包

yum -y install httpd  dhcp tftp cobbler 

Cobbler自動化

啟動httpd和cobbler服務(注意順序)

Cobbler自動化

檢測cobbler

cobbler check

Cobbler自動化
Cobbler自動化

出現如下報錯:關閉selinux,并重新開機系統。

Cobbler自動化

按着檢測出的問題解決問題:

 vim  /etc/cobbler/settings

384   server: 192.168.226.144     (384行修改server的ip位址為cobbler位址)

重新開機cobbler服務并檢測cobbler

Cobbler自動化

根據問題解決問題。

vim  /etc/cobbler/settings

272   next_server: 192.168.226.141    (272行 修改next_server的ip位址為cobbler位址)

Cobbler自動化

yum  -y install xinetd

Cobbler自動化

vim  /etc/xinetd,d/tftp

 14         disable                 = no     (14行改為no)

Cobbler自動化

安裝cobbler  get-loaders

Cobbler自動化

安裝pykickstart

yum  -y  install pykickstart

Cobbler自動化

根據問題結局問題。

systemctl start rsyncd.service

systemctl enable rsyncd.service

systemctl  restart  xinetd

Cobbler自動化
Cobbler自動化

設定cobbler密碼生成加密密碼,并複制下面的加密密碼。

$1$123123$mav.kvi/b3swmflerpd2b0       (此處我伺服器上生成的cobbler加密密碼)

修改/etc/cobbler/settings檔案中的密碼一行

101 default_password_crypted: "$1$123123$mav.kvi/b3swmflerpd2b0"

(101行 加密密碼改為之前複制的加密密碼)

Cobbler自動化
Cobbler自動化

此處就是如上複制的加密密碼需要寫入到/etc/cobbler/settings配置檔案中

cobbler  check 

Cobbler自動化

根據實際需要,如果生産環境需要,則解決一下兩個問題,如生産環境不需要,則不用添加。

設定dhcp(最好讓cobbler管理dhcp),要想讓cobbler管理dhcp需要修改配置檔案

/etc/cobbler/settings下的dhcp這一項

242   manage_dhcp: 1    (修改242行,把0改為1,代表讓cobbler來管理dhcp,如果是0,代表手動自己管理dhcp)

Cobbler自動化

重新開機cobblerd服務

systemctl  restart  cobblerd

修改/etc/cobbler/dhcp.template配置檔案。

vim  /etc/cobbler/dhcp.template

Cobbler自動化

根據生産環境的需要修改dhcp。

注意:如果讓cobbler來管理dhcp,就不能用/etc/dhcp/dhcp.conf來管理dhcp,需要用/etc/cobbler/dhcp.template來管理dhcp。

執行cobbler  sync 

Cobbler自動化
Cobbler自動化

檢視dhcp端口号:

Cobbler自動化

如果以後要是更改dhcp服務就要執行cobbler sync 做到同步

下面我們來使用cobbler來裝系統試一下!

首先需要那些必備品呢?

1. 鏡像

2. kickstart

下面來挂在已經傳上去的鏡像,(我的鏡像傳到了/opt下,到時候根據生産環境自己調整)。

挂載鏡像:

mount  -o  loop /opt/centos-7-x86_64-dvd-1511.iso  /mnt

Cobbler自動化

導入鏡像:

cobbler  import  --path=/mnt/ --name=centos-7-x86 --arch=x86_64

Cobbler自動化

參數:--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

Cobbler自動化

會有兩個centos-7-x86_64,profiles這個是可以修改的

安裝時需要,如在vm中模仿,則需要關閉vmware  workstation的dhcp功能

在/var/lib/cobbler/kickstarts中有很多自動安裝檔案,

如果使用xshell工具可以使用rz指令導入檔案,

導入centos-7的檔案:

Cobbler自動化
Cobbler自動化

切記centos 7 和centos 6.5的模闆檔案不一樣,不可混用。

檢視cobbler profile report

cobbler profile report

Cobbler自動化

檢視名稱:

cobbler profile list

Cobbler自動化

更改kickstarts配置:

cobbler profile edit --name=centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-7.1-x86_64_cobbler.cfg

Cobbler自動化

檢視kickstarts是否更改:

cobbler profile report 

Cobbler自動化

顯示已經更改。

更改網卡名稱,增加核心參數:

cobbler profile edit --name=centos-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'

(--kopts是kernel options的縮寫)

Cobbler自動化

檢視到已更改完成。

執行cobbler  sync同步一下

cobbler  sync

以上操作完成,我們可以試一下自動化安裝一個系統看一下

建立一個新的虛拟機隻需要下一步就可以在這裡我就不多說,

Cobbler自動化
Cobbler自動化

出現如上圖檔說明已經可以自動安裝了

如何更改

Cobbler自動化

這個界面中的cobbler | http://cobbler.github.io/如何更改呢?

修改/etc/cobbler/pxe/pxedefault.template檔案

然後執行cobbler sync

cobbler sync

更改後的如下圖:

Cobbler自動化

選擇centos-7-x86_64自動安裝即可。

cobbler設定profile還可以web界面中,圖形化設定profile。

需要安裝cobbler-web安裝包

yum -y install cobbler-web

Cobbler自動化

注意:cobbler是python編寫的,cobbler的web界面是django編寫的(django是python的一個架構)。

安裝完畢後需要重新開機apache。(為什麼重新開機apache呢?下面來看一下/etc/httpd/conf.d/下會有一個cobbler_web.conf,是以需要重新啟動apache服務)

Cobbler自動化

重新開機apache服務:

systemctl  restart  httpd 

Cobbler自動化

注意:重新開機服務不會影響自動安裝,安裝過程中遇到重新開機會卡頓一下後,自動重試10次再次繼續安裝。

那麼安裝完cobbler  web界面如何通路呢?

通路cobbler  web界面

Cobbler自動化

注意:選擇進階,使用https通路

通路成功的cobbler web界面:

Cobbler自動化

注意:cobbler使用者密碼使用http的基本認證就可以。

通路時注意防火牆規則。

在/etc/cobbler/users.conf和/etc/cobbler/users.digest下,一個為cobbler使用者檔案,一個為cobbler密碼檔案。由于密碼是加密的,不知道密碼,隻能生成一個新的密碼。

生成密碼:

htdigest /etc/cobbler/users.digest "cobbler" cobbler

注意:“”中為描述資訊 後面為使用者

Cobbler自動化

設定密碼完成登陸cobbler web界面:

Cobbler自動化
Cobbler自動化

設定profile,可以在這裡設定。

Cobbler自動化

編輯profile界面:

Cobbler自動化

cobbler web界面很強大 ,在這裡就不一一解釋了。

編輯的代碼放在哪裡?不知道 可以在apache配置檔案中檢視存放位置。

在/usr/share/cobbler/web/下

Cobbler自動化

這是一個django的一個工程。

url存放位置:/usr/share/cobbler/web/urls.py檔案下,所有的url都存放在這個檔案下。

在view.py檔案中設定請求方法。

檢視自動安裝是否安裝完畢:

Cobbler自動化

已安裝完畢。

koan實作自動化安裝系統

假如我需要重裝這一台伺服器,但是又不想去機房重裝這台伺服器,那麼我該怎麼安裝呢?

下面介紹一下cobbler 提供的一個koan功能。

首先需要安裝koan這個包(一般沒有次包,需要安裝epel源)

安裝epel源:

yum -y install koan

Cobbler自動化

koan 是cobbler自帶的一個自動化的軟體包。可以通過koan選擇需要安裝的系統自動化安裝。

檢視重裝的系統:

Cobbler自動化

自動化重新安裝系統:

koan  --replace-self  --server=192.168.226.128  --profile=centos-7-x86_64

注:--replace-self 重裝那台伺服器系統(寫cobbler系統的ip)

--profile=    在cobbler上顯示的系統

Cobbler自動化

為什麼會執行reboot就會重新裝系統呢?

執行完koan  --replace-self  --server=192.168.226.128  --profile=centos-7-x86_64

指令後,會在/boot/grub2/grub.cfg下生成一個啟動項。

 執行reboot後,會顯示如下圖。

Cobbler自動化
Cobbler自動化

可以自動化安裝了。

注意:自動化安裝需要執行以上的三部就可以實作自動化安裝。

可以使用cobbler distro help 檢視指令幫助

Cobbler自動化

使用cobbler  distro  report列出所有發行版

Cobbler自動化

如何導入其他源呢?我們來試一下導入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自動化

執行cobbler  reposync下載下傳到本地并建構

cobbler  reposync

Cobbler自動化

嘗試導入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自動化

執行cobbler reposync

成功後,如何已自動安裝就有openstack-newton呢?

兩種方法:

一、使用cobbler web界面在profiles中添加。

Cobbler自動化

二、使用指令: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

Cobbler自動化

就可以按着設定安裝伺服器系統

通過api方式自動化安裝系統。

用python編寫兩個小腳本。

1.  cobbler_list.py

Cobbler自動化

2.  cobbler-api.py

Cobbler自動化
Cobbler自動化

存放在/var/lib/cobbler/kickstarts下。

執行cobbler system list 

Cobbler自動化

再執行python  cobbler-api.py

Cobbler自動化

true代表成功。

使用cobbler system list 發現會多一個要自動安裝的系統:

Cobbler自動化

下面字就可以自動化安裝了。

cobbler支援電源管理。

希望大家能學會cobbler自動化,真希望能幫助大家!謝謝!

上一篇: 讓IT自動化
下一篇: 自動化測試