天天看點

Puppet集中配置管理系統安裝與配置

一、什麼是puppet?

1、基于ruby語言開發的系統配置集中管理工具,跨平台

2、一個c/s架構,配置服務端和用戶端

puppet依賴于ruby與facter,安裝puppet3.x,需要ruby1.8.7版本及以上;facter是一個系統盤點工具,收集主機的一些資料,比如os、ip、cpu等

3、puppet是一個c/s結構,開源軟體,基于ruby的系統配置管理工具,安裝puppet3.x,需要ruby1.8.7版本及以上

4、預設情況下,用戶端每隔30分鐘連接配接一次puppet服務端

5、能管理多達40種資源,例如:file、user、cron、package、yum等,适合整個軟體的生命周期管理

二、環境介紹

1、拓撲圖

Puppet集中配置管理系統安裝與配置

2、下載下傳

作業系統rhel6.3 x64

facter下載下傳: https://downloads.puppetlabs.com/facter/

puppet下載下傳: https://downloads.puppetlabs.com/puppet/

3、puppetmaster與puppetclient可以互相解析

vi /etc/hosts

192.168.0.200 puppetmaster.com

192.168.0.201 puppetclient1.com

4、puppet服務端與用戶端時間同步

yum install ntp -y

service ntpd start

ntpdate pool.ntp.org #同步時間

clock -w #将時間寫入硬體

chkconfig ntpd on

三、安裝服務端puppet

1、安裝ruby環境

1

<code>[root@puppetmaster ~]</code><code># yum install -y ruby ruby-libs ruby-shadow</code>

2、安裝facter

2

3

<code>[root@puppetmaster ~]# tar zxvf facter-1.7.3.tar.gz</code>

<code>[root@puppetclient1 ~]# cd facter-1.7.3</code>

<code>[root@puppetmaster facter-1.7.3]# ruby install.rb</code>

3、安裝配置puppet

4

5

6

7

<code>[root@puppetmaster puppet-3.3.1]</code><code># useradd -s /sbin/nologin puppet</code>

<code>[root@puppetmaster ~]</code><code># tar zxvf puppet-3.3.1.tar.gz</code>

<code>[root@puppetclient1 ~]</code><code># cd puppet-3.3.1</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># ruby install.rb</code>

<code>[root@puppetmaster puppet-3.3.1]</code><code># cp ext/redhat/puppet.conf /etc/puppet/</code>

<code>[root@puppetmaster puppet-3.3.1]</code><code># cp ext/redhat/server.init /etc/init.d/puppetmaster</code>

<code>[root@puppetmaster puppet-3.3.1]</code><code># chmod +x /etc/init.d/puppetmaster</code>

<code>[root@puppetmaster ~]</code><code># vi /etc/puppet/puppet.conf</code>

<code>[main]  </code><code>#在main裡面添加puppet服務端主機名</code>

<code>server = puppetmaster.com</code>

<code>[root@puppetmaster puppet-3.3.1]</code><code># chkconfig --add puppetmaster</code>

<code>[root@puppetmaster puppet-3.3.1]</code><code># chkconfig puppetmaster on</code>

<code>[root@puppetmaster puppet-3.3.1]</code><code># service puppetmaster start</code>

四、安裝用戶端puppet agent

<code>[root@puppetclient1 ~]</code><code># yum install -y ruby ruby-libs ruby-shadow</code>

<code>[root@puppetclient1 ~]# tar zxvf facter-</code><code>1.7</code><code>.</code><code>3</code><code>.tar.gz</code>

<code>[root@puppetclient1 ~]# cd facter-</code><code>1.7</code><code>.</code><code>3</code>

<code>[root@puppetclient1 facter-</code><code>1.7</code><code>.</code><code>3</code><code>]# ruby install.rb</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># useradd -s /sbin/nologin puppet</code>

<code>[root@puppetclient1 ~]</code><code># tar zxvf puppet-3.3.1.tar.gz</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># cp ext/redhat/puppet.conf /etc/puppet/puppet.conf</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># cp ext/redhat/client.init /etc/init.d/puppet</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># chmod +x /etc/init.d/puppet</code>

