2021-05-12 14:32:11
Cobbler實現無人值守自動安裝系統
1.1 cobber簡介
1.1.1 cobbler說明
- Cobbler是一個Linux伺服器安裝的服務,可以通過網路啟動(PXE)的方式來快速安裝、重灌物理伺服器和虛擬機器,同時還可以管理DHCP,DNS等。
- Cobbler可以使用命令列方式管理,也提供了基於Web的介面管理工具(cobbler-web),還提供了API介面,可以方便二次開發使用。
- Cobbler是較早前的kickstart的升級版,優點是比較容易設定,還自帶web介面比較易於管理。
- Cobbler內建了一個輕量級設定管理系統,但它也支援和其它設定管理系統整合,如Puppet,暫時不支援SaltStack。
1.2 伺服器端部署
1.2.1 系統環境
系統:CentOS 7.4
ip: 外網:10.0.0.202 內網:172.16.1.202
1.2.2 安裝依賴包
yum -y install cobbler cobbler-web dhcp tftp-server pykickstart httpd
1.2.3 修改組態檔
#備份、修改cobbler組態檔
cp /etc/cobbler/settings{,.bak}
sed -i 's/server: 127.0.0.1/server: 172.16.1.202/' /etc/cobbler/settings
sed -i 's/next_server: 127.0.0.1/next_server: 172.16.1.202/' /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 'xzy' '123456'`"#" /etc/cobbler/settings
#即:default_password_crypted: "$1$oldboy$Npg9Pt9k98Mlg0ZeqHAuN1"
# openssl passwd -1 -salt 'xzy' '123456' (以xzy為填充字元)
sed -i 's#yes#no#' /etc/xinetd.d/tftp
1.2.4 啟動服務
systemctl start rsyncd tftp.socket
#開機自啟 enable
systemctl enable rsyncd tftp.socket
systemctl restart httpd
systemctl restart cobblerd.service
1.2.5 檢查
#修改dhcp 組態檔
sed -i.ori 's#192.168.1#172.16.1#g;22d;23d' /etc/cobbler/dhcp.template
#將cobbler/dhcp.template同步到dhcp組態檔
cobbler sync
#檢查 cobbler check
錯誤1 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them
#解決方法:
#網上下載
cobbler get-loaders
#拷貝一份
tar xfP cobbler_load_for_CentOS7.tar.gz
#接下來即可web介面操作
1.3 cobbler-web頁面操作
網址:https://10.0.0.202/cobbler_web/
使用者名稱:cobbler 密碼:cobbler
1.3.1 登入
1.3.2 匯入映象
前提:選擇映象並掛載
mount /dev/cdrom /mnt/
1.3.3 編寫ks.cfg檔案 (Cobbler Kickstart Templates啟動模板)
具體內容見最後:
1.3.4 系統及網路設定
#建立系統systems
#設定操作
1.3.5 檢查及同步
#web 操作大致步驟1234(順序不需一樣)
#至此,部署完成。
1.4 自動化安裝系統
1.4.1 準備工作
- cobbler 伺服器端部署完成
- cobbler web介面設定完成
- VMware 新增空白虛擬機器(記憶體至少兩個G)
1.4.2 同時裝機多台
web介面新增多個“system”(利用mac地址識別)
1.4.3 ks檔案啟動模板
1.4.3.1 CentOS-7-x86_64.cfg
#CentOS7的ks檔案 CentOS-7-x86_64.cfg
# Cobbler for Kickstart Configurator for CentOS 7 by yao zhang
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages
@^minimal
@compat-libraries
@core
@debugging
@development
bash-completion
chrony
dos2unix
kexec-tools
lrzsz
nmap
sysstat
telnet
tree
vim
wget
%end
%post
systemctl disable postfix.service
%end
1.4.3.2 CentOS-6.8-x86_64.cfg
# Cobbler for Kickstart Configurator for CentOS 6.8 by yao zhang
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
$SNIPPET('network_config')
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages
@base
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet
%end
%post --nochroot
$SNIPPET('log_ks_post_nochroot')
%end
%post
$SNIPPET('log_ks_post')
# Start yum configuration
$yum_config_stanza
# End yum configuration
$SNIPPET('post_install_kernel_options')
$SNIPPET('post_install_network_config')
$SNIPPET('func_register_if_enabled')
$SNIPPET('download_config_files')
$SNIPPET('koan_environment')
$SNIPPET('RedHat_register')
$SNIPPET('cobbler_register')
# Enable post-install boot notification
$SNIPPET('post_anamon')
# Start final steps
$SNIPPET('kickstart_done')
# End final steps
%end
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-11/148721.htm
相關文章