1. 程式人生 > >基於cobbler實現多版本的系統部署

基於cobbler實現多版本的系統部署

cobbler

背景

cobbler簡介

  Cobbler:是快速網絡安裝linux操作系統的服務,支持眾多的Linux發行版:Red Hat、 Fedora、CentOS、Debian、Ubuntu和SuSE,也可以支持網絡安裝windows。cobbler是PXE的二次封裝,將多種安裝參數封裝到一個菜單 。
  cobbler是由Python編寫並且提供了CLI和Web的管理形式,相對於pxe來說大量機械性工作被程序替代,整個部署流程來說簡潔明了,個人操作操作導致的無法正常部署系統的概率有了明顯的降低。

cobbler工作原理

技術分享圖片
工作流程:
  1.client配置了網絡啟動之後(現在大多數主機默認支持無需手動設置),開機後會廣播報文請求DHCP服務器(cobbler serveer)提供一個ip地址。

  2.DHCP服務器(cobbler server)收到請求之後會發送response,包括為其分配的IP地址。
  3.client在得到IP地址之後再次向cobbler服務器發送請求OS引導文件的請求。
  4.cobbler server告訴client機器OS引導文件的名字和TFTP server的IP和端口。
  5.client用過得到的IP和端口,進行訪問TFTP server,請求下載引導文件。
  6.client執行提供的引導文件,確定其加載的信息,選擇要安裝的os,期間會再次向cobbler server發送請求kickstart文件和os image文件。
  7.cobbler server 發送client請求的kickstart和OS image文件。
  8.client 加載kickstart文件。
  9.client接收os image,安裝os image

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 : 模塊的配置文件

數據目錄

/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 倉庫存儲目錄 

日誌目錄

/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 查看配置信息

服務搭建

1.安裝cobbler,設置開機啟動,啟動服務,cobbler依賴於epel源,因此在安裝之前要先配置epel源。

# 安裝官方自帶的epel源,不過速度比較慢
yum install epel-release -y 
# 安裝cobbler
yum install cobbler -y
systemctl enable cobblerd
systemctl start cobblerd
#安裝dhcp
yum install dhcp -y

2.執行cobbler check檢查當前環境存在的問題。

#執行cobbler check之前要先啟動httpd否則會報錯
systemctl enable httpd
systemctl starthttpd 
cobbler check

未啟動httpd報錯顯示
技術分享圖片
cobbler check提示
技術分享圖片
3.依次修改提示的問題,根據提示更改完成後重啟cobbler
修改/etc/cobbler/settings文件中的server參數的值為提供cobbler服務的主機相 應的IP地址或主機名

vim /etc/cobbler/settings

技術分享圖片
4.修改/etc/cobbler/settings文件中的next_server參數的值為提供PXE服務的主機 相應的IP地址
技術分享圖片
5.如果當前節點可以訪問互聯網,執行“cobbler get-loaders”命令即可;否則, 需要安裝syslinux程序包,而後復制/usr/share/syslinux/{pxelinux.0,memu.c32} 等文件至/var/lib/cobbler/loaders/目錄中
技術分享圖片
6.執行“openssl passwd -1 生成密碼,並用其替換/etc/cobbler/settings文件中 default_password_crypted參數的值 (這裏為了省事密碼設為了123456)
技術分享圖片
7.在settings文件中查找manage_dhcp 設置字段為1,使用cobbler管理dhcp
技術分享圖片
8.修改cobbler的dhcp配置模板

vim /etc/cobbler/dhcp.template

技術分享圖片
9.重啟cobbler服務,執行cobbler sync同步

systemctl restart cobblerd
cobbler sync

技術分享圖片
10.導入包環境

#掛載光盤到media
mount /dev/sr0 /media
cobbler import --name=centos-7.5-x86_64 --path=/media --arch=x86_64
umount /dev/sr0
#更換6.9系統之後再次掛載
mount /dev/sr0 /media
cobbler import --name=centos-6.9-x86_64 --path=/media --arch=x86_64

這裏的i386只是個空的菜單,cobbler默認是最小化安裝,它的模板文件在/var/lib/cobbler/kickstarts/sample_end.ks
技術分享圖片
11.如果想使用自己定義的ks文件也可以將文件放入/var/lib/cobbler/kickstarts/目錄下之後使用指令添加(要註意自定義的ks文件中http路徑要改了$tree繼承cobbler的路徑即可)

cp centos6-mini.cfg centos7-mini.cfg /var/lib/cobbler/kickstarts/
#這裏的ks文件是之前生成的這裏僅僅做添加演示
cobbler profile add --name=centos6.9-mini --distro=centos-6.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos6-mini.cfg
cobbler profile add --name=centos7.5-mini --distro=centos-7.5-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-mini.cfg
#驗證
cobbler profile list

技術分享圖片
12.到這裏為止基本構建完畢,接下來重啟各種服務

systemctl restart cobblerd
cobbler sync #可以選擇不同步也行
systemctl restart tftp #如果是6系統使用xinetd調用
systemctl restart httpd

驗證端口

ss -tunlp

技術分享圖片

部署驗證

將cobbler主機和2臺空白機器置於同一物理網絡中開啟空白機器等待
技術分享圖片
一臺選擇centos6一臺選擇centos7安裝,(後添加的ks選項也是最小安裝,這裏就不選了,就按照默認選項執行安裝)
開始安裝
技術分享圖片
技術分享圖片
等待安裝完成即可
centos6.9 部署完成
技術分享圖片
技術分享圖片
centos7 部署完成
技術分享圖片

後續

cobbler還提供了web管理界面

安裝web界面

yum install cobbler-web

認證方式
認證方法配置文件:/etc/cobbler/modules.conf
支持多種認證方法:

authn_configfile 
authn_pam 

使用authn_configfile模塊認證cobbler_web用戶

vim /etc/cobbler/modules.conf    
[authentication]   
module=authn_configfile 

技術分享圖片
創建其認證文件/etc/cobbler/users.digest,並添加所需的用戶

htdigest -c /etc/cobbler/users.digest Cobbler admin    

重啟cobbler服務和httpd
通過https://cobblerserver/cobbler_web訪問
註意:添加第一個用戶時,使用“-c”選項,後續添加其他用戶時不要再使 用,cobbler_web的realm只能為Cobbler
技術分享圖片

使用authn_pam模塊認證cobbler_web用戶

vim /etc/cobbler/modules.conf    
[authentication]     
module = authn_pam 

創建cobbler用戶:

useradd cobbler 
echo 123 | passwd --stdin cobbler
vim  /etc/cobbler/users.conf    
[admins]  
admin = "cobbler“ 

Web訪問cobbler
重啟cobblerd服務
通過https://cobblerserver/cobbler_web訪問
技術分享圖片

基於cobbler實現多版本的系統部署