Puppet介紹 原理 安裝

第一 介紹

        puppet是一種Linux、Unix、windows平臺的集中配置管理系統,使用自有的puppet描述語言,可管理配置文件、用戶、cron任務、軟件包、系統服務等。puppet把這些系統實體稱之爲資源,puppet的設計目標是簡化對這些資源的管理以及妥善處理資源間的依賴關係。

        puppet採用C/S星狀的結構,所有的客戶端和一個或幾個服務器交互。每個客戶端週期的(默認半個小時)向服務器發送請求,獲得其最新的配置信息,保證和該配置信息同步。每個puppet客戶端每半小時(可以設置)連接一次服務器端, 下載最新的配置文件,並且嚴格按照配置文件來配置服務器. 配置完成以後,puppet客戶端可以反饋給服務器端一個消息. 如果出錯,也會給服務器端反饋一個消息.


第二,工作原理:
         puppet既可以在單機上使用,也可以以c/s結構使用.在大規模使用puppet的情況下,通常使用c/s結構.在這種結構中puppet客戶端只是指運行puppet的服務器,puppet服務器端是隻運行puppetmaster的服務器.
         puppet客戶端首先會連接到puppet服務器端,並且通過facter工具把客戶端的基本配置信息發送給服務器端. 服務器端通過分析客戶端的主機名,通過node 定義,找到該主機的配置代碼,然後編譯配置代碼,把編譯好的配置代碼發回客戶端,客戶端執行代碼完成配置.並且把代碼執行情況反饋給puppet服務器端.
修改系統配置

         puppet 通過管理資源的方式來管理系統, 例如管理某個軟件是否要安裝,是安裝最新的還是安裝了就行. 管理某個服務是否開啓, 管理某個文件的屬性,內容等等. 所有的資源都有對應的幾個屬性可以設置. 通過設置屬性的方式來管理資源. 有一種特殊的屬性可以用在所有的資源上面,這種屬性叫做 metaparams ( 元參數或者元屬性).


1)         客戶端通過facter收集客戶端信息併發送至服務端
2)         連接服務端並請求catalog日誌
3)         請求節點(node)的信息
4)         從服務器端接收節點(node)的實例
5)         編譯代碼(包括語法檢查等工作)
6)         查詢是否有exported 虛擬資源
7)         如有,則從數據庫接收虛擬資源
8)         接收完整的catalog日誌
9)         存儲catalog日誌到數據庫

10)       客戶端接收完整的catalog日誌

第三 安裝

1.設置主機名

2.關閉selinux   

sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

3.設置hosts文件

             puppet通信的前提是agent和master必須能夠互相解析主機名。 當然,也可以設置DNS,在第四部分搭建kermit架構的時候會搭建DNS服務,現在先暫時通過hosts文件進行解析,可先設置好puppetmaster後,統一copy到所有節點上


4.配置NTP服務器

           設置ntp服務器和本地進行同步,當然如果聯網也可以和外部服務器同步,這裏只需要保證所有服務器時間一致。 原因是因爲,puppetmaster和agent之間時間相差不得超過10分鐘(好像是),而後期配置的mcollecitve服務端和客戶端之間不能相差60秒     

5. 安裝ruby:yum install ruby ruby-libs 


安裝Puppet-server、puppet和facter 

master 端的安裝如下

rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm    

rpm --import http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs

yum install puppet-server -y


配置puppet.conf


創建site.pp文件 site.pp文件是puppet讀取所有模塊pp文件的開始


啓動puppetmaster服務

          

/etc/init.d/puppetmaster start

[root@puppetmaster ~]# chkconfig puppetmaster on #設置開機啓動


查看監聽狀態 puppetmaster服務開啓後,默認監聽TCP 8140端口 ,防火牆准許

開放8140(server服務器端口),8139(client服務器端口)
/sbin/iptables -I INPUT -s *  -p tcp --dport 8140 -j ACCEPT

/sbin/iptables -I INPUT -s *  -p tcp --dport 8139 -j ACCEPT


agent端的安裝如下


rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm    

rpm --import http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs


yum install puppet -y


/etc/init.d/puppet start



客戶端發起驗證

puppet agent --server master.lichao.com  --test


服務器端通過驗證

puppet cert --list

puppet cert sign agent.lichao.com


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章