Cobbler原理解析

技術原理解析:

  • Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一併傳送給Client
  • Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之後,正式向Client發送pxelinux.0
  • Client執行接收到的pxelinux.0文件
  • Client向TFTP Server發送針對本機的配置信息文件(在TFTP服務的pxelinux.cfg目錄下,這是系統菜單文件,格式和isolinux.cfg格式一樣,功能也是類似),TFTP將配置文件發回Client,繼而Client根據配置文件執行後續操作。
  • Client向TFTP發送Linux內核請求信息,TFTP接收到消息之後將內核文件發送給Client
  • Client向TFTP發送根文件請求信息,TFTP接收到消息之後返回Linux根文件系統
  • Client啟動Linux內核
  • Client下載安裝源文件,讀取自動化安裝腳本

Cobbler簡單介紹:

  1. Cobbler是一個Linux服務器快速網絡安裝的服務,由python開發,小巧輕便(15k行python代碼),可以通過PXE的方式來快速安裝、重裝物理服務器和虛擬機,同時還可以管理DHCP,DNS,TFTP、RSYNC以及yum倉庫、構造系統ISO鏡像。
  2. Cobbler可以使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler-web),還提供了API接口,可以方便二次開發使用。

Cobbler工作流程:

Cobbler原理解析

  • Client裸機配置了從網絡啟動後,開機後會廣播包請求DHCP服務器 (Cobbler server)發送其分配好的一個IP
  • DHCP服務器(Cobbler server)收到請求後發送responese,包括其ip地址
  • Client裸機拿到ip後再向Cobbler server發送請求OS引導文件的請求
  • Cobbler server告訴裸機OS引導文件的名字和TFTP server的ipport
  • Client裸機通過上面告知的TFTP server地址通信,下載引導文件
  • Client裸機執行執行該引導文件,確定加載信息,選擇要安裝的OS, 期間會再向cobbler server請求kickstart文件和OS image
  • Cobbler server發送請求的kickstart和OS iamge
  • Client裸機加載kickstart文件
  • Client裸機接收os image,安裝該OS image

Cobbler 設計方式:

  • 發行版(distro) :表示一個操作系統,它承載了內核和initrd的信息,以及內核等其他數據
  • 存儲庫 (repository):保存了一個yum或者rsync存儲庫的鏡像信息
  • 配置文件(profile):包含了一個發行版(distro),一個kickstart文件以及可能的存儲庫(repository),還包含了更多的內核參數等其他數據
  • 系統(system):表示要配給的機器,它包含了一個配置文件或一個鏡像,還包含了ip和mac地址,電源管理(地址,憑據,類型)以及更為專業的數據信息
  • 鏡像(image):可替換一個包含不屬於此類別的文件的發行版對象(eg: 無法作為內核和initrd的對象)

以上各個組件中, 發行版,存儲庫, 配置文件為必須配置項,只有在虛擬環境中,必須要用cobbler來引導虛擬機啟動時候,才會用到系統組件但事實上,在生產環境中需要大量的虛擬機實例的話,通常利用openstack等來實現虛擬機節點

Cobbler配置目錄文件說明:

/etc/cobbler

/etc/cobbler/settings # cobbler 主配置文件

/etc/cobbler/iso/ # iso模板配置文件

/etc/cobbler/pxe # pxe模板文件

/etc/cobbler/power # 電源配置文件

/etc/cobbler/user.conf # web服務授權配置文件

/etc/cobbler/users.digest # web訪問的用戶名密碼配置文件

/etc/cobbler/dhcp.template # dhcp服務器的的配置末班

/etc/cobbler/dnsmasq.template # dns服務器的配置模板

/etc/cobbler/tftpd.template # tftp服務的配置模板

/etc/cobbler/modules.conf # 模塊的配置文件

Cobbler數據目錄:

/var/lib/cobbler/config/ # 用於存放distros,system,profiles 等信 息配置文件

/var/lib/cobbler/triggers/ # 用於存放用戶定義的cobbler命令

/var/lib/cobbler/kickstart/ # 默認存放kickstart文件

/var/lib/cobbler/loaders/ # 存放各種引導程序  鏡像目錄

/var/www/cobbler/ks_mirror/ # 導入的發行版系統的所有數據

/var/www/cobbler/images/ # 導入發行版的kernel和initrd鏡像用於 遠程網絡啟動

/var/www/cobbler/repo_mirror/ # yum 倉庫存儲目錄

Cobbler鏡像目錄:

/var/www/cobbler/ks_mirror/ # 導入的發行版系統的所有數據

/var/www/cobbler/images/ # 導入發行版的kernel和initrd鏡像用於遠程網絡啟動

/var/www/cobbler/repo_mirror/ # yum 倉庫存儲目錄

Cobbler日誌目錄:

/var/log/cobbler/installing # 客戶端安裝日誌

/var/log/cobbler/cobbler.log # cobbler日誌

Cobbler命令介紹:

cobbler check # 核對當前設置是否有問題

cobbler list # 列出所有的cobbler元素

cobbler report # 列出元素的詳細信息

cobbler sync # 同步配置到數據目錄,更改配置最好都要執行下

cobbler reposync # 同步yum倉庫

cobbler distro # 查看導入的發行版系統信息

cobbler system # 查看添加的系統信息

cobbler profile # 查看配置信息

/etc/cobbler/settings中重要的參數設置:

default_password_crypted: "$1$gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/"

manage_dhcp:1

manage_tftpd:1

pxe_just_once:1

next_server:< tftp服務器的 IP 地址>

server:

後面會說明Cobbler的安裝和配置。


分享到:


相關文章: