一個人管一百台伺服器的時候,就要用到批量處理工具,這樣可以把大量無聊重複的任務一口氣完成,之前我一直用pssh,因為pssh就是一個類似for in語句的工作原理,但是這玩意不能保證時時同步伺服器組的内容,是以在這一點上puppet更牛,也是現代管理中puppet更受青睐的原因。
puppet跟 zabbix一樣,也是管理者所操作的中心機是“伺服器端”,需要安裝一個puppet-server ,而被操作的那些機器叫“用戶端”,每台機器都需要安裝一個puppet-client。然後伺服器和用戶端都勾搭成功之後,每半個小時,伺服器就會檢查一下用戶端們上的軟體版本,然後第一時間把這些軟體同步,嗯,有點類似rsync功能。
安裝前的準備
剛剛說過,伺服器和用戶端每隔半個小時就會通信一次,那麼可見puppet的基本條件就是要時間鐘是一緻的,如何一緻?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<code>[root@localhost chenshuo]</code><code># date</code>
<code>Sat May 28 16:38:02 EDT 2016</code>
<code>[root@localhost chenshuo]</code><code># yum install ntp</code>
<code>Loaded plugins: fastestmirror, refresh-packagekit, security</code>
<code>Setting up Install Process</code>
<code>Loading mirror speeds from cached hostfile</code>
<code> </code><code>* base: mirrors.aliyun.com</code>
<code> </code><code>* extras: mirrors.yun-idc.com</code>
<code> </code><code>* updates: mirrors.yun-idc.com</code>
<code>Package ntp-4.2.6p5-10.el6.centos.x86_64 already installed and latest version</code>
<code>Nothing to </code><code>do</code>
<code>[root@localhost chenshuo]</code><code># chkconfig ntpd on</code>
<code>[root@localhost chenshuo]</code><code># ntpdate pool.ntp.org</code>
<code>28 May 08:42:10 ntpdate[28852]: step </code><code>time</code> <code>server 182.92.12.11 offset -28590.133953 sec</code>
<code>Sat May 28 08:42:35 EDT 2016</code>
<code>[root@localhost chenshuo]</code><code># service ntpd start</code>
<code>Starting ntpd: [ OK ]</code>
可見原本這個機器的時間是5月28日下午4點38分,現在已經改成了5月28日8點42分。
配置完時間之後,就是安裝以下元件:
<code># yum install ruby ruby-libs ruby-rdoc Puppet 需要 Ruby 的支援,如果要檢視指令行幫助的話需要額外 ruby-rdoc 這個軟體包:</code>
<code># yum -y install wget 安裝(更新)wget功能</code>
<code># wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm</code>
<code># yum install puppetlabs-release-6-1.noarch.rpm 安裝rpm包</code>
<code># yum update yum更新,這個過程比較繁瑣</code>
中心機與客戶機的安裝
然後在中心機上安裝puppet-server。
<code># yum install puppet-server</code>
<code># chkconfig puppet on</code>
<code># service puppetmaster start</code>
<code>Starting puppetmaster: [ OK ]</code>
再使用# /etc/init.d/iptables stop這個指令把防火牆關閉,這樣就不會出現一些包丢棄的意外情況了。
在客戶機上安裝puppet-client。直接使用# yum install puppet就行。
Puppet 用戶端使用 HTTPS 和服務端(master)通信,為了和伺服器端通信必須有合法的 SSL 認證,第一次運作 puppet 用戶端的時候會生成一個 SSL 證書并指定發給 Puppet 服務端。
# puppet agent --no-daemonize --onetime --verbose --debug --server=伺服器的主機名稱
Puppet 服務端接受到用戶端的證書後必須簽字(sign)才能允許用戶端接入,sign 後用 puppet cert list –all 檢視會發現 client.vpsee.com 前面多了一個 + 後,表示 “加入” 成功:
參考文章:http://www.jbxue.com/article/3196.html
本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/1784142