cobbler是一個再次封裝的PXE。核心概念:python
Distribution:每個distrbution是一個倉庫,是一個可安裝的發行版。具體如何安裝須要其它組件定義。每一個distribution都會依賴一個Repository才能夠完成安裝。distribution用來定義每一個發行版的內核以及initrd的文件,來肯定安裝那個發行版的操做系統。內核啓動後須要到repository中獲取系統安裝過程當中的各個文件。linux
Repository:yum倉庫,是distribution啓動後必需要指定倉庫的組件。web
Profile: 每一個profile包含了 distribution , kickstart file , repositories。vim
distrbution : profile須要指明這個profile是爲那個distribution定義的。centos
repositories : 用來定義客戶端啓動引導時須要的內核,ramdisk等。只是啓動用到不是安裝時的內核。服務器
kickstart file:自動應答文件。網絡
System : 對profile再次抽象,爲某個操做系統配置IP,MAC。它已具體到節點的配置了。app
Image:如是虛擬環境,system能夠直接指定image映像文件,下載後直接啓動就能夠了。這時repository只是一個yum倉庫,由於虛擬系統不須要安裝。ide
system 和 image 並不是必須的組件工具
cobbler 運行中依賴的服務:
TFTP:用來存儲網絡引導時的 kernel 和 ramdisk
rsync:repository能夠從光盤導入。也能夠向互聯網同步文件到repository。rsync是同步文件時用到的工具。
dhcp:用來爲啓動後的客戶機分配ip,指定next-server。
dns:用來識別每一個主機的主機名會用到,但非必須。
安裝配置
cobbler位於epel源中
# yum list cobbler*
# yum install cobbler
cobbler依賴http服務,須要啓動,在安裝完成後會生成一個/var/www/cobbler目錄,內部分別用來存儲:
images:映像文件的存儲位置
aux:輔助文件存儲位置。
ks_mirror:各個自動應答文件的存儲位置,與每一個distrbution相對應。
repo_mirror:各個yum 倉庫的映射
# service httpd start
# service cobblerd start
# ss -tnll 監聽於25151說明已啓動成功
# cobbler --help 獲取cobbler命令的使用幫助
# cobbler check 檢查cobbler環境,須要所有解決才能夠,但有一些能夠忽略。
# vim /etc/cobbler/settings
service: 172.16.2.16
next_server: 172.16.2.16 指向tfpt服務器的地址
# openssl passwd -1 -salt `openssl rand -hex 4` 生成密碼,
# vim /etc/cobbler/settings 用生的密鑰把默認的密鑰替換掉
default_password_crypted: "$1$72b74cfb$nL62A3vP.zXDJr5YZyYD/."
# yum -y install fence-agents
# yum -y install pykickstart
# chkconfig rsync on
# service xinetd restart
# cp -r /usr/share/syslinux/* /var/lib/cobbler/loaders/
# cobbler sync
# service cobblerd restart
# cobbler sync
配置cobbler所依賴的服務
dhcp: 使用dhcp包或dnsmasq
dns:使用bind或dnsmasq
rsync:使用xinetd管理
tftp:使用tftp-server或都cobbler自帶的tftp
dnsmasq : 能夠提供dhcp 和dns 功能,通常用在嵌入環境中。
1,選定要使用的程序
2,肯定是獨立管理這些服務,仍是由cobbler代爲管理。
這裏沒有使用cobbler管理這些服務。
cobbler組件:
distro:可使用distro命令或import命令實現
cobbler上distro能夠有多個,同一個distro之上能夠定義多個profile,每一個profile使用kickstart文件。
# mount /dev/cdrom /mnt
# cobbler import --path=/mnt --name=centos-6.5-x86_64
導入過程是把光盤上的內容複製到/var/www/cobbler/ks_mirror/目錄下與name同名的目錄。這個目錄下就是一個yum源。
# cobbler distro list 查看已導入的源
# wget -P /tmp http://172.16.0.1/centos6.x86_64.cfg 下載一個自動應答文件
# ksvalidator centos6.x86_64.cfg 檢查自動應答文件是否有語法錯誤,若是有錯誤須要修改。若是自動安裝時有錯誤還須要返回來修改。
# cobbler profile add --help 獲取幫助
# cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos6.x86_64.cfg 添加一個profile名字叫centos-6.5-x86_64-basic , 爲centos-6.5-x86_64這個distro添加,自動應答文件是/tmp/centos6.x86_64.cfg,
# cobbler profile list 查看剛建立的profile
# cobbler sync 把上面的配置同步一下。
修改profile的命令: cobbler profile edit --name=<被修改的profile> --distro=<基於那個distrbution> --kickstart=<應答文件>
修改完成後須要執行 cobbler sync 同步。cobbler sync 就是把建立或修改後的配置寫入到/var/lib/tfptboot/pxelinux.cfg/default 。 這個文件的內容以下:與grub的配置文件類似。
=======================================
DEFAULT menu
PROMPT 0
MENU TITLE Cobbler | http://www.cobblerd.org/
TIMEOUT 200
TOTALTIMEOUT 6000
ONTIMEOUT local
LABEL local 默認從本地硬盤引導
MENU LABEL (local)
MENU DEFAULT
LOCALBOOT -1
LABEL centos-6.5-x86_64
kernel /images/centos-6.5-x86_64/vmlinuz
MENU LABEL centos-6.5-x86_64
append initrd=/images/centos-6.5-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://172.16.2.14/cblr/svc/op/ks/profile/centos-6.5-x86_64
ipappend 2
LABEL centos-6.5-x86_64-basic 這裏是上面建立的profile
kernel /images/centos-6.5-x86_64/vmlinuz
MENU LABEL centos-6.5-x86_64-basic
append initrd=/images/centos-6.5-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://172.16.2.14/cblr/svc/op/ks/profile/centos-6.5-x86_64-basic 自動應答文件的位置
ipappend 2
MENU en
=======================================
cobbler web配置與用法
# yum install cobbler-web 因爲使用的pythone研發,因此安裝了Django。鏈接使用HTTPS因此安裝了mod_ssl模塊
# cd /etc/cobbler/
# vim modules.conf
[authentication]
module = authn_pam 修改使用pam認證
# useradd cbradmin 添加用戶
# passwd cbradmin 用戶的密碼
# vim users.conf
[admins]
admin = "cobbler"
cobbler = ""
# service cobblerd restart
# service httpd restart
使用http協議訪問。後加上路徑/cobbler_web