cobbler工作流分析
官網?http://cobbler.github.io/
介紹
? ? ? Cobbler是一個快速網絡安裝linux的服務,而且在經過調整也可以支持網絡安裝windows。該工具使用python開發,小巧輕便,使用簡單的命令即可完成PXE網絡安裝環境的配置,同時還可以管理DHCP、DNS、TFTP、RSYNC以及yum倉庫、構造系統ISO鏡像。Cobbler通過將DHCP、TFTP、DNS、HTTP等服務進行集成,創建一個中央管理節點,其可以實現的功能有配置服務,創建存儲庫,解壓縮操作系統媒介,代理或集成一個配置管理系統,控制電源管理等。 Cobbler的最終目的是實現無需進行人工干預即可安裝機器。
?
工作流
cobbler為server端,裸機為client端
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地址和port通信,下載引導文件
6)client裸機執行執行該引導文件,確定加載信息,選擇要安裝的os,期間會再向cobbler server請求kickstart文件和os image
7)cobbler server發送請求的kickstart和os iamge
8)client裸機加載kickstart文件
9)client裸機接收os image,安裝該os image
概括來說,Cobbler封裝了DHCP、TFTP、XINTED等服務,結合了PXE、kickstart等安裝方法,最終實現自動化安裝操作系統。它可以同時提供多種版本,以實現在線安裝不同版本的系統。
簡單說明:
Server端 第一步,啟動Cobbler服務; 第二步,進行Cobbler錯誤檢查——執行cobbler check命令; 第三步,進行配置同步——執行cobbler sync命令; 第四步,復制相關啟動文件文件到TFTP目錄中; 第五步,啟動DHCP服務,提供地址分配; 第六步,DHCP服務分配IP地址; 第七步,TFTP傳輸啟動文件; 第八步,Server端接收安裝信息; 第九步,Server端發送ISO鏡像與Kickstart文件;Client端: 第一步,客戶端以PXE模式啟動; 第二步,客戶端獲取IP地址; 第三步,通過TFTP服務器獲取啟動文件; 第四步,進入Cobbler安裝選擇界面; 第五步,客戶端確定加載信息; 第六步,根據配置信息準備安裝系統; 第七步,加載Kickstart文件; 第八步,傳輸系統安裝的其它文件; 第九步,進行安裝系統;?
cobbler各對象的關系:
?
下面介紹cobbler中使用的幾個服務:
- DHCP
? ? ? ?DHCP(Dynamic Host Configure Protocol,動態主機配置協議),用于向網絡中的計算機分配IP地址及一些TCP/ip配置信息。DHCP提供了安全,可靠且簡單的TCP/IP網絡設置,避免了TCP/ip網絡地址的沖突,同時大大降低了工作負擔。
?
- TFTP
? ? ? ?TFTP協議全稱為Trivial File Transfer Protocol。目標是在UDP之上建立一個類似于FTP的但僅支持文件上傳和下載功能的傳輸協議,所以它不包含FTP協議中的目錄操作和用戶權限等內容。
- xinetd
在眾多的linux發行版中都包含了xinetd,全稱eXtended InterNET services daemon,也被稱為超級internet服務器,是inetd的升級版。
在linux中一些不長期使用的服務沒有被作為單獨的守護進程在開機時啟用,linux把這些服務監聽端口全部由一個獨立的進程xinetd集中監聽,當收到相應的客戶端請求之后,xinetd進程就臨時啟動相應服務并把相應端口移交給相應服務,客戶端斷開之后,相應的服務進程結束,xinetd繼續監聽。要開telnet服務器,只需配置xinetd即可。
- PXE
? ? ? ?PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。
PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。
PXE啟動原理: 當計算機引導時,BIOS把 PXE Client 調入內存中執行,然后由 PXE Client 將放置在遠端的文件通過網絡下載到本地運行。
?
PXE工作原理示意圖說明:
1. Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一并傳送給Client。
2. Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之后再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP收到Client發回的同意大小信息之后,正式向Client發送pxelinux.0。
3. Client執行接收到的pxelinux.0文件。
4. Client向TFTP發送針對本機的配置信息(記錄在TFTP的pxelinux.cfg目錄下),TFTP將配置文件發回Client,繼而Client根據配置文件執行后續操作。
5. Client向TFTP發送Linux內核請求信息,TFTP接收到消息之后將內核文件發送給Client。
6. Client向TFTP發送根文件請求信息,TFTP接收到消息之后返回Linux根文件系統。
7. Client啟動Linux內核(啟動參數已經在4中的配置文件中設置好了)。
8. Client通過NFS下載鏡像文件,讀取autoyast自動化安裝腳本。
- KickStart
? ? ? ?KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,并結束安裝。?
我們可以簡單理解為一個自動安裝應答配置管理程序。通過讀取這個配置文件,系統知道怎么去分區,要安裝什么包,配什么IP,優化什么內核參數等等。
其主要有以下部分組成:
Kickstart安裝選項:包含語言的選擇,防火墻,密碼,網絡,分區的設置等;
%Pre部分:安裝前解析的腳本,通常用來生成特殊的ks配置,比如由一段程序決定磁盤分區等;
%Package部分:安裝包的選擇,可以是@core這樣的group的形式,也可以是這樣vim-*包的形式;
%Post部分:安裝后執行的腳本,通常用來做系統的初始化設置。比如啟動的服務,相關的設定等;
大體流程:DHCP(獲取IP,尋找TFTP)>TFTP(交換獲取開機啟動文件)>HTTP(加載安裝文件)>本地安裝
?
參考博客:http://lavenliu.blog.51cto.com/5060944/1629922/
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30212356&id=5739157
?
總結
以上是生活随笔為你收集整理的cobbler工作流分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用CSS让一个容器水平垂直居中?
- 下一篇: centos安装kvm