首頁 > 軟體

Linux運維自動化之Cobbler安裝部署RHEL7.0

2020-06-16 17:52:47

一、簡介

Cobbler 可以用來快速建立 Linux 網路安裝環境,它已將 Linux 網路安裝的技術門檻,從大專以上文化水平,成功降低到初中以下,連補鞋匠都能學會。

網路安裝伺服器套件 Cobbler(補鞋匠)從前,我們一直在做裝機民工這份很有前途的職業。自打若干年前 Red Hat 推出了 Kickstart,此後我們頓覺身價倍增。不再需要刻了光碟一台一台地安裝 Linux,只要搞定 PXE、DHCP、TFTP,還有那滿屏眼花繚亂不知所云的 Kickstart 指令碼,我們就可以像哈里波特一樣,輕點魔棒,瞬間安裝上百台伺服器。這一堆花裡胡哨的東西可不是一般人都能整明白的,沒有大專以上學歷,通不過英語四級, 根本別想玩轉。總而言之,這是一份多麼有前途,多麼有技術含量的工作啊。

很不幸,Red Hat 最新(Cobbler專案最初在2008年左右發布)發布了網路安裝伺服器套件 Cobbler(補鞋匠),它已將 Linux 網路安裝的技術門檻,從大專以上文化水平,成功降低到初中以下,連補鞋匠都能學會。對於我們這些在裝機領域浸淫多年,經驗豐富,老驥伏櫪,志在千里的民工兄弟們來說,不啻為一個晴天霹靂。

--------------------------------------------分割線------------------------------------------------------

系統環境

實驗環境:VMware Workstation 11

系統平台:RHEL7

網路模式:NAT(使用本地DHCP)

Cobbler版本:2.6.9.

網段:192.168.27.0

本機IP:192.168.27.131

防火牆已關閉/iptables: Firewall is not running.

SELINUX=disabled

--------------------------------------------分割線------------------------------------------------------

前期準備

所需要用到的服務:EPEL、DHCP、TFTP、HTTP、VSFTP

註:EPEL (Extra Packages for Enterprise Linux,企業版Linux的額外軟體包) 是Fedora小組維護的一個軟體倉庫專案,為RHEL/CentOS提供他們預設不提供的軟體包。這個源相容RHEL及像CentOS和Scientific Linux這樣的衍生版本。

1.設定本地yum倉庫,掛載光碟映象

[root@linuxidc 桌面]#vim /etc/yum.repos.d/rhel7.repo

[rhel7]

name=rhel7

basurel=file:///mnt

enabled=1

gpgcheck=0

將光碟掛載到/mnt中

[root@linuxidc 桌面]#mount /dev/cdrom /mnt

2.安裝EPEL

要想安裝EPEL,我們先要下載EPEL的rpm安裝包。

CentOS7/RHEL7的下載頁面如下,版本不用擔心一般都能用,不一定非要用我這個版本,根據你們不同版本的作業系統選擇自己合適的包。

http://mirrors.ustc.edu.cn/fedora/epel//7/x86_64/e/epel-release-7-5.noarch.rpm

通過以下命令安裝EPEL 軟體包

[root@linuxidc 桌面]#rpm -ivh epel-release-6-8.noarch.rpm

安裝好EPEL 源後,用yum 命令來檢查是否新增到源列表

[root@linuxidc 桌面]# yum repolist
已載入外掛:langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
源標識              源名稱                                                狀態
epel/x86_64        Extra Packages for Enterprise Linux 7 - x86_64        8,477
rhel7              rhel7                                                  4,305
repolist: 12,782

--------------------------------------------分割線------------------------------------------------------

安裝Cobbler-Web 介面和DHCP

Cobbler 提供了一個很有用的 Web 介面,您可以通過該介面實現此目的。要使用這個介面,首先需要安裝它的程式包:

[root@linuxidc 桌面]#yum -y install cobbler-web

上面這個步驟可能會出現依賴包問題,解決方案見文章底下的解決方案。

安裝完成後系統會給你安裝以下所有的包,如果有的包沒有安裝上,還請手動安裝

已安裝:

cobbler-web.noarch 0:2.6.9-1.el7                                             

作為依賴被安裝:

  • PyYAML.x86_64 0:3.10-11.el7                                                 
  • apr.x86_64 0:1.4.8-3.el7                                                     
  • apr-util.x86_64 0:1.5.2-6.el7                                               
  • cobbler.noarch 0:2.6.9-1.el7                                                 
  • httpd.x86_64 0:2.4.6-17.el7                                                 
  • httpd-tools.x86_64 0:2.4.6-17.el7                                           
  • mod_ssl.x86_64 1:2.4.6-17.el7                                               
  • mod_wsgi.x86_64 0:3.4-11.el7                                                 
  • Python-cheetah.x86_64 0:2.4.4-4.el7                                         
  • python-django.noarch 0:1.6.11-2.el7                                         
  • python-django-bash-completion.noarch 0:1.6.11-2.el7                         
  • python-markdown.noarch 0:2.4.1-1.el7                                         
  • python-netaddr.noarch 0:0.7.5-7.el7                                         
  • python-simplejson.x86_64 0:3.3.3-1.el7                                       
  • tftp-server.x86_64 0:5.2-11.el7                                             
  • xinetd.x86_64 2:2.3.15-12.el7   

