簡介linux
Cobbler是一個Linux服務器安裝的服務,能夠經過網絡啓動(PXE)的方式來快速安裝、重裝物理服務器和虛擬機,同時還能夠管理DHCP,DNS等。ios
Cobbler能夠使用命令行方式管理,也提供了基於Web的界面管理工具(cobbler-web),還提供了API接口,能夠方便二次開發使用。git
Cobbler是較早前的kickstart的升級版,優勢是比較容易配置,還自帶web界面比較易於管理。github
Cobbler內置了一個輕量級配置管理系統,但它也支持和其它配置管理系統集成,如Puppet,暫時不支持SaltStack。web
kickstart基本原理拓撲圖vim
cobbler和kickstart原理是一致的,只是我的認爲cobbler比較好用瀏覽器
搭建bash
直接給命令了,紅字(不包括前邊的#,#只是表明命令行)服務器
環境準備網絡
系統版本CentOS7.2
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
關閉selinux
# getenforce
Disabled
關閉防火牆
# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
# hostname -I #本機IP地址
192.168.110.18
yum源
# curl -o /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
使用yum安裝cobbler
# yum -y install cobbler cobbler-web dhcp tftp-serverpykickstart httpd
啓動http和cobbler
# systemctl start httpd.service
# systemctl start cobblerd.service
# cobbler check
出現8個錯,英文的讓你修改配置
# cp /etc/cobbler/settings{,.ori}
# sed -i 's/server: 127.0.0.1/server: 192.168.110.18/'/etc/cobbler/settings
# sed -i 's/next_server: 127.0.0.1/next_server: 192.168.110.18/'/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 #修改dhcp模板
# sed -ri "/default_password_crypted/s#(.*:).*#\1\" `openssl passwd -1 -salt cobbler '123456'` \"#"/etc/cobbler/settings ###123456是root密碼
# sed -i 's#yes#no#' /etc/xinetd.d/tftp
# vim /etc/cobbler/dhcp.template
subnet 192.168.110.0 netmask 255.255.255.0 {
optionrouters 192.168.110.1; #網關
optionsubnet-mask 255.255.255.0; #子網掩碼
rangedynamic-bootp 192.168.110.33 192.168.110.99; ##自動分配的ip段
default-lease-time 21600;
max-lease-time 43200;
:wq #改完了保存退出
重啓
# systemctl restart rsyncd tftp.socket cobblerd
# systemctl enable rsyncd tftp.socket cobblerd
# systemctl start rsyncd.service
# systemctl enable rsyncd.service
同步 (每次改完配置都要同步)
# cobbler sync
# cobbler get-loaders
# ls /var/lib/cobbler/loaders
COPYING.elilo elilo-ia64.efi menu.c32 yaboot
COPYING.syslinux grub-x86_64.efi pxelinux.0
COPYING.yaboot grub-x86.efi README
debian相關無需修改(不用debian就不須要管了)
再次檢查
# cobbler check
The following are potential configurationitems that you may want to fix:
1 : debmirror package is not installed, itwill be required to manage debian deployments and repositories
2 : fencing tools were not found, and arerequired to use the (optional) power management features. install cman orfence-agents to use them
Restart cobblerd and then run 'cobblersync' to apply changes.
重啓全部服務
systemctl restart httpd cobblerd dhcpd rsyncdtftp.socket
cobbler安裝完成,下面進行web界面的操做。
瀏覽器訪問https://192.168.110.18/cobbler_web
注意CentOS7中cobbler只支持https訪問。
帳號密碼默認均爲cobbler
操做說明--導入鏡像
在虛擬機上添加上鏡像
vmware:
# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected,mounting read-only
# df -h |grep mnt
/dev/sr0 4.3G 4.3G 0 100% /mnt
選擇ImportDVD 輸入Prefix(命名),Arch(架構),Breed(版本),Path(鏡像的路徑)
# ls /var/www/cobbler/ks_mirror/
CentOS7x86_64 config
導入過程使用rsync進行導入,三個進程消失表示導入完畢
# ps -ef |greprsync
注意:虛擬機的內存不能小於2G,網卡的配置要保證網絡互通
啓動虛擬機
啓動虛擬機便可發現會有cobbler的選擇界面
此界面修改
# more /etc/cobbler/pxe/pxedefault.template
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | http://cobbler.github.io/
TIMEOUT 100
TOTALTIMEOUT 6000
ONTIMEOUT $pxe_timeout_profile
MENU DEFAULT
$pxe_menu_items
LABEL local
MENU LABEL(local)
LOCALBOOT -1
MENU end
定製化安裝操做系統
添加內核參數
查看導入的鏡像,點擊edit
在內核參數中添加net.ifnames=0biosdevname=0
可以讓顯示的網卡變爲eth0 ,而不是CentOS7中的ens33
編寫ks文件
參考
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 2048
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
lsof
net-tools
%end
%post
systemctl disable postfix.service
%end
路徑爲/var/lib/cobbler/kickstarts/
小技巧:若是想定義開機執行命令在倒數第二行添加
設置profile
選擇剛纔建立的cfg文件
自定義安裝系統
選擇systems 建立一個新的系統
以上的全部配置完成後,點擊Save進行保存
開啓虛擬機
回車~
一鍵裝機到此結束