從作業系統的自動化部署、到系統内的賬戶、軟體、服務、檔案、任務等資源的自動化部署管理,用nagios進行自動化監控報警。全過程加起來就可以說是半自動化運維了。自動化運維最基本的還是标準化,流程化。首先這些要做好。
本文從作業系統的自動化部署開始
環境:Centos 5.9 -X86_64,最小化安裝。
參考https://github.com/cobbler/cobbler/wiki
1.安裝cobbler。
預設yum源是沒有cobbler的,先安裝epel5
Epel5源很多以搜狐的為例
rpm -ivh http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm
然後安裝
yum -y install cobbler httpd rsynctftp-server xinetd dhcp python-ctypes cman pykickstart cobbler-web
cobbler-web是圖形化的管理,可以不裝。
2 安裝完後 cobbler的所有配置檔案模闆檔案都在/etc/cobbler下,修改/etc/cobbler/settings
sed -i 's/pxe_just_once: 0/pxe_just_once:1/g' /etc/cobbler/settings #設定隻PXE啟動1次
sed -i 's/server: 127.0.0.1/server:192.168.xx.20/g' /etc/cobbler/settings#設定cobbler監聽位址
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g'/etc/cobbler/settings #管理DhCP
sed -i 's/manage_rsync: 0/manage_rsync:1/g' /etc/cobbler/settings #管理rsync
sed -i '/disable/c\\tdisable\t\t\t= no'/etc/xinetd.d/tftp #啟用tftp
sed -i 's/next_server:127.0.0.1/next_server: 192.168.xx.20/g' /etc/cobbler/settings 設定tftp位址
sed -i 's/\=\ yes/\=\ no/g' /etc/xinetd.d/rsync #啟用rsync
sed -i 's@#LoadModule@LoadModule@g' /etc/httpd/conf.d/wsgi.conf#在apache中啟用wsgi子產品
執行 openssl passwd -1 -salt 'this is random chart' 'skybug'
得到 $1$random-p$JneCeDar3mzdRxTjLKati0
将加密後的密碼拷貝到settings
vim /etc/cobbler/settings
grep default_password_crypted /etc/cobbler/settings#修改為如下配置
default_password_crypted:"$1$random-p$JneCeDar3mzdRxTjLKati0
配置dhcp模闆 /etc/cobbler/dhcp_templates
按照自己的需要把如下部分修改其他不變
subnet 192.168.48.0 netmask 255.255.252.0 {
option routers 192.168.xx.254;
option domain-name-servers 192.168.xx.20;
option subnet-mask 255.255.252.0;
range dynamic-bootp 192.168.49.30 192.168.49.254;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
,Bind如果需要用cobbler管理的話也在/etc/cobbler/目錄下有named的模闆和zone的模闆。由于實際環境中dns有諸多其他要求,這裡DNS沒有用cobbler管理,直接手動配置
named.conf和zone檔案。
注冊服務啟動服務
/sbin/chkconfig httpd on
/sbin/chkconfig dhcpd on
/sbin/chkconfig xinetd on
/sbin/chkconfig tftp on
/sbin/chkconfig cobblerd on
/sbin/service httpd start
/sbin/service dhcpd start
/sbin/service xinetd start
/sbin/service cobblerd start
下載下傳引導菜單
cobbler get-loaders
檢查cobbler配置
Cobbler check
檢查結果中如果有不合理配置或缺少元件會直接提示按提示完成。其中防火牆需要打開如下端口
A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -jACCEPT
# DNS - TCP/UDP
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -jACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -jACCEPT
# DHCP
-A INPUT -m state --state NEW -m udp -p udp --dport 68 -jACCEPT
# TFTP - TCP/UDP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -jACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 69 -jACCEPT
# NTP
-A INPUT -m state --state NEW -m udp -p udp --dport 123-j ACCEPT
# HTTP/HTTPS
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -jACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443-j ACCEPT
# Syslog for cobbler
-A INPUT -m state --state NEW -m udp -p udp --dport 25150-j ACCEPT
# Koan XMLRPC ports
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25151-j ACCEPT
Cobbler 修改配置後需要同步
cobbler sync
安裝完成。
Distro 安裝源
Profile 配置組
System 主機配置
Repo yum源
導入安裝源。以ISO鏡像為例
cp CentOS-5.9-x86_64-bin-DVD-2of2.iso/var/tmp
挂載iso
mount -o loop /www/os/CentOS-5.9-x86_64-bin-DVD-2of2.iso/mnt/centos59-86_64
導入
cobbler import --path=/mnt/centos59-86_64--name=centos5.9 --arch=x86_64
cobbler distro list
可以看到安裝源
[root@ns ~]# cobbler distro list
Centos6.0-x86_64
centos5.9--x86_64
centos5.5--x86_64
建立配置組
/var/lib/cobbler/kickstarts/有預設的sample.ks
複制後按照不通的安裝需求修改為自己的ks檔案
cobbler profile add --name=webserver--distro=centos5.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/webserver.ks
cobbler profile add --name=solr--distro=centos5.9-x86_64 --kickstart=/var/lib/cobbler/kickstarts/solr.ks
………
Profile 需要制定distro 即 profile裡要配置從哪個安裝源安裝,安裝些什麼怎麼裝等等(ks裡配置)
注意:這裡的sample.ks修改而來的ks檔案不是system-config-kickstart配置出來的ks檔案,這個是cobbler的ks檔案模闆,cobbler需要用這個ks檔案去配合system生成每個主機自己的ks檔案,ks檔案生成後檢視位址
http://serverip/ cblr/svc/op/ks/system/systemname
那麼衆多的伺服器用這個ks安裝後機器名 IP位址 DNS 等等這些都不一樣怎麼辦?
用 system解決
建立主機配置system
cobbler system add --name=node1 --mac= 00:50:56:b7:00:57--ip-address=192.168.xx.1 --subnet=255.255.252.0 --gateway=192.168xx.254--interface=eth0 --static=1 --profile=vip_no_sql --dns-name=node1.vipcloud--hostname=node1.vipcloud --netboot-enabled=true--name-servers="192.168.xx.20 8.8.8.8"
就是用mac位址來确定這個機器是誰,name要唯一 mac也要唯一。這裡可以配置這個機器使用哪個profile。
如果有2個網卡怎麼辦?
cobbler system edit --name=node1--ip-address=10.2.2.1 --subnet=255.255.255.0 --interface=eth1 --static=1
這就把第二個網卡也設定了。
如果需要給網卡添加靜态路由怎麼辦?(比如OPEN×××的位址)
cobbler system edit --name=node1 --interface=eth1--static-routes=”192.168.99.0/24:192.168.50.162” --netboot-enabled=true
。
至此,隻要把node1機器開機,確定能夠PXE啟動,則就能順利的進行系統安裝了。一次安裝1000個?
那就寫個sh把system 批量加好吧
cobbler status
可以看到安裝的進度。(哪些在裝,哪些裝好了而已,多的看不到)
初次接觸cobbler 暫時就這些。https://github.com/cobbler/cobbler/wiki有更詳細的官方文檔等待去挖掘