補鞋匠(cobbler)的修仙之旅

一、築基期---cobbler簡介

Cobbler是一個開源的系統部署軟件,基於PXE的二次封裝,並集成了DNS,DHCP,軟件包更新,電源管理以及配置管理編排等功能;實現快速網絡安裝操作系統。

二、開光期---部署

系統版本:centos 7 x86_64
Cobble版本:cobble.2.8.4

2.1、環境準備

Cobbler的RPM文件在Fedora EPEL源中
安裝epel源

yum install epel-release.noarch

安裝cobbler等軟件

yum  install cobbler cobbler-web dhcp tftp-server pykickstart httpd

關閉防火牆與selinux

systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 
reboot

添加開機啓動並啓動

systemctl enable cobblerd.service
systemctl enable httpd.service
systemctl start cobblerd.service 
systemctl start httpd.service

檢查環境

cobbler check

補鞋匠(cobbler)的修仙之旅

2.2、根據提示步驟操作

修改/etc/cobbler/settings 中的server值爲cobbler服務器地址
補鞋匠(cobbler)的修仙之旅

修改etc/cobbler/settings 中的next_server值爲PXE-server/DHCP-server的地址
補鞋匠(cobbler)的修仙之旅

準備引導文件

cobbler get-loaders

設置在kickstart期間爲新系統設置的root密碼。
生成加密密碼:111111 $1$YR4j5LKJ$VZ8XrLSovC4qZQaVG9WGT.

openssl passwd -1

修改/etc/cobbler/settings 中的default_password_crypted值爲加密密碼
補鞋匠(cobbler)的修仙之旅

使用cobble管理DHCP服務器,將/etc/cobbler/settings 中的manage_dhcp的值設置爲1,cobbler將根據cobbler附帶的dhcp.template生成dhcpd.conf文件
補鞋匠(cobbler)的修仙之旅

修改DHCP模板文件,/etc/cobbler/dhcp.template 中的網段信息
補鞋匠(cobbler)的修仙之旅

啓動rsyncd

systemctl start rsyncd

在/etc/xinetd.d/tftp中將'disable'更改爲'no'
補鞋匠(cobbler)的修仙之旅

2.3、重啓cobbler,並同步

systemctl restart cobblerd.service 
cobbler sync

補鞋匠(cobbler)的修仙之旅

2.4、掛載鏡像,並導入

mount -o loop -t iso9660 /dev/sr0 /media
cobbler import --name=centos-7 --path=/media --arch=x86_64

補鞋匠(cobbler)的修仙之旅
umount /media

2.5、準備ks文件

使用 system-config-kickstart自定義ks文件

yum install system-config-kickstart

system-config-kickstart在桌面環境下配置ks文件
安裝GNOME

yum groupinstall "X Window System"

命令行啓動桌面

startx

命令行啓動

system-config-kickstart

2.5.1、 設置語言,鍵盤,時區,Root密碼,安裝完畢後重啓

補鞋匠(cobbler)的修仙之旅

2.5.2、 設置安裝方式,選擇安裝,cobbler使用HTTP方式,選擇HTTP,填寫地址以及鏡像目錄

補鞋匠(cobbler)的修仙之旅

2.5.3、選擇安裝MBR

補鞋匠(cobbler)的修仙之旅

2.5.4、分區

補鞋匠(cobbler)的修仙之旅

2.5.5、配置網絡,選擇BOOTP方式,將安裝系統時獲取的IP的配置到系統中

補鞋匠(cobbler)的修仙之旅

2.5.6、關閉selinux和防火牆

補鞋匠(cobbler)的修仙之旅

2.5.7、關閉桌面

補鞋匠(cobbler)的修仙之旅

2.5.8、保存ks文件

補鞋匠(cobbler)的修仙之旅

2.5.9、命令行修改,加入package selection

install
keyboard 'us'
rootpw --iscrypted $1$gQGu0rtQ$zsLfgley77DRagCu/21VF1
url --url="http://192.168.118.141/cobbler/ks_mirror/centos-7-x86_64/"
lang en_US
auth  --useshadow  --passalgo=sha512
graphical
selinux --disabled
skipx
firewall --disabled
network  --bootproto=bootp --device=eth0
reboot
timezone --utc Asia/Shanghai
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=512
part / --fstype="xfs" --size=8192
part swap --fstype="swap" --size=1024
**%packages 
@base**
%end

2.5.10、更多kickstart文件相關

redhat-kickstart文件 命令與參數相關

2.6、cobbler添加ks文件

mv /root/ks.cfg /var/lib/cobbler/kickstarts/centos7-base.cfg
cobbler profile add --name=centos7-base --distro=centos-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-base.cfg

驗證

cobbler profile list

補鞋匠(cobbler)的修仙之旅

2.7、重啓cobbler

systemctl restart cobblerd.service
systemctl restart tftp.socket 

三、融合期---安裝驗證

準備,關閉虛擬機dhcp,創建兩臺虛擬機與cobbler主機同網絡
開機,獲取到IP 192.168.118.200
補鞋匠(cobbler)的修仙之旅
補鞋匠(cobbler)的修仙之旅