<code>[root@puppetclient1 ~]</code><code># vi /etc/puppet/puppet.conf</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># chkconfig --add puppet</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># chkconfig puppet on</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># service puppet start</code>

<code>[root@puppetclient1 puppet-3.3.1]</code><code># netstat -tupln | grep 8140</code>

五、配置簽名證書

1、用戶端建立證書注冊請求

<code>[root@puppetclient1 ~]</code><code># puppet agent --test</code>

<code>info: creating a new ssl key </code><code>for</code> <code>puppetclient1.com</code>

<code>info: caching certificate </code><code>for</code> <code>ca</code>

<code>info: creating a new ssl certificate request </code><code>for</code> <code>puppetclient1.com</code>

<code>info: certificate request fingerprint (sha256): 7e:10:48:3f:3c:d4:13:ba:bf:66:ed:86:52:92:19:05:1e:d2:3a:cd:06:67:27:80:60:d6:54:66:0e:33:f7:c7</code>

<code>exiting; no certificate found and waitforcert is disabled</code>

2、服務端檢視證書注冊請求

<code>[root@puppetmaster ~]</code><code># puppet cert list  #加--all檢視所有</code>

<code>  </code><code>"puppetclient1.com"</code>     <code>(sha256) 7e:10:48:3f:3c:d4:13:ba:bf:66:ed:86:52:92:19:05:1e:d2:3a:cd:06:67:27:80:60:d6:54:66:0e:33:f7:c7</code>

<code>  </code><code>"puppetclient1.com.com"</code> <code>(sha256) 46:b6:95:a6:1b:6a:fd:83:e4:1c:72:d4:5c:3c:b5:ef:3d:f7:43:2c:09:cf:00:b8:44:18:e4:3e:b3:dc:6f:fd</code>

3、服務端受理用戶端證書注冊請求

<code>[root@puppetmaster ~]</code><code># puppet cert sign puppetclient1.com  #主機名改為--all,是受理所有</code>

<code>notice: signed certificate request </code><code>for</code> <code>puppetclient1.com</code>

<code>notice: removing </code><code>file</code> <code>puppet::ssl::certificaterequest puppetclient1.com at </code><code>'/var/lib/puppet/ssl/ca/requests/puppetclient1.com.pem'</code>

4、用戶端确認是否證書注冊成功

如果出現以下報錯,則在用戶端puppet.conf配置檔案[main]裡面添加pluginsync=false,再重新開機!

<code>error: </code><code>/file</code><code>[</code><code>/var/lib/puppet/lib</code><code>]: could not evaluate: could not retrieve information from environment production </code><code>source</code><code>(s) puppet:</code><code>//puppetmaster</code><code>.com</code><code>/plugins</code>

5、想清除證書使用

<code>[root@puppetmaster ~]</code><code># puppet cert clean puppetclient1.com</code>

六、簡單測試

1、服務端編寫配置

8

<code>[root@puppetmaster ~]</code><code># vi /etc/puppet/manifests/site.pp #修改後立即,無需重新開機</code>

<code>node </code><code>'puppetclient1.com'</code> <code>{      </code><code>#指定某台,也可以不寫為所有</code>

<code>file</code> <code>{ </code><code>"/tmp/test.txt"</code><code>:</code>

<code>            </code><code>content=&gt; </code><code>"hello,puppet test\n"</code><code>;</code>

<code>            </code><code>#source=&gt; "puppet://$puppetserver/files/httpd.conf"</code>

<code>            </code><code>#也可以這樣分發一個配置檔案</code>

<code>    </code><code>}</code>

<code>}</code>

注:file是一個資源管理關鍵字,用來管理檔案的,還有package軟體包管理,service管理系統服務,exec執行shell指令,/tmp/test.txt是建立檔案名字,content定義檔案内容

2、用戶端預設30分鐘與服務端同步配置檔案,是以我們手動執行,也可以修改puppet.conf更改預設時間,添加runinterval=600,設定為10分鐘同步一次

<code>[root@puppetclient1 ~]</code><code># ls /tmp/</code>

<code>test</code><code>.txt</code>

至此,puppet系統安裝配置完成!

繼續閱讀