基於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地址。
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文件。
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實現多版本的系統部署