cobbler是一個再次封裝的PXE。核心概念:
Distribution:每一個distrbution是一個倉庫,是一個可安裝的發行版。具體如何安裝需要其它組件定義。每個distribution都會依賴一個Repository纔可以完成安裝。distribution用來定義每個發行版的內核以及initrd的文件,來確定安裝那個發行版的操作系統。內核啓動後需要到repository中獲取系統安裝過程中的各個文件。
Repository:yum倉庫,是distribution啓動後必須要指定倉庫的組件。
Profile: 每個profile包含了 distribution , kickstart file , repositories。
distrbution : profile需要指明這個profile是爲那個distribution定義的。
repositories : 用來定義客戶端啓動引導時需要的內核,ramdisk等。只是啓動用到不是安裝時的內核。
kickstart file:自動應答文件。
System : 對profile再次抽象,爲某個操作系統配置IP,MAC。它已具體到節點的配置了。
Image:如是虛擬環境,system可以直接指定image映像文件,下載後直接啓動就可以了。這時repository只是一個yum倉庫,因爲虛擬系統不需要安裝。
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