天天看點

Cobbler +puppet +nagios自動化運維 (1)

從作業系統的自動化部署、到系統内的賬戶、軟體、服務、檔案、任務等資源的自動化部署管理,用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有更詳細的官方文檔等待去挖掘

繼續閱讀