[root@linuxidc 桌面]# yum -y install dhcp

--------------------------------------------分割線------------------------------------------------------

命令設定Cobbler

一、重新啟動cobbler服務

[root@linuxidc 桌面]#systemctl enable cobblerd.service

[root@linuxidc 桌面]#systemctl start cobblerd.service

[root@linuxidc 桌面]#systemctl enable httpd

[root@linuxidc 桌面]#systemctl start httpd

--------------------------------------------------------------------------------------------------------

二、檢查cobbler設定

執行檢查設定命令

[root@linuxidc 桌面]#cobbler check

執行結果反饋

The following are potential configuration items that you may want to fix:

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.

2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.

3 : change 'disable' to 'no' in /etc/xinetd.d/tftp

4 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.

5 : file /etc/xinetd.d/rsync does not exist

6 : debmirror package is not installed, it will be required to manage debian deployments and repositories

7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one

8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

Restart cobblerd and then run 'cobbler sync' to apply changes.

上面這段資訊大意就是

1,編輯/etc/cobbler/settings檔案,找到 server選項,修改為提供服務的ip地址(也就是你這台機器的IP地址,不能是127.0.0.1)

2,編輯/etc/cobbler/settings檔案,找到 next_server選項,修改為127.0.0.1以外的地址(也就是本機IP地址)

3,編輯/etc/xinetd.d/tftp檔案,將檔案中的disable欄位的設定由yes改為no

4,執行 cobbler get-loaders,系統將自動下載loader程式,完成提示4的修復工作。

5,檔案/etc/xinetd.d/rsync不存在

6,提示說debmirror沒安裝。如果不是安裝 debian之類的系統,此提示可以忽略,如果需要安裝,下載地址為:

http://rpmfind.net/linux/rpm2html/search.php?query=debmirror

7??修改cobbler使用者的預設密碼,可以使用如下命令生成密碼,並使用生成後的密碼替換/etc/cobbler/settings中的密碼。生成密碼命令:openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'

-------------------------------------------------------------------------------------------

三、設定過程

[root@linuxidc 桌面]# openssl passwd -1 -salt "cobbler" "123456"                  //生成新的密碼,密碼為123456,此密碼就是安裝完系統後的root密碼

$1$cobbler$sqDDOBeLKJVmxTCZr52/11                  //複製該程式碼

[root@linuxidc 桌面]# vim /etc/cobbler/settings        //開啟組態檔,修改3處地方

server: 192.168.27.131            //把127.0.0.1改為本機的IP地址

next_server: 192.168.27.131            //把127.0.0.1改為本機的IP地址

default_password_crypted: "$1$cobbler$sqDDOBeLKJVmxTCZr52/11"            //把原來的加密密碼改為上面咱們複製的那個密碼

[root@linuxidc 桌面]# vim /etc/xinetd.d/tftp       

disable                = no                //找到disable那行把yes改成no

[root@linuxidc 桌面]# cobbler get-loaders 

......        //略過

......

*** TASK COMPLETE ***        //最後出現這個提示說明操作正確,其他均為錯誤

[root@linuxidc 桌面]# cobbler import --path=/mnt/ --name=rhel7.0            //把掛載光碟映象的mnt目錄中的內容匯入到cobbler裡

......        //略過

......

*** TASK COMPLETE ***        //最後出現這個提示說明操作正確,其他均為錯誤

注意:檢查掛載路徑是否正確,掛載路徑可去前期準備中檢視。

[root@linuxidc 桌面]# systemctl restart cobblerd.service

--------------------------------------------------------------------------------------------------------

四、設定DHCP服務

首先修改cobbler設定,讓cobbler來管理dhcp服務,編輯檔案/etc/cobbler/settings

[root@linuxidc 桌面]# vim /etc/cobbler/settings

manage_dhcp: 1

接下來修改/etc/cobbler/dhcp.template,此檔案是cobbler管理dhcp的模板

對於此檔案,本例中只需要修改如下部分:

