cobbler介紹
cobbler是Redhat支持的一個開源項目,用來部署和安裝系統。所以對Redhat系列os支持是比較好的。不過對ubuntu支持是非常差的。cobbler裏不少設置,只針對redhat有效,同時也由於不同發行版的安裝是有差異。cobbler感覺好像和ubuntu關係比較緊張.
cobbler不僅僅是一個pxe服務器,他還可以管理dns(bind),dhcp。一般數據中心裏或者生產環境,是不允許dhcp, 但是pxe,必須需要dhcp,所以我們需要根據mac地址來分配IP,這樣dhcp就不會影響到網絡.
目標希望實現
1.自動化安裝:centos和ubuntu
2.採用內網的源:centos會啓用epel的源,ubuntu會把源指向內網。
3.IP,網絡,路由,主機名,FQDN 設置
一:準備OS
Centos 6.4,採用最小化安裝就可以。設置採用默認,設置固定的IP地址。
設置hostname
vi /etc/hosts
172.16.24.170 cobbler.test.com cobbler
關閉selinux
這個需要重啓機器才能生效,所以建議修改完重啓
sed -i '/SELINUX/s/enforcing/disabled/'/etc/selinux/config
關閉iptables
chkconfig iptables off
service iptables stop
二: 安裝cobbler
安裝cobbler相關的包
如果希望cobbler可以管理dhcp,dns,需要把dns和dhcp都安裝在同一臺服務器上。如果你不管理dns,可以不需要安裝bind.
yum -y install cmantftp-server dhcp cobbler cobbler-web bind pykickstart
安裝debmirror
需要用debmirror來下載ubuntu 12.04的源,做本地源.目前debmirrors, 只能使用rpm包安裝, 先裝依賴包
yum -y install ed patchperl perl-Compress-Zlib perl-Cwd perl-Digest-MD5 \
perl-Digest-SHA1perl-LockFile-Simple perl-libwww-perl
下載debmirrors
wgethttp://mirrors.sohu.com/fedora-epel/5Server/i386/debmirror-20090807-1.el5.noarch.rpm
安裝
rpm -ivhdebmirror-20090807-1.el5.noarch.rpm
三、設置cobbler
1、tftp服務和rsync服務
sed -i '/disable/c\\tdisable\t\t\t= no'/etc/xinetd.d/tftp
sed -i -e 's/\=\ yes/\=\ no/g' /etc/xinetd.d/rsync
service xinetd restart
2、web可以登陸
sed -i 's/authn_denyall/authn_configfile/g' /etc/cobbler/modules.conf
3、設置cobbler web登陸,用戶登陸密碼
htdigest /etc/cobbler/users.digest "Cobbler" cobbler
4、設置cobbler登陸服務器地址
sed -i 's/server: 127.0.0.1/server: 172.16.24.170/g' /etc/cobbler/settings
5、ks腳本關閉pxe,這樣就不會重複安裝
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
6、TFTP服務器 IP地址
sed -i 's/next_server: 127.0.0.1/next_server: 172.16.24.170/g'/etc/cobbler/settings
7、cobbler管理rsync
sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
8、cobbler管理dhcp
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
dhcp服務是有cobbler來管理/etc/cobbler/dhcp.template
修改下面的內容就可以,註釋掉 range dynamic-bootp 。不然你內網就會出現一個dhcp服務器
subnet 172.16.24.0 netmask 255.255.255.0 {
option routers 17216.24.1;
option domain-name-servers 172.16.24.12;
option subnet-mask 255.255.255.0;
#range dynamic-bootp 172.16.24.163 172.16.24.164;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 172.16.24.170;
}
9、設置root默認密碼
這個設置只針對centos有效。我默認的root密碼是:root123
# openssl passwd -1 -salt 'random-phrase-here' '123456'
$1$random-p$mzxQ/Sx848sXgvfwJCoZM0
修改/etc/cobbler/settings
#default_password_crypted:"$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
default_password_crypted:"$1$random-p$mzxQ/Sx848sXgvfwJCoZM0"
10、啓動相關服務
chkconfig httpd on
chkconfig cobblerd on
chkconfig named on
chkconfig dhcpd on
/etc/init.d/httpd restart
/etc/init.d/cobblerd restart
/etc/init.d/named restart
11、設置debmirror
sed -i -e 's|@dists=.*|#@dists=|' /etc/debmirror.conf
sed -i -e 's|@arches=.*|#@arches=|' /etc/debmirror.conf
12、啓動菜單
cobbler get-loaders
檢查cobbler
cobbler提供一個工具,檢查你的設置。看到提示,就表示全部工作都已經完成。
對cobbler所有修改,需要
cobbler sync
檢查
cobbler check
No configuration problems found. All systems go.
四:web登陸
https://172.16.24.170/cobbler_web user:cobbler 密碼就是上面設置的。
cobbler的使用,主要是集中在上面幾個菜單裏。這裏簡單解析一下
Distros:這個其實就是發行版,類似Centos,ubuntu,suse。centos6.2和centos6.3,是不同的distros。假設我們導入一個centos6.3的iso,就是增加了一個Distros
Profiles:針對Distros的設置,一個distros,可以保護多個profiles,包括不同的kickstart文件。源的設置,都是在這裏設置。
Systems:針對是每個節點,這裏可以指定節點的ip地址,dns name,還有就是ipmi的用戶名和密碼,實現遠程開機,關機。這是一個重點,日後對機器的操作,全部在sytem的菜單裏操作。system裏,會指定節點使用哪個profile。
Repos:這個主要是針對Redhat和Centos有效,可以管理源,並且這些源,可以在profile裏添加。比較方便。需要注意的是,對於ubuntu的源,只能在kickstart 腳本里指定。
Images:這個我沒用到,看說明主要是針對不能pxe的機器,採用iso啓動。
KicsstartTemplates:這是核心,cobbler內置了幾個ks文件,你如果導入一個centos,系統會默認關聯一個ks文件,你不需要做任何設置,就可以把os自動裝完。對於ubuntu,我們就需要單獨創建一個preseed文件,這些文件可以通過web管理和修改。非常方便。
Snippets:這是cobbler的精華。一些常用的設置,寫成一個模塊,讓ks文件調用。這樣更加靈活。例如centos的網絡固定IP地址的設置,就是通過這裏實現。
五、設置apache根目錄訪問
我們希望直接訪問IP,就可以看到源的目錄,尤其對於ubuntu的源來說,這樣看起來更加規範。
# cat /etc/httpd/conf.d/welcome.conf
<LocationMatch "^/+$">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</LocationMatch>
重啓apache,就可以 http://ip 看到目錄。實際目錄是 /var/www/html/