Puppet的簡要安裝部署

一、Puppet簡介
 Puppet基於ruby語言開發的自動化系統配置工具,可以C/S模式或獨立運行,支持對所有UNIX及類UNIX系統的配置管理,最新版本也開始支持對Windows操作系統有限的一些管理。Puppet適用於服務器管的整個過程 ,比如初始安裝、配置更新以及系統下線
 Puppet 是一個客戶端/服務器(C/S)架構的配置管理工具,在中央服務器上安裝 puppet-server 服務器(puppet master),在需要被管理的目標服務器上安裝 puppet 客戶端軟件(puppet client)。當客戶端連接上服務器後,定義在服務器上的配置文件會被編譯,然後在客戶端上運行。客戶端每隔半小時主動會和服務器通信一次,確認配置信息的更新情況,如果有新的配置信息(或者配置有變化),配置文件將會被重新編譯並分發到客戶端執行。當然,也可以在服務器上主動觸發更新指令來強制各客戶端進行配置更新。

二、Puppet的安裝
 Puppet的安裝方式支持源碼安裝、yum安裝以及ruby的gem安裝。官網推薦使用yum來安裝puppet,方面以後的升級、管理、維護。Centos可以採用yum來安裝,但是Centos的默認源中沒有puppet包,因此需要先安裝epel包。
Epel是企業版Linux附加軟件包(Extra Packages for Enterprise Linux)的縮寫,是一個由特別興趣小組創建、維護並管理的,針對紅帽企業版Linux(RHEL)及其衍生髮行版(比如CentOS、Scientific Linux)的一個高質量附加軟件包項目。
 使用EPEL源(http://fedoraproject.org/wiki/EPEL/zh-cn)或者PuppetLabs源(http://yum.puppetlabs.com/)直接安裝。注意選擇自己系統版本的Yum源。
 Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora、RedHat、SUSE及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並進行安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地多次下載和安裝。

安裝環境:

uname -a
Linux master.puppet.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

 1、Master的安裝
(1)、修改hosts(Puppet 要求所有機器有完整的域名(FQDN),如果沒有 DNS 服務器提供域名的話,可以在兩臺機器上設置主機名
(注意要先設置主機名再安裝 Puppet,因爲安裝 Puppet 時會把主機名寫入證書,客戶端和服務端通信需要這個證書):)

cat /etc/hosts
192.168.0.110    master.puppet.com master
192.168.0.111    client.puppet.com client


(2)安裝ntp,保持時間同步

yum install ntp -y
ntpdate asia.pool.ntp.org
service ntpd start

(3)安裝ruby

yum install -y ruby ruby-libs ruby-shadow

(4)安裝puppet(3種方法)
1.由於Puppet不在CentOS的基本源中,需要加入PuppetLabs提供的官方源,然後直接安裝就可以了
wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-11.noarch.rpm
yum install puppetlabs-release-6-11.noarch.rpm
yum update
yum install -y puppet-server    # install會自動安裝puppet所依賴的包,包括facter
            
2.根據操作系統版本配置Yum源,當前系統爲Centos6x64,因此選擇puppetlabs-release-6-11.noarch.rpm軟件包。配置方法如下

rpm -Uvh http://yum.puppetlabs.com/el/6Server/products/x86_64/puppetlabs-release-6-11.noarch.rpm
yum clean all 
yum install puppet-server    # install會自動安裝puppet所依賴的包(包括facter)

3.直接升級Yum源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install puppet-server
puppet --version     # 檢查版本
facter --version

第一次啓動建議採用puppet master --verbose --no-daemonize方式啓動,有助於測試和調試錯誤,如果採用後面這種方式,你可以看到啓動的整個過程,啓動過程會做一些初始化的工作,爲master創建本地證書認證中心,證書和key。並打開socket等待client的連接。你可以在/etc/puppet/ssl目錄看到相關的文件和目錄

puppet master --verbose --no-daemonize    # 第一次測試啓動puppetmaster服務
server puppetmaster start    # 啓動服務


2、Client的安裝
(1)、修改hosts(Puppet 要求所有機器有完整的域名(FQDN),如果沒有 DNS 服務器提供域名的話,可以在兩臺機器上設置主機名
(注意要先設置主機名再安裝 Puppet,因爲安裝 Puppet 時會把主機名寫入證書,客戶端和服務端通信需要這個證書):)

cat /etc/hosts
192.168.0.110    master.puppet.com master
192.168.0.111    client.puppet.com client

(2)安裝ntp,保持時間同步

yum install ntp -y
ntpdate asia.pool.ntp.org
service ntpd start

(3)安裝ruby

#yum install -y ruby ruby-libs ruby-shadow
#ruby --version

(4)安裝puppet(3種方法)
1.由於Puppet不在CentOS的基本源中,需要加入PuppetLabs提供的官方源,然後直接安裝就可以了

wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-11.noarch.rpm 
yum install puppetlabs-release-6-11.noarch.rpm 
yum update
yum install -y puppet facter

2.根據操作系統版本配置Yum源,當前系統爲Centos6x64,因此選擇puppetlabs-release-6-11.noarch.rpm軟件包。配置方法如下

rpm -Uvh http://yum.puppetlabs.com/el/6Server/products/x86_64/puppetlabs-release-6-11.noarch.rpm
yum clean all 
yum install puppet facter

3.直接升級Yum源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install puppet facter
puppet --version     # 檢查版本
facter --version
server puppet start   # 啓動服務


三、puppet的簡單配置
(1)Client配置:
在 /etc/puppet/puppet.conf 的 [agent] 下面添加如下配置

server = master.puppet.com    # master服務的地址
runinterval = 3600        # 每隔多久的時間進行自動更新,時間單位是秒(s)
listen = true           # 客戶端作爲一個服務進行監聽,允許其它的及其觸發puppet運行,允許遠程觸發puppet的節點配置

(2)Client生成證書:
Puppet 客戶端使用 HTTPS 和服務端(master)通信,爲了和服務器端通信必須有合法的 SSL 認證,第一次運行 puppet 客戶端的時候會生成一個 SSL 證書並指定發給 Puppet 服務端。

puppet agent --no-daemonize --onetime --verbose --debug --server=master.puppet.com

(3)Master簽字:
Puppet 服務端接受到客戶端的證書後必須簽字(sign)才能允許客戶端接入,簽字完後在服務端用“puppet cert list --all”查看會發現master.puppet.com前面多了一個 + ,這就表示“加入”成功,雙方就可以正常通信了。

puppet cert list --all
"client.puppet.com" (SHA256) 27:D6:B6:2A:A7:F7:97:D7:1A:CD:C2:C5:33:6F:40:80:54:44:7D:F0:BA:08:07:A6:BA:C3:14:12:3C:3D:8B:1A
+ "master.puppet.com" (SHA256) 46:0B:A6:93:8B:ED:0C:47:97:E8:A4:1C:9C:10:76:C8:91:3E:0F:A9:0A:F6:4C:24:00:9E:BD:4C:D7:22:1F:78 (alt names: "DNS:master.puppet.com", "DNS:puppet", "DNS:puppet.puppet.com")


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