CentOS下puppet安裝

簡介

Puppet是開源的基於Ruby的系統配置管理工具,puppet是一個C/S結構, 固然,這裏的C能夠有不少,所以,也能夠說是一個星型結構. 全部的puppet客戶端同一個服務器端的puppet通信. 每一個puppet客戶端每半小時(能夠設置)鏈接一次服務器端, 下載最新的配置文件,而且嚴格按照配置文件來配置服務器. 配置完成之後,puppet客戶端能夠反饋給服務器端一個消息. 若是出錯,也會給服務器端反饋一個消息.node

 

工做流程

 

(1)客戶端puppetd調用facter,facter探測出主機的一些變量,例如主機名,內存大小,ip地址等。pupppetd 把這些信息經過ssl鏈接發送到服務器端;vim

 

(2)服務器端的puppetmaster 檢測客戶端的主機名,而後找到manifest裏面對應的node配置, 並對該部份內容進行解析,facter送過來的信息能夠做爲變量處理,node牽涉到的代碼才解析,其餘沒牽涉的代碼不解析。解析分爲幾個階段,語法檢查,若是語法錯誤就報錯。若是語法沒錯,就繼續解析,解析的結果生成一箇中間的「僞代碼」,而後把僞代碼發給客戶端;ruby

 

(3)客戶端接收到「僞代碼」,而且執行,客戶端把執行結果發送給服務器;服務器

 

(4)服務器端把客戶端的執行結果寫入日誌。session

 

準備

 

Master工具

Agent測試

系統this

Centos 6.6spa

Centos 6.6rest

ip(自設)

192.168.2.40

192.168.2.42

主機名(自設)

master.kisspuppet.com

agent.kisspuppt.com

 

 

 

 

 

 

 

 

 

 

安裝

Puppet 不在 CentOS 的基本源中,須要加入 PuppetLabs 提供的官方源:

wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-1.noarch.rpm

yum install puppetlabs-release-6-1.noarch.rpm

yum update

 

Master端

yum install -y ruby facter puppet-server

 

# 啓動

service puppet start

service puppetmaster start

 

# 設置開機自啓動

chkconfig  puppet on

chkconfig  puppetmaster on

 

 

 

Agent端

yum install -y ruby facter puppet

 
 啓動

service puppet start

 

設置開機自啓動

chkconfig  puppet on

 

配置

vim /etc/puppet/puppet.conf

添加下面一行

server=master.kisspuppet.com

重啓puppet

service puppet restart

 

 

 

 

Agent申請證書

Master自動簽發證書設置    

設置master自動簽發全部的證書,咱們只須要在/etc/puppet目錄下建立 autosign.conf文件。(不須要修改 /etc/puppet/puppet.conf文件,由於我默認的autosign.conf 文件的位置沒有修改)

 

[ root @ master   ~ ] #   cat   >   / etc / puppet / autosign . conf   < < EOF  

>   * . redking . com

>   EOF

[ root @ master   ~ ] #   service   puppetmaster   restart  

Stopping   puppetmaster:                                                                           [     OK     ]

Starting   puppetmaster:                                                                           [     OK     ]

[ root @ master   ~ ] #

 

 

這樣就會對全部來自fisteam2.com的機器的請求,都自動簽名。Agent須要向服務器端發出請求, 讓服務器對客戶端進行管理. 這實際上是一個證書籤發的過程. 第一次運行 puppet 客戶端的時候會生成一個 SSL 證書並指定發給 Puppet 服務端, 服務器端若是贊成管理客戶端,就會對這個證書進行簽發,能夠用這個命令來簽發證書,因爲咱們已經在客戶端設置了server地址,所以不須要跟服務端地址

Agent向Master請求認證

輸入下列命令就能夠申請證書了

[ root @ agent1   ~ ] #   puppet   agent   --test

 

因爲我配置的自動簽發證書,因此直接就簽發了,在服務端執行下列命令進行查看是否定證成功。

[ root @ master   ~ ] #   puppet cert list --all

 

 

測試

如今能夠在服務端寫個小例子來測試一下。這個例子做用很簡單,用來在客戶端的 /tmp 目錄下新建一個 helloworld.txt 文件,內容爲 hello, world. 在Master端編寫代碼:

 

# vi /etc/puppet/manifests/site.pp

node default {

        file {

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

        }

}

 

 

在Agent端上執行 puppet,運行成功後會在 /tmp 看到新生成的 helloworld.txt:

 

$ puppet agent --test --server=master.vpsee.com

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

info: Caching certificate for client.vpsee.com

info: Caching certificate_revocation_list for ca

info: Caching catalog for client.vpsee.com

info: Applying configuration version '1330668451'

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

info: Creating state file /home/vpsee/.puppet/var/state/state.yaml

notice: Finished catalog run in 0.03 seconds

 

 

查看Agent端

$ cat /tmp/helloworld.txt

hello, world

 

這樣就說明puppet可以正常運行。

相關文章
相關標籤/搜索