首頁 > 軟體

Linux系統基於網路的自動化安裝

2020-06-16 17:07:16

安裝一個作業系統對一個普通人來說是一件非常麻煩的事了。而對於一個專業人士來說,應該是一個非常輕鬆的事。但是這樣的情況也僅限於有限的幾台需要安裝。在實際工作的中,我們經常會遇到這樣的情況:有大批次的計算機需要同時安裝Linux,或者想要安裝Linux但是計算機沒有光碟機,或者是通過光碟機的方式一個個安裝。這樣安裝不僅效率低,也不利於以後的維護。這個時候你就需要利用網路的強大功能了。它可以幫你基於網路來完成全自動化的安裝,中間不需要人工去干預。這就是cobbler服務

cobbler服務是一個快速網路安裝linux 作業系統的服務。它支援眾多的Linux 發行版本:Red HatFedoraCentOS 、Debian 、UbuntuSUSE ,也可以支援網路安裝windows。它同時提供了CLI 和Web的頁面管理形式。

本文所提到的基於網路的系統自動化安裝方案主要用到了以下的幾個協定和技術:

 -- PXE(Preboot Execution Environment / 遠端引導技術)

-- DHCP(Dynamic Host Configuration Protocol / 動態主機設定協定)

-- TFTP(Trivial File Transfer Protocol / 普通檔案傳輸協定)

-- HTTP(Hyper Text Transfer Protocal /超文字傳輸協定)

cobbler的工作流程:

1、client 裸機設定了從網路啟動後,開機後會廣播報文請求DHCP 伺服器(cobbler server )為其傳送一個分配好的IP地址

2、DHCP 伺服器(cobbler server )收到請求後會返回一個responese ,包括其分配的ip 地址

3、client 裸機拿到ip 後再向cobbler server 傳送一個安裝OS引導檔案的請求

4、cobbler server 告訴裸機OS 引導檔案的名字和TFTP server 的ip和port

5、client 裸機通過上面告知的TFTP server 的通訊地址,下載引導檔案

6、client 裸機執行執行該引導檔案,確定載入資訊,選擇要安裝的OS,期間會再向cobbler server 請求kickstart 檔案和os image

7、cobbler server 再次回應請求的kickstart 和OS iamge檔案位置

8、client 裸機載入kickstart 檔案

9、client 裸機接收OS image ,安裝該OS image

10、用戶端啟動

下面就來說說設定cobbler的步驟:

一、先安裝cobbler、dhcp服務,並開啟對應服務(在CentOS 7 上安裝)

yum  install  -y  cobbler  dhcp(安裝cobbler和dhcp)   

systemctl enable cobblerd(設定cobbler服務為開機自啟)

systemctl start cobblerd(開啟cobbler服務)

systemctl enable tftp(設定tftp服務為開機自啟)

systemctl start tftp(開啟tftp服務)

systemctl enable httpd(設定httpd服務為開機自啟)

systemctl start httpd(開啟httpd服務)

二、檢查cobbler的組態檔

cobbler  check:這一步會檢查cobbler的組態檔是否完整。第一次執行會出現很多的錯誤報告,我們需要跟著這些錯誤報告來一步步的更改它。

根據cobbler  check的提示,我們來一步步的完善它。

      1)修改組態檔

        vim  /etc/cobbler/setting

        這裡面我們只需要更改四處就可,

        找到這一行:default_password_crypted: "$1$8ckh4FrM$ayLsgQi85bi8Nt5Gj4Drj/" 這裡的密碼是需要更改的

        先利用openssl passwd -1 生成口令,然後把生成的口令來替換掉這一竄亂數
        這一行:next_server: 127.0.0.1   這裡把你本機的ip地址更改上去就可(他是提供tftp裡repo原始檔位置的地址)
        這一行:manage_dhcp: 0  這裡0改為1 (表示開啟DHCP為client分配ip地址)
        這一行:server: 1172.0.0.1 這裡改為自己本機的ip(12.168.35.5)地址(表示為client提供cobbler服務的主機地址)

      2)更改tftp組態檔

        這個根據提示修改/etc/xinetd.d/tftp裡的disabled 為on

          vim  /etc/xinetd.d/tftp

      3)設定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服務,並同步cobbler組態檔

          systenctl  restart  cobbler

          cobbler  sync

        這樣DHCP檔案就設定完成,可以開啟DHCP服務了

          systemctl  enable  dhcpd(設定dhcp為開機自啟)

          systemctl  start  dhcpd (開啟dhcp服務)

      4)準備啟動檔案和和選單風格檔案

        如果主機連線在internet上那麼就好辦了,我們只需要一步就可
          cobbler get-loaders (執行這條命令,他會自動連網下載所需的啟動檔案與選單介面)

          他會把下載到的檔案放置到 /var/lib/cobbler/loaders這個目錄下

      5)關閉本機的selinux與防火牆,這是為了能使外部的網路請求可以不被這些策略拒絕在外而接收不到請求

        setenforce  0  (關閉selinux策略)

        iptables  -F  (關閉防火牆)

        當然這些方法都是臨時的,如果想長期更改還需要更改他們的組態檔。當然這樣並不安全,所以這裡我們就臨時更改一下

      6)像提示裡的rsync、debmirrior與fencing  tools這幾個提示可以不用理會,因為這裡我們用不到它。

      然後重新啟動cobbler服務:

        systemctl  reestart cobblerd(重新啟動服務)

        cobbler  sync (重新載入組態檔)

 

     三、設定安裝系統所需要的yum源

         這需要把光碟裡的檔案匯入到cobbler的服務目錄裡,為系統的安裝準備好檔案

        cobbler  import  --path=/misc/cd  --name=centos7_test  --arch=x86_64 (匯入光碟檔案)
        cobbler distro list (這時就可檢視匯入的檔案所生成的yum的庫名了)

     四、生成kickstart引導檔案

        到這裡我們就要匯入自己製作的安裝的引導檔案了,這個引導檔案需要我們根據安裝所需要的包來自己手動製作,同時也可根據系統生成的檔案來加以修改也可以。下面就是一個根據系統的組態檔修改的ks引導檔案ks.cfg

    vim /anaconda-ks.cfg

    
       

     到此kickstart  檔案編輯完成

    我們要把這個檔案匯入進cobbler的服務路徑裡

    cp  anaconda-ks.cfg  /var/lib/cobbler/kickstarts/ks7.cfg (複製這個製作好的檔案到cobbler的目錄下存放)

    chmod +r  ks7.cfg  (要記得更改這個檔案的許可權,不然其他人是無權檢視這個引導檔案的)

    cobbler  profile  add  --name=centos7_hello  --distro=centos7_test  --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg(匯入ks.cfg檔案為centos7_hello 這個選單名下的引導檔案)

    systemctl  restart  cobblerd (再次重新啟動這個服務)

    cobbler sync(同步組態檔)

      伺服器端的設定準備完成。

    五、設定用戶端。將用戶端連入這個網內,啟動電源,選擇選單

      

     安裝中:

      

安裝完成後,就可以以root的身份來登入進系統,它的密碼就是當初設定在ks.cfg檔案裡的密碼。登入後就可以進行各種操作了

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


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