subnet 192.168.27.0 netmask 255.255.255.0 {

option routers            192.168.27.131;

option domain-name-servers 192.168.27.131;

option subnet-mask        255.255.255.0;

range dynamic-bootp        192.168.27.100 192.168.27.120;

default-lease-time        21600;

max-lease-time            43200;

next-server                $next_server;

其餘部分維持預設值即可。

到目前為止,全部的準備工作已經就算全部完成。

--------------------------------------------------------------------------------------------------------------------------

五、同步cobbler設定

[root@linuxidc 桌面]# cobbler sync    //執行同步命令

......        //略過

......

*** TASK COMPLETE ***        //最後出現這個提示說明操作正確,其他均為錯誤

cobbler會自動進行初始化工作,移除已經存在的啟動項,然後根據模板拷貝loader檔案。之後再生成pxe的組態檔,生成dhcp的組態檔,最後再重新啟動dhcp服務。

[root@linuxidc 桌面]# systemctl restart cobblerd.service
[root@linuxidc 桌面]# systemctl restart xinetd.service
[root@linuxidc 桌面]# cobbler sync

至此,就可以使用虛擬機器來測試cobbler安裝了。

===========================================================================================

開啟Cobbler-web進行設定

上面所有步驟均為命令方式進行設定,咱們還可以用一種簡單的方法進行設定,那就是網頁圖形化設定了。

用火狐瀏覽器開啟下面的網站

https://192.168.27.131/cobbler_web/

使用者名稱和密碼均為:cobbler

功能講解(左側標籤):

Distros:關於要安裝系統的版本資訊,包括啟動檔案的地址,版本,架構

Profiles:主要就是選擇ks檔案以及虛擬化的設定

Kickstart Templates:集中管理ks檔案,可以在裡面建立新的ks檔案(手寫)或者匯入ks檔案。

Snippets:片段這個玩意暫時還沒搞清楚,如果有人了解還望不吝賜教。

Settings:這個裡面的資料就是/etc/cobbler/settings的組態檔,你可以通過網頁來直接修改組態檔中的內容

Import DVD:匯入安裝源映象,如果沒有匯入過Distros和Profiles不會有內容

Sync:同步的意思

Check:檢查   

    對於Web介面下的設定我這裡就不過多講解了,大部分都是點點滑鼠的事,大家可以用命令設定完成後開啟網頁來觀察一下,我上面的功能註釋都是大家需要設定的,點選Profiles後右側會出現你匯入的系統,然後點選Edit按鈕就可以找到選擇ks指令碼,ks指令碼是從Kickstart Templates中呼叫的,ks檔案你可以自己編譯,如果懶得編譯,安裝完成後就是最小化安裝。

    關於ks檔案的編譯我建議是用kiskstart來進行(比較方便,不容易出錯)

--------------------------------------------分割線------------------------------------------------------

--------------------------------------------分割線------------------------------------------------------

實驗過程中可能會遇到的問題

1.

python-pygments依賴包關係錯誤解決辦法:

開啟下面的網頁,找到對應你系統的rpm包,我最後選擇的是CentOS 7.1.1503 for x86_64這個系統版本的,沒有找到紅帽的。

http://www.rpmfind.net/linux/rpm2html/search.php?query=python-pygments

我會在附件中加上這個rpm包,大家可以自己去下載,也可以用我這個包。

在安裝python-pygments包的時候可能還需要安裝一個依賴包python-imanging。

這個包直接yum -y install python-imanging就可以直接安裝上,然後再去安裝python-pygments。

rpm -ivh --force python-pygments-1.4-9.el7.noarch.rpm

安裝完成後即可安裝cobbler-web包了。

2.

[root@linuxidc 桌面]# cobbler check
httpd does not appear to be running and proxying cobbler, or SELinux is in the way. Original traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cobbler/cli.py", line 252, in check_setup
    s.ping()

解決辦法:遇到這種問題檢視httpd服務是否正常啟動,關閉SELinux服務並重新啟動即可。

3.注意,一定要先設定cobbler管理dhcp的模板,不要過早啟動DHCP不然會出現BUG。而且DHCP服務不需要你手動去開啟,只要你在/etc/cobbler/settings檔案中把manage_dhcp改為1之後你在同步組態檔DHCP會自動起來。

4.如果全都設定完畢,客戶機可以獲取到DHCP但卡在TFTP的時候就去檢查防火牆是否關閉。

資源包

EPEL包

epel-release-7-5.noarch.rpmepel-release-7-5.noarch

Python-pygments包

選其一

  • python-pygments-1.4-9.el7.noarch
  • python-pygments-1.1.1-1.el6.noarch
  • python-pygments-1.4-1.el6.rfx.noarch

Linux運維自動化之Cobbler安裝部署RHEL7.0 相關資源包下載

百度雲網路硬碟下載http://pan.baidu.com/s/1c0x2vJy

------------------------------------------分割線------------------------------------------

免費下載地址在 http://linux.linuxidc.com/

使用者名稱與密碼都是www.linuxidc.com

具體下載目錄在 /2015年資料/9月/20日/Linux運維自動化之Cobbler安裝部署RHEL7.0/

下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割線------------------------------------------

 更多RedHat相關資訊見RedHat 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=10

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-09/123326.htm


IT145.com E-mail:sddin#qq.com