首頁 > 軟體

Cobbler批次部署CentOS

2020-06-16 17:07:11

簡介

Cobbler是一個快速網路安裝linux的服務,而且在經過調整也可以支援網路安裝windows。該工具使用Python開發,小巧輕便(才15k行python程式碼),使用簡單的命令即可完成PXE網路安裝環境的設定,同時還可以管理DHCP、DNS、以及yum倉庫、構造系統ISO映象。今天這裡只介紹在企業中利用cobbler進行批次自動化安裝CentOS。其他更多的功能這裡不做介紹。如果想詳細了解cobbler請百度 Cobbler部署指南

一、實現過程

1.自動安裝過程

簡單的來說用戶端的電腦網絡卡帶有並開啟pxe功能,開機會自動獲取IP地址、tftp地址、pexlinux檔名----->載入pxelinux.0、核心檔案vmlinuz、偽檔案系統initrd.img----->啟動系統----->到pxelinux指定的tftp地址下載ks.cfg檔案----->根據ks.cfg檔案的去http、ftp、nfs尋找映象、安裝作業系統

用戶端<-------IP---------DHCP伺服器
用戶端<----pxelinux----tftp伺服器
用戶端<----default------tftp伺服器
用戶端<-----ks.cfg------http、ftp、nfs
用戶端<----映象地址---http、ftp、nfs
用戶端<----安裝系統---http、ftp、nfs

2.基本組態檔結構

pxe批次部署作業系統就是通過以下幾個服務共同完成的,cobbler工具是將幾者更加集中地進行管理,使運維人員不需要在乎底層的工作。這裡只介紹了cobbler用於批次部署系統用到的服務以及相關的檔案。

dhcp  /etc/dhcp/dhcp.conf     提供IP地址,提供tftp伺服器、pexlinux檔名

tftp  /var/lib/tftpboot/      提供初始核心以偽檔案系統
         ---vmlinuz          核心檔案
         ---initrd.img       偽檔案系統
         ---menu.c32         選單風格
         ---pxelinux.0       啟動檔案
         ---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         核對當前設定是否有問題
cobbler list          列出所有的cobbler元素
cobbler report        列出元素的詳細資訊
cobbler sync          同步設定到資料目錄,更改設定最好都要執行下
cobbler reposync      同步yum倉庫
cobbler distro        檢視匯入的發行版系統資訊
cobbler system        檢視新增的系統資訊
cobbler profile       檢視設定資訊

二、實現步驟

