天天看點

關于整個puppet的學習發現一些的問題

1、在開始配置證書比對時候,/etc/hosts的hostname、/etc/sysconfig/network的HOSTNAME要與puppet cert list --all顯示用戶端hostname的要一緻,用戶端的puppet配置裡的server就是要指向服務端的hostname,不然證書無法比對成功和無法從S發送到C

<a href="http://s4.51cto.com/wyfs02/M01/7D/91/wKioL1brYYrSunZlAAAjgOiGcQg871.png" target="_blank"></a>

<a href="http://s4.51cto.com/wyfs02/M02/7D/91/wKioL1brYYviB0YbAAA5_iNF00I265.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M01/7D/91/wKioL1brYgOD6jQ6AAAI4xval7s147.png" target="_blank"></a>

<a href="http://s1.51cto.com/wyfs02/M02/7D/94/wKiom1brYXPgHg_-AAAB5bsWp1g883.png" target="_blank"></a>

2、在配置子產品那裡的定義(這裡不能填寫hostname裡的名字,需要填寫指令行下正常顯示的hostname,不然定義子產品裡的檔案是發送不去用戶端的),和一次性可以傳送多個檔案去用戶端(node default  #這一個是全局配置,node slave/slave1  #針對指定用戶端的配置)

上面的node slave不是*.com,如果是slave.com後導緻子產品裡的檔案無法傳送,在用戶端的/var/log/messages日志提示錯誤,slave1是那天臨起床前突發奇想加進去(是slave的克隆機)

<a href="http://s5.51cto.com/wyfs02/M01/7D/94/wKiom1brYa6hB7v-AAARkKxeOmM315.png" target="_blank"></a>

<a href="http://s5.51cto.com/wyfs02/M01/7D/94/wKiom1brYa6ivGsuAAAQ_znEe2s411.png" target="_blank"></a>

是以發現上面錯誤提示,将子產品的.com去掉(以.為分隔符,保留第一欄),接下用戶端接收檔案成功,日志也沒有提示錯誤資訊

<a href="http://s2.51cto.com/wyfs02/M01/7D/91/wKioL1brYmCgJ2cMAAAosXjuTHI364.png" target="_blank"></a>

<a href="http://s2.51cto.com/wyfs02/M02/7D/94/wKiom1brYdCgQc-hAAAMvE9jpjM451.png" target="_blank"></a>

<a href="http://s2.51cto.com/wyfs02/M02/7D/91/wKioL1brYmCj5ZhnAAAM3CgVjkc619.png" target="_blank"></a>

3、将服務端現成搭建好論壇上的apache的目錄複制到/etc/puppet/modules/apache(apache必須作為另一個新子產品,不能合在同一個子產品中,不然加上recurse =&gt; "true"和purge =&gt; true這兩個參數會報錯)

報錯如下:

Mar 13 17:55:22 slave puppet-agent[31445]: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not  find class testm for slave.com on node slave.com

是以需要這樣做:

mkdir  -p  /etc/puppet/modules/apache/{files,manifests,templates}

vi /etc/puppet/modules/apache/manifests/init.pp

class apache{

file {"/tmp/apache":          #不要加apache的目錄,直接寫成/usr/local/即可,不然就重複目錄了(圖1)

owner =&gt; "root",

group =&gt; "root",

source =&gt; "puppet://$puppetserver/modules/apache",

recurse =&gt; "true",          #主目錄下有子目錄的遞歸作用

purge =&gt; true               #和伺服器不同的删除掉(CS兩邊保持一緻,同時加上recurse =&gt; "true"才有意義

}

<a href="http://s3.51cto.com/wyfs02/M02/7D/91/wKioL1brYtHynEekAABW2upJvNc930.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/7D/91/wKioL1brYvLC_1GXAAD1qu68_Ek740.png" target="_blank"></a>

下面是将testm和apache拆分出來後就不會報錯了(圖2)

<a href="http://s2.51cto.com/wyfs02/M00/7D/91/wKioL1brY0rCPIzbAABYQxKNZ2A264.png" target="_blank"></a>

PS:當複制文檔内容到配置檔案儲存退出檢視日志發現有提示錯誤,這時候需要對照一下内容是否正确,其次是一些标點符号

附:服務端的子產品配置

<a href="http://s5.51cto.com/wyfs02/M00/7D/94/wKiom1brYxCS35PQAAA4bEzRWOQ556.png" target="_blank"></a>

     本文轉自wsw26 51CTO部落格,原文連結:http://blog.51cto.com/wsw26/1751750,如需轉載請自行聯系原作者