帶着問題來學習
從如下內容來看,如何自定義安裝用戶想要的東西呢? 系統更新問題
軟件配置權限如何定義? Master,agent 哪個主動通信 如何批量簽名 何批量安裝同功能模塊的服務器,批量操作同功能模塊的服務器,同功能模塊的服務器中新增機器如何處理(開新服) 是否能定期同步信息,爲什麼在agent上拉信息,不能是master發送信息。 Site文件越來越大,如何管理 Master管理多臺服務器性能出現瓶頸如何處理 多master之間時時同步機制puppet是否有內部組件實現 每個服務器上都需要有filea.txt ,filea.txt文件中只有hostname不一致如何實現 |
Puppet簡介:
功能說明
Puppet是一個基於R u b y ,並使用GPLv2協議授權的開源軟件,它既能以C/S的方式運行,也能獨立運行。它主要由Luke.Kanies和他的公司Puppet Labs ( 以前稱爲Reductive Labs)開發。Kanies從1997年開始涉足Unix和系統管理,然後基於這些經驗開發了Puppet。因爲對巳經存在的配置管理工具不滿意,Kanies在2001年開始了這- -新工具的開發,並於2005年創立了-家專注於自動化工具的開源軟件開發公司:PuppetLabs。不久之後,Puppet Labs發佈了他們的旗艦產品 Puppet。 |
企業應用
1.Google 通過puppet管理6000+mac電腦 2.安居客應用於服務器管理,官網甚至有安居客模塊代碼分享 3.中小企業的應用趨勢 |
工作原理
企業應用主要基於puppet的C/S架構。 數據流向: puppet與其它自動化工具對比(摘自華東技術分享ppt) |
爲什麼選擇puppet
puppet與其它自動化工具對比(摘自華東技術分享ppt) |
特性簡述
master,node 均以demo方式運行,默認每30min通信一次; 高級應用建議學習ruby; 建議選擇2.6.x以上版本,reset api替換了xml-rpc作爲傳輸層,極大提高性能; 2.6版本後支持windows平臺; 當前新版本爲3x系列; 支持圖表輸出及報告輸出功能; 基於ssh加密認證 |
官網及中文論壇
Puppet的基本安裝部署
1.本地環境
puppet master | |
Hostname | pmaster pmaster.example.com |
Innerip | 192.168.61.152 |
System info | CentOS release 5.3 |
puppet agent | |
Hostname | node1 node1.example.com |
Innerip | 192.168.61.153 |
System info | CentOS release 5.3 |
2.配置yum源(CentOS release 5.3):
cat /etc/yum.conf
[163netyum] name=Centos-5.3 163 baseurl=http://mirrors.163.com/centos/5/os/i386/ gpgcheck=0 |
3.安裝ruby組件–puppet基於ruby開發
yum install ruby ruby-libs ruby-shadow |
4.添加epel倉庫
rpm -Uvh http://mirrors.yun-idc.com/epel/5Server/i386/epel-release-5-4.noarch.rpm |
5.安裝puppet
Master# yum install puppet puppet-server facter agent # yum install puppet facter |
****恭喜各位,如上一切無誤後即可嘗試啓動進程了****
6.嘗試啓動master puppet
啓動master puppet,並確認8140端口已被監聽: #puppet返回成功,但不一定能成功啓動,puppet這個功能希望能改進…
service puppetmaster start |
7.目錄結構
/etc/puppet/ #默認安裝目錄 |-- auth.conf |-- fileserver.conf |-- manifests | |-- init.pp | `-- site.pp |-- modules `-- puppet.conf Manifests 如沒有手動創建,site.pp手動創建 |
8.配置hosts或DNS
9.連通性檢查
在agent服務器上執行telnet 192.168.61.152 8140確認mater8140端口可通
10.申請簽名認證
###在Agent上發起簽名申請: # puppet agent --server=pmaster.example.com --no-daemonize –verbose ##hosts需要是全名,不然會報錯…如下所有操作類同 ### master 查看簽名列表: # puppet cert –list ##查看等待簽名的服務器列表 ###在master機給予簽名: # puppet cert --sign node1.example.com ##指定節點簽名 # puppert cert –sign –all ##對所有等待的證書進行簽名 info: Creating a new SSL key for node1.example.com info: Caching certificate for ca info: Creating a new SSL certificate request for node1.example.com info: Certificate Request fingerprint (md5): C7:37:94:86:27:E3:2C:B0:B7:40:26:62:69:1C:0E:B0 info: Caching certificate for node1.example.com info: Caching certificate_revocation_list for ca --簽名完畢後不能再隨意修改主機名,否則認證失效-- ###刪除認證
|
11.連通性驗證
a>maser:
vi /etc/puppet/manifests/site.pp
site.pp文件定義puppet相關的變量和默認配置,是puppet執行的第一個文件
代碼如下: |
node default{ file{"/tmp/hello.txt": content => "Hello World.\n", } } node "node1.example.com" { file { "/tmp/puppetnode1.txt": owner => "root", group => "root", ensure => "present", content => "puppet node1 test!\n", mode => "644", } } |
Node1.example.com不會執行default裏面的內容:
即:一個client只能存在於一個node中。
可以通過在node default中使用if 判斷來選擇生效的node
b>agent:
同步master配置
# puppetd --test --server pmaster.example.com |
***********至上簡C/S puppet基礎架構已搭建完畢。恭喜各位*************
**********puppet 配置進階請參考《集中管理利器-puppet快速入門-下》 ***********
******************************************************************************************* * 爲最大限度不影響讀者感官: * * http://fengzhilinux.blog.51cto.com/1343279/1320317另起欄目,也請大家多支持 * ******************************************************************************************* |