天天看點

Puppet + pssh 批量管理工具

Puppet學習之puppet的安裝和配置

               PSSH的安裝和使用     

 ===========================================================

PSSH安裝 (pssh是一個輕量批量管理工具)

(系統中已經安裝有python)

隻需要在主節點上安裝pssh

下載下傳位址 http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

解壓後進入該目錄,安裝

wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

tar -xvf pssh-2.3.1.tar.gz

cd pssh-2.3.1

python setup.py build

python setup.py install

PSSH配置

配置主要有兩項内容,一、從結點的IP清單檔案;二、主節點到從節點的ssh無密鑰登入

IP清單檔案就是将從結點的IP按行存在一個檔案裡,我給它命名為host_list.txt,裡面共有99行,第一行172.16.0.2

下面是ssh無密鑰登入

由于好多很多操作需要有sudo權限,是以盡量ssh無密鑰登入到從節點的root使用者下。

ssh-keygen  (然後按提示輸入資訊)

ssh-copy-id  –i ~/.ssh/id_rsa.pub [email protected] (将密鑰複制到從節點,需要輸入密碼)

PSSH使用

pscp -h host_list.txt -r source_file_path destination_file_path

#例如将主節點的/home/master/1.txt拷貝到從節點的/home/slave/目錄下

pscp -h host_list.txt -r /home/master/1.txt /home/slave/

#pscp是遠端拷貝檔案,如從主節點将檔案分發到所有從節點

pssh -h host_list.txt -P "command"

#例如在從節點建立新目錄/home/slave/test

pssh -h host_list.txt -P "mkdir /home/slave/test"

使用PSSH應該會的指令

pssh結合腳本使用比較高效,有以下幾個指令可能會用到

sed

cat

重定向 >>與>

expect

======================================================================================

Puppet簡介

Puppet基于ruby語言開發的自動化系統配置工具,可以C/S模式或獨立運作,支援對所有UNIX及類UNIX系統的配置管理,最新版本也開始支援對Windows作業系統有限的一些管理。Puppet适用于伺服器管的整個過程 ,比如初始安裝、配置更新以及系統下線。

Puppet的安裝

1. Master的安裝

yum -y install ruby ruby-libs ruby-shadow

wget ftp://ftp.sunet.se/pub/Linux/distributions/yellowdog/yum/6.2/extras/RPMS/epel-release-5-3.noarch.rpm

rpm -Uvh epel-release-5-3.noarch.rpm

yum -y install puppet puppet-server facter

2. Agent的安裝

yum install ruby ruby-libs ruby-shadow

yum -y install puppet facter

         至此如果安裝過程不報錯的話,puppet已經安裝成功了。

Puppet的簡單配置

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的啟動和停止

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

連接配接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

      本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1537803,如需轉載請自行聯系原作者