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

背景

cobbler簡介

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

cobbler工做原理

基於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 imageweb

cobbler的目錄說明

配置文件目錄 vim

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

數據目錄 windows

/var/lib/cobbler/config/: 用於存放distros,system,profiles 等信息配置文件 
/var/lib/cobbler/triggers/: 用於存放用戶定義的cobbler命令 /var/lib/cobbler/kickstart/: 默認存放kickstart文件 /var/lib/cobbler/loaders/: 存放各類引導程序

鏡像目錄 centos

/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源。ide

# 安裝官方自帶的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檢查當前環境存在的問題。centos7

#執行cobbler check以前要先啓動httpd不然會報錯
systemctl enable httpd
systemctl starthttpd 
cobbler check

未啓動httpd報錯顯示
基於cobbler實現多版本的系統部署
cobbler check提示
基於cobbler實現多版本的系統部署
3.依次修改提示的問題,根據提示更改完成後重啓cobbler
修改/etc/cobbler/settings文件中的server參數的值爲提供cobbler服務的主機相 應的IP地址或主機名 操作系統

vim /etc/cobbler/settings

基於cobbler實現多版本的系統部署
4.修改/etc/cobbler/settings文件中的next_server參數的值爲提供PXE服務的主機 相應的IP地址
基於cobbler實現多版本的系統部署
5.若是當前節點能夠訪問互聯網,執行「cobbler get-loaders」命令便可;不然, 須要安裝syslinux程序包,然後複製/usr/share/syslinux/{pxelinux.0,memu.c32} 等文件至/var/lib/cobbler/loaders/目錄中
基於cobbler實現多版本的系統部署
6.執行「openssl passwd -1 生成密碼,並用其替換/etc/cobbler/settings文件中 default_password_crypted參數的值 (這裏爲了省事密碼設爲了123456)
基於cobbler實現多版本的系統部署
7.在settings文件中查找manage_dhcp 設置字段爲1,使用cobbler管理dhcp
基於cobbler實現多版本的系統部署
8.修改cobbler的dhcp配置模板

vim /etc/cobbler/dhcp.template

基於cobbler實現多版本的系統部署
9.重啓cobbler服務,執行cobbler sync同步

systemctl restart cobblerd
cobbler sync

基於cobbler實現多版本的系統部署
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
基於cobbler實現多版本的系統部署
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

基於cobbler實現多版本的系統部署
12.到這裏爲止基本構建完畢,接下來重啓各類服務

systemctl restart cobblerd
cobbler sync #能夠選擇不一樣步也行
systemctl restart tftp #若是是6系統使用xinetd調用
systemctl restart httpd

驗證端口

ss -tunlp

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

部署驗證

將cobbler主機和2臺空白機器置於同一物理網絡中開啓空白機器等待
基於cobbler實現多版本的系統部署
一臺選擇centos6一臺選擇centos7安裝,(後添加的ks選項也是最小安裝,這裏就不選了,就按照默認選項執行安裝)
開始安裝
基於cobbler實現多版本的系統部署
基於cobbler實現多版本的系統部署
等待安裝完成便可
centos6.9 部署完成
基於cobbler實現多版本的系統部署
基於cobbler實現多版本的系統部署
centos7 部署完成
基於cobbler實現多版本的系統部署

後續

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

基於cobbler實現多版本的系統部署
建立其認證文件/etc/cobbler/users.digest,並添加所需的用戶

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

重啓cobbler服務和httpd
經過https://cobblerserver/cobbler_web訪問
注意:添加第一個用戶時,使用「-c」選項,後續添加其餘用戶時不要再使 用,cobbler_web的realm只能爲Cobbler
基於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實現多版本的系統部署

相關文章
相關標籤/搜索