天天看點

centos系統puppet安裝

一、puppet簡介:

 Puppet是開源的基于Ruby的系統配置管理工具,依賴于C/S的部署架構。puppet有兩種工作模式,一是直接運作puppetd file.manifest,這種方式做測試非常直接和友善;二是puppetd --server puppetmaster.server.com;前面一種是直接讀取file.mainfest檔案進行配置,後一種是從服務端下載下傳manifest進行配置,也是最常用的工作模式:Puppet是一個C/S架構的配置管理工具,在中央伺服器上安裝puppet-server軟體包(被稱作Puppet master)。在需要管理的目标主機上安裝puppet用戶端軟體(被稱作Puppet Client)。當用戶端連接配接上Puppet master後,定義在Puppet master上的配置檔案會被編譯,然後在用戶端上運作。每個用戶端預設每半個小時和伺服器進行一次通信,确認配置資訊的更新情況,不過建議做好通過crontab來實作即時性,同時也能緩解puppet-server伺服器的負擔。如果有新的配置資訊或者配置資訊已經改變,配置将會被重新編譯并釋出到各用戶端執行。也可以在伺服器上主動觸發一個配置資訊的更新,強制各用戶端進行配置。如果用戶端的配置資訊被改變了,它可以從伺服器獲得原始配置進行校正。

二、puppet安裝:

1 伺服器端與用戶端都需要配置主機名

echo '10.10.0.106    test106.lvs' >> /etc/hosts

echo '10.10.0.50    test50.lvs' >> /etc/hosts

2 伺服器端:

配置host檔案每增加一個用戶端需要在hosts檔案中添加對應的主機記錄,這裡拿兩台伺服器做測試,test106.lvs做伺服器端,test50.lvs做客服端

1) 配置主機名

hostname test106.lvs

2) puppet是由ruby語言開發的,是以正常運作需要安裝ruby環境

yum install -y ruby ruby-lib ruby-rdoc

3) 安裝puppet,centos源沒有包括puppet,需要添加puppet安裝源,我的測試機時centos5(32位),隻需要将下面的位址改為符合自己系統的源位址(根據自己的系統在http://yum.puppetlabs.com/el上選擇相應的安裝源)。

rpm -ivh http://yum.puppetlabs.com/el/5/products/i386/puppetlabs-release-5-1.noarch.rpm

yum instlal -y puppet-server

chkconfig --add puppetmaster

chkconfig puppetmaster on

service puppetmaster start

iptables -I INPUT -t tcp -m tcp --dport 8140 -j ACCEPT

3 用戶端安裝:

yum instlal -y puppet

4 證書申請:

    1)用戶端向服務端申請證書:

[root@localhost ~]# puppetd --server test106.lvs --test

warning: peer certificate won't be verified in this SSL session

info: Caching certificate for ca

info: Creating a new SSL certificate request for test50.lvs

info: Certificate Request fingerprint (md5): B2:C1:91:4E:CC:DA:44:74:CE:A9:4E:79:BB:58:2D:5A

Exiting; no certificate found and waitforcert is disabled

    2)服務端接受證書申請:

[root@localhost tmp]# puppetca --list

test50.lvs (B2:C1:91:4E:CC:DA:44:74:CE:A9:4E:79:BB:58:2D:5A)

[root@localhost manifests]# puppetca -s test50.lvs

notice: Signed certificate request for test50.lvs

notice: Removing file Puppet::SSL::CertificateRequest test50.lvs at '/var/lib/puppet/ssl/ca/requests/test50.lvs.pem'

    3)用戶端取回已經通過的證書:

info: Caching certificate for test50.lvs

info: Caching certificate_revocation_list for ca

info: Caching catalog for test50.lvs

info: Applying configuration version '1337761611'

notice: /Stage[main]//Node[default]/File[/tmp/test.txt]/ensure: defined content as '{md5}3adbbad1791fbae3ec908894c4963870'

info: Creating state file /var/lib/puppet/state/state.yaml

notice: Finished catalog run in 0.05 seconds

5 舊伺服器重新審批證書

如果用戶端有變動,例如主機名更改,需要重新為該伺服器申請證書,需要在伺服器端删除原該用戶端原有的證書檔案 /var/lib/puppet/ssl/ca/signed/CLIENT.NAME.pem

用戶端操作需要删除ssl目錄 /var/lib/puppet/ssl/

然後重新執行第四步的操作。

三、測試安裝是否成功

1 在伺服器端建立一個/etc/puppet/manifests/site.pp檔案

vim /etc/puppet/manifests/site.pp

node default {

file {

"/tmp/test.txt": content => "hello, world!";

}

建立完需要重新開機服務

service puppetmaster restart

2 用戶端執行如下指令

info: Applying configuration version '1337762096'

notice: Finished catalog run in 0.07 seconds

[root@localhost ~]# cat /tmp/test.txt

hello, world!

四、用戶端設定守護程序

puppetd  --server test106.lvs --verbose --waitforcert 60

注釋:--server master  指明伺服器節點位址

      --waitforcert     連接配接server檢查的時間間隔

      --verbose         輸出備援資訊(可選選項)

繼續閱讀