puppet
學習之puppet的安裝和配置
一、puppet
簡介puppet
基於ruby
語言開發的自動化系統配置工具,可以
c/s模式或獨立執行,支援對所有
unix
及類unix
系統的配置管理,最新
版本也開始支援對
windows
作業系統有限的一些管理
。puppet
適用於伺服器管的整個過程
,比如初始安裝、配置更新以及系統下線。
二、puppet
的安裝puppet
的安裝方式支援原始碼安裝、
yum安裝以及
ruby
的gem
安裝。官網推薦使用
yum來安裝
puppet
,方面以後的公升級、管理、維護。
centos
可以採用
yum來安裝,但是
centos
的預設源中沒有
puppet
包,因此需要先安裝
epel
包。epel
是企業版
linux
附加軟體包
(extra packages for enterprise linux)
的縮寫,是乙個由特別興趣小組建立、維護並管理的,針對
紅帽企業版
linux(rhel)
及其衍生發行版(比如
centos
、scientific linux)
的乙個高質量附加軟體包專案。
1.master
的安裝yum -y install ruby ruby-libs
ruby-shadow
wget
rpm -uvh epel-release-5-3.noarch.rpm
yum -y install puppet puppet-server
facter
2.agent
的安裝yum install ruby ruby-libs ruby-shadow
wget
rpm -uvh epel-release-5-3.noarch.rpm
yum -y install puppet facter
至此如果安裝過程不報錯的話,
puppet
已經安裝成功了。
三、puppet
的簡單配置
1.master
的配置先來看看
puppet
主目錄下都有什麼檔案已經每個檔案是做什麼用的:
ls -1 /etc/puppet/
auth.conf#
定義puppet master
的acl
檔案fileserver.conf#
定義puppet master
檔案伺服器的配置檔案
manifests #puppet
指令碼主檔案目錄,
site.pp
檔案必須存在
modules#puppet
模組目錄
puppet.conf#puppet
主配置檔案
ssl#
存放ssl
證書的目錄
剛開始的話,
puppet.conf
不需要配置就可以滿足。
需要更改
hosts
檔案,注意
hosts
要和主機名對應。
vim /etc/hosts
新增如下內容:
10.1.4.218 puppet.zhang.com puppet
10.1.4.213 node1.zhang.com node1
10.1.4.214 node2.zhang.com node2
大家要根據實際情況加,我這裡是乙個
master
,兩個agent。2.
agent
的配置agent
的配置主要是更改
agent
上的/etc/puppet/puppet.conf
檔案的[agent]
部分。在
agent
上vim /etc/puppet/puppet.conf
新增如下配置
server = puppet.zhang.com#master
伺服器的位址
runinterval = 3600
#每隔多久的時間進行自動更新
,時間單位為秒
listen =
true#
客戶端作為乙個服務進行監聽,允許其它的機
器觸發puppet
執行允許遠端觸發
puppet
的節點配置
四、puppet
的啟動和停止
1.master
的啟動和停止
master
的啟動/etc/rc.d/init.d/puppetmaster start
也可以以採用
service
puppetmaster start
啟動第一次啟動建議採用
puppet master --verbose --no-daemonize
方式啟動,有助於測試和除錯錯誤,如果採用後面這種方式,你可以看到啟動的整個過程,啟動過程會做一些初始化的工作,為
master
建立本地證書認證中心,證書和
key。並開啟
socket
等待client
的連線。你可以在
/etc/puppet/ssl
目錄看到相關的檔案和目錄。
master
的停止/etc/rc.d/init.d/puppetmaster stop
也可以以採用
service
puppetmaster stop
停止更改多選項可以使用
/etc/rc.d/init.d/puppetmaster –h
檢視2.
agent
的啟動和停止
agent
的啟動/etc/rc.d/init.d/puppet start
也可以採用
service puppet start
來啟動除錯的時候可以採用
puppet agent --server=puppet.zhang.com
--no-daemonize –verbose
的方式來啟動,這樣啟動我們可以看到
agent
是如何和
master
建立連線的。
agent
的停止/etc/rc.d/init.d/puppet stop
也可以採用
service puppet stop
來停止。
五、faq
1.連線
master
的時候出現如下報錯:
dnsdomainname: unknown host
解決辦法:檢查機器主機名的設定,以及是否新增進
hosts。2.
連線master
的時候出現如下報錯:
err: could not request certificate: getaddrinfo:
name or service not known
解決辦法:伺服器端沒有配置
hosts
網域名稱繫結,在
hosts
中新增。
3.連線
master
的時候出現如下報錯:
warning: peer certificate won't be
verified in this ssl session
解決辦法:服務端還沒有返回簽發證書,使用
puppet cert --list
檢視4.
連線master
的時候出現如下報錯:
err: could not retrieve catalog from
remote server: certificate verify failed
解決辦法:客戶端和伺服器端時間不同步,
ssl連線需要依賴主機上的時間是否正確。執行更新時間的命令:
/sbin/ntpdate asia.pool.ntp.org
puppet 學習小記
之前做puppet部署openstack keystone,接觸過一點點puppet,記錄一下 首先是一些基本的知識。puppet分master節點和client節點,client節點請求master節點控制,master同意控制,發布證書,然後到client節點上執行puppet agent te...
Puppet學習之exec資源管理
puppet 學習之exec資源管理 一 puppet exec 簡介puppet 通過exec來執行外部的命令或者指令碼,一般來講是shell指令碼 這裡面就涉及到乙個重複執行的問題,因為預設的agent一連線上來就會自動執行對應的命令或者指令碼。如果指令碼重複執行對系統沒影響的還無所謂,如果會對...
puppet之模板和類
vim etc puppet manifests site.pp 1 import nodes pp 建立節點檔案 2 安裝模組 3 配置部分 4服務管理 讓server4執行此模組 vim etc puppet manifests nodes server3.pp 1 node server4.e...