Login 成功,獲取IP 192.168.118.200
補鞋匠(cobbler)的修仙之旅

四、心動期之cobbler的web管理界面

4.1、配置cobbler_web認證

配置文件:/etc/cobbler/modules.conf
補鞋匠(cobbler)的修仙之旅
有多種認證方式可供選擇
我這裏使用默認的authn_configfile 方式

4.1.1、創建認證文件/etc/cobbler/users.digest,初次創建新用戶使用-c參數

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

4.1.2、cobbler同步

cobbler sync

4.1.3、重啓服務

systemctl restart httpd.service
systemctl restart cobblerd.service

4.1.4、訪問頁面(cobbler-web僅支持https訪問)

https://192.168.118.150/cobbler_web
補鞋匠(cobbler)的修仙之旅

使用默認賬號 cobbler cobbler登陸或是新創建的賬號登陸web界面
補鞋匠(cobbler)的修仙之旅

五、金丹期---問題彙總

5.1、許可證bug

補鞋匠(cobbler)的修仙之旅

Centos 官方 bug編號:0007177 https://bugs.centos.org/view.php?id=7177
bug原因:配置kickstart文件時,我們安裝了GNOME界面,重啓系統後,顯示初始設置屏幕,要求接受許可證,顯然centos系統不應該提示這個

處理1:關閉初始化設置

systemctl disable initial-setup-graphical.service

處理2:爲避免後續安裝系統出現問題,在ks文件中加入

# missing systemctl disable initial-setup.service
# https://bugzilla.redhat.com/show_bug.cgi?id=1213114
# https://bugzilla.redhat.com/show_bug.cgi?id=968582
systemctl disable initial-setup-graphical.service

5.2、cobbler_web-403錯誤

補鞋匠(cobbler)的修仙之旅
日誌報錯:/var/log/httpd/error_log

補鞋匠(cobbler)的修仙之旅
需要ssl訪問,使用https訪問:/var/log/httpd/ssl_error_log
補鞋匠(cobbler)的修仙之旅

日誌報錯,ssl證書出現問題
處理:重裝cobbler

5.3、cobbler_web internal server error

補鞋匠(cobbler)的修仙之旅

檢查selinux,防火牆,以及httpd錯誤日誌 /var/log/httpd/ssl_error_log
補鞋匠(cobbler)的修仙之旅

日誌提示:導入模塊失敗,django支持問題
處理:

5.3.1、安裝pip

yum install python2-pip

5.3.2、安裝django

目前django的穩定支持版爲1.8版本

pip install Django==1.8.11

5.3.3、重啓httpd

systemctl restart httpd

5.4、安裝過程報錯:write error:no space left on device

報錯:/sbin/dmsquash-live-root:line 273:printf:write error:no space left on device
補鞋匠(cobbler)的修仙之旅

原因:虛擬機內存不到2G

六、元嬰期---cobbler-web界面深度配置ks文件

6.1、掛載鏡像

掛載鏡像

mount -o loop -t iso9660 /dev/sr0 /media

6.2、導入鏡像

補鞋匠(cobbler)的修仙之旅

日誌顯示導入鏡像正在進行中(running),狀態變爲complete表示導入結束
補鞋匠(cobbler)的修仙之旅

6.3、修改網卡名稱

補鞋匠(cobbler)的修仙之旅

在內核參數添加net.ifnames=0 biosdevname=0
補鞋匠(cobbler)的修仙之旅

6.4、創建ks文件

補鞋匠(cobbler)的修仙之旅
補鞋匠(cobbler)的修仙之旅

6.5、根據MAC地址定製系統

在融合期時代,需要手動選擇要安裝的系統,現在,可以根據MAC地址定製系統;
根據指定的MAC地址安裝指定的系統,並且可以提前配置全局網絡,網卡等信息
補鞋匠(cobbler)的修仙之旅

七、出竅期---快速部署


cobbler_server="192.168.118.100"
cobbler_net="192.168.118"

[ -x /usr/bin/yum ] && yum -y install epel-release.noarch &> /dev/null
if [ $? -eq 0  ];then
    yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd &> /dev/null 
fi

systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 

systemctl enable cobblerd.service
systemctl enable httpd.service
systemctl enable rsyncd
systemctl enable tftp.socket

sed -i 's/server: 127.0.0.1/server: ${cobbler_server}/' /etc/cobbler/settings
sed -i 's/next_server: 127.0.0.1/next_server: ${cobbler_server}/' /etc/cobbler/settings
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/' /etc/cobbler/settings
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
sed -ri "/default_password_crypted/s#(.*: ).*#\1\"`openssl passwd -1 -salt 'admin' '111111'`\"#" /etc/cobbler/settings
sed -i 's#yes#no#' /etc/xinetd.d/tftp
sed -i.ori 's#192.168.1#${cobbler_net}#g;22d;23d' /etc/cobbler/dhcp.template

systemctl start httpd.service
systemctl start cobblerd.service  
systemctl start rsyncd.service 
systemctl start tftp.socket

八、大神期---參考文章

https://blog.oldboyedu.com/autoinstall-cobbler/
https://www.zyops.com/autoinstall-cobbler/
http://cobbler.github.io/manuals/2.8.0/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章