Cobbler是一個開源的系統部署軟件,基於PXE的二次封裝,並集成了DNS,DHCP,軟件包更新,電源管理以及配置管理編排等功能;實現快速網絡安裝操做系統。php
系統版本:centos 7 x86_64
Cobble版本:cobble.2.8.4html
Cobbler的RPM文件在Fedora EPEL源中
安裝epel源python
yum install epel-release.noarch
安裝cobbler等軟件linux
yum install cobbler cobbler-web dhcp tftp-server pykickstart httpd
關閉防火牆與selinuxios
systemctl stop firewalld.service systemctl disable firewalld.service sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config reboot
添加開機啓動並啓動git
systemctl enable cobblerd.service systemctl enable httpd.service systemctl start cobblerd.service systemctl start httpd.service
檢查環境github
cobbler check
修改/etc/cobbler/settings 中的server值爲cobbler服務器地址web
修改etc/cobbler/settings 中的next_server值爲PXE-server/DHCP-server的地址django
準備引導文件centos
cobbler get-loaders
設置在kickstart期間爲新系統設置的root密碼。
生成加密密碼:111111 $1$YR4j5LKJ$VZ8XrLSovC4qZQaVG9WGT.
openssl passwd -1
修改/etc/cobbler/settings 中的default_password_crypted值爲加密密碼
使用cobble管理DHCP服務器,將/etc/cobbler/settings 中的manage_dhcp的值設置爲1,cobbler將根據cobbler附帶的dhcp.template生成dhcpd.conf文件
修改DHCP模板文件,/etc/cobbler/dhcp.template 中的網段信息
啓動rsyncd
systemctl start rsyncd
在/etc/xinetd.d/tftp中將'disable'更改成'no'
systemctl restart cobblerd.service cobbler sync
mount -o loop -t iso9660 /dev/sr0 /media cobbler import --name=centos-7 --path=/media --arch=x86_64
umount /media
使用 system-config-kickstart自定義ks文件
yum install system-config-kickstart
system-config-kickstart在桌面環境下配置ks文件
安裝GNOME
yum groupinstall "X Window System"
命令行啓動桌面
startx
命令行啓動
system-config-kickstart
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
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
systemctl restart cobblerd.service systemctl restart tftp.socket
準備,關閉虛擬機dhcp,建立兩臺虛擬機與cobbler主機同網絡
開機,獲取到IP 192.168.118.200
Login 成功,獲取IP 192.168.118.200
配置文件:/etc/cobbler/modules.conf
有多種認證方式可供選擇
我這裏使用默認的authn_configfile 方式
htdigest -c /etc/cobbler/users.digest "Cobbler" admin
cobbler sync
systemctl restart httpd.service systemctl restart cobblerd.service
https://192.168.118.150/cobbler_web
使用默認帳號 cobbler cobbler登錄或是新建立的帳號登錄web界面
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
日誌報錯:/var/log/httpd/error_log
須要ssl訪問,使用https訪問:/var/log/httpd/ssl_error_log
日誌報錯,ssl證書出現問題
處理:重裝cobbler
檢查selinux,防火牆,以及httpd錯誤日誌 /var/log/httpd/ssl_error_log
日誌提示:導入模塊失敗,django支持問題
處理:
yum install python2-pip
目前django的穩定支持版爲1.8版本
pip install Django==1.8.11
systemctl restart httpd
報錯:/sbin/dmsquash-live-root:line 273:printf:write error:no space left on device
緣由:虛擬機內存不到2G
掛載鏡像
mount -o loop -t iso9660 /dev/sr0 /media
日誌顯示導入鏡像正在進行中(running),狀態變爲complete表示導入結束
在內核參數添加net.ifnames=0 biosdevname=0
在融合期時代,須要手動選擇要安裝的系統,如今,能夠根據MAC地址定製系統;
根據指定的MAC地址安裝指定的系統,而且能夠提早配置全局網絡,網卡等信息
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/