1. 前期準備

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組態檔,根據提示修改引數
    cobbler check可以檢查cobbler的各項引數,以提示那些沒有修改好的錯誤,如果有些報錯你更改後還在提示那麼可以忽略提示。

    cobbler check
  • 編輯cobbler組態檔
    每次修改cobbler的組態檔後都要重新啟動服務,並更新組態檔

    vim /etc/cobbler/settings
    next_server: 192.168.25.107      #設定tftp地址
    manage_dhcp: 1                   #cobberl接管dhcp
    server: 192.168.25.107           #cobbler的地址,也就是本機地址。
    pxe_just_once: 1                 #cobbler接管pxe
    systemctl restart cobblerd       #重新啟動服務
    cobbler sync                     #更新設定
  • 生成dhcp模板
    dhcp.template時cobberl的dhcp模板檔案,當cobberl更新設定時就會把這些模板檔案覆蓋服務的組態檔。比如這個dhcp模板一旦執行cobbler sync就會將dhcp的預設模板就行覆蓋。

    vim /etc/cobbler/dhcp.template            #設定子網段,限定可以分配的地址範圍
    subnet 192.168.25.0 netmask 255.255.255.0 {
       range dynamic-bootp        192.168.25.100 192.168.25.254;
    }
    cobbler sync 
  • 生成啟動檔案
    當安裝完tftp服務後會自動在tftp的目錄下生成選單檔案、啟動檔案。前面也說明了cobbler的機制時將自己的模板檔案覆蓋至服務的組態檔,但是cobbler預設沒有選單檔案、啟動檔案的模板。那就需要手動建立cobbler的tftp模板檔案,可以通過外網直接下載,也可以將tftp的檔案複製到cobbler中然後在通過cobbler修改即可。

    #伺服器連線了外網
    cobbler get-loaders
    #伺服器沒有連線外網可以直接複製
    cp /var/lib/tftpboot/{menu.c32,pxelinux.0} /var/lib/cobbler/loaders
  • 匯入yum源
    匯入的過程也就是cobbler將原始檔複製到/var/www/cobbler/ks_mirror的過程。/var/www時httpd服務目錄cobbler將映象源複製到httpd目錄中,這個路徑也就是ISO的映象的路徑。可以通過匯入不同的yum源來實現多系統安裝。

    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  光碟的路徑,也可以使用ftp、http等yum源地址
     # --name 映象名稱可以隨便寫,便於cobbler的管理
     # --acrh  指定架構如果不指定架構,cobbler會分別建立兩個架構的映象
     # 但是映象本身就是64位的所以建立兩個沒有必要,因此直接指定架構
    cobbler distro list            #檢視建立的yum源
  • 生成ks檔案
  1. 生成ks.cfg檔案有兩種方式,一種是通過vim手動建立,一種是通過工具生成。我個人還是比較推薦工具生成,因為ks.cfg檔案設定眾多通過工具生成更加穩定。
  2. cobbler在匯入yum源時發現沒有合適的ks檔案,就預設建立了一個ks檔案但這個ks檔案是不可用的,直接將他刪除
  3. 注意如果是手動建立ks檔案的話,要將本地啟動設為預設項,否則的話使用者沒有來得即選就直接安裝作業系統,而你又正好設定了清空磁碟、清空分割區表,那使用者的系統將被重新安裝。

    # 刪除預設建立的ks檔案
    cobbler profile list
    cobbler profile remove --name=centos6.9-x86_64
    cobbler profile remove --name=centos7.3-x86_64
    # 建立ks檔案
    system-config-kickstart            #kickstart圖形化生成工具,生成完畢後記得點選左上角的file將其儲存
    cp  centos6.cfg centos7.cfg /var/lib/cobbler/kickstarts/      #將生成的ks檔案複製到cobbler模板目錄下
    # 將建立的ks檔案匯入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       名稱可以隨便寫便於cobbler管理
    # --distro     指定yum源,也就是之前匯入的yum源,如果匯入了多個yum源需要一一對應
    # --kickstart  自己生成ks檔案的路徑,cobbler會將你自己生???的ks檔案轉換成cobbler可以識別的ks檔案
    cobbler sync   同步設定
    #建立完成的ks檔案中url這一項可以使用$tree來代替。cobbler會自動將其替代

三、測試

將機器與cobbler接入同一vlan中,開機後會自動進入pxelinux介面。讓使用者選擇是通過本地啟動還是安裝作業系統。現在只需要敲下回車即可自動安裝作業系統。


四、cobbler的web端管理

cobbler可以通過安裝web服務使管理更加的便捷。

  1. 安裝

    yum install cobbler-web
  2. 設定認證方式
    開啟modules.conf組態檔,可以看到cobbler支援眾多的使用者登入認證方式。常用的認證方式有兩種認證方式,第一種為cobbler預設的authn_configfile通過組態檔認證。第二種為authn_pam通過PAM模組來認證即系統使用者。
  • 基於組態檔的認證方式。此方式為系統預設的認證方式,確認 module = authn_configfile即可。

    # 修改組態檔
    vim /etc/cobbler/modules.conf
     [authentication] 
     module = authn_configfile      #   <-------僅修改了這裡
    # 建立認證使用者 aubin,僅在建立第一使用者時使用 -c選項建立後續的使用者則不在使用
    # 倒數第二個引數是relam的名稱必須為Cobbler且第一個字母為大寫
    htdigest -c /etc/cobbler/users.digest Cobbler aubin
  • 基於PAM模組的認證,通過PAM模組將cobbler的認證方式交給系統來認證。

    # 修改組態檔
    vim /etc/cobbler/modules.conf
     [authentication]
     module = authn_pam            #   <-------僅修改了這裡
    #建立系統使用者,且設定為不可登陸
    useradd -s /sbin/nologin  aubin
    # 修改使用者檔案
    vim /etc/cobbler/users.conf
    [admins]admin = "aubin"            #    <-------寫入剛剛建立的系統使用者
  1. 測試登入
    輸入建立的使用者即可登入,web介面的管理過於簡單僅用滑鼠點選點選再點選即可進行管理,如遇問題請自行百度。


五、常見錯誤

  1. 如下圖的錯誤經常出現在虛擬機器環境下,這時因為建立的虛擬機器記憶體不夠大。將虛擬機器關機調整需虛擬機器內最為1.5G以上,就不會出現如下錯誤。

  1. 提示TFTP連線超時,請檢查防火牆是否關閉。

  1. 選擇作業系統後可以出現下圖所示,載入核心、載入偽檔案系統。那麼就說明各項服務包括cobbler設定沒有錯誤,如果之後再出現問題,請排查yum源是否完整可用。

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


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