開源自動化部署管理工具Puppet安裝

Puppet是一款開源的工具,使用自有的puppet描述語言,可管理配置文件、用戶、cron任務、軟件包、系統服務等。可以被其他人利用,而忽略公司差異,實現了自動化部署。

環境:

系統:centos5.5
1 首先安裝企業Linux(EPEL)yum的倉庫的額外的軟件包:

#rpm –Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

2 安裝centos需要的軟件包:

#yum install -y mysql mysql-devel mysql-server ruby ruby-devel ruby-irb ruby-mysql ruby-rdoc ruby-ri

我安裝的版本是ruby1.8.5 ,不要安裝1.87以上的版本,puppet還不支持。

mysql可以使用自己編譯安裝的

3 啓動mysql:

#service mysqld start

#chkconfig mysqld on

4 下載最近版本的puppet,我用的是編譯安裝,所以需要先安裝facter:

注:它的作用是收集主機的一些資料,比如CPU,主機IP等,facter把收集到值發送給puppet服務器端,服務器端就可以根據不同的條件來對不同的節點機器生成不同的puppet配置文件

#wget http://puppetlabs.com/downloads/facter/facter-latest.tgz

# tar zxvf facter-latest.tgz

# cd facter-1.5.8

# /usr/local/bin/ruby install.rb

5 下載安裝puppet主程序

# wget http://puppetlabs.com/downloads/puppet/puppet-2.6.3.tar.gz

# tar zxvf puppet-2.6.3.tar.gz

# cd puppet-2.6.3

# /usr/local/bin/ruby install.rb

6 修改hosts文件

server端

127.0.0.1 localhost.localdomain localhost puppet

192.168.8.56    client.dongwm.com

client端

192.168.8.200   puppet

7 Server端安裝與配置

1 拷貝源文件

#mkdir /etc/puppet
#cp conf/auth.conf /etc/puppet/
#cp conf/redhat/fileserver.conf /etc/puppet/
#cp conf/redhat/puppet.conf /etc/puppet/
#cp conf/redhat/server.init /etc/init.d/puppetmaster
#chmod +x /etc/init.d/puppetmaster
#chkconfig –add puppetmaster
#chkconfig puppetmaster on
#mkdir -p /etc/puppet/manifests

2 創建puppet帳號
# puppetmasterd –mkusers(執行中可能會出一些錯誤,基本上以前安裝或創建過puppet用戶的原因,執行就是讓它自動去 /var/lib/puppet下創建一些目錄)

#mkdir /var/lib/puppet/rrd && chown puppet.puppet /var/lib/puppet/rrd
3修改主機名(需要fqdn格式)

#hostname master.dongwm.com

# vi /etc/sysconfig/network

修改爲:HOSTNAME=master.dongwm.com

4啓動服務

*第一次啓動時puppet會自動創建所需的文件,包括一系列證書文件等

我建議使用DEBUG模式,可以看見啓動過程:

puppetmasterd -d –no-daemonize -v –trace

8 Client端配置

編譯安裝同server端

1 複製配置文件
#mkdir /etc/puppet
#cp conf/auth.conf /etc/puppet/
#cp conf/namespaceauth.conf /etc/puppet/
#cp conf/redhat/puppet.conf /etc/puppet/
#cp conf/redhat/client.init /etc/init.d/puppet
#chmod +x /etc/init.d/puppet
#chkconfig –add puppet
#chkconfig puppet on

2 創建puppet帳號
# puppetd –mkusers

#mkdir –r /var/lib/puppet/rrd &&chown puppet.puppet /var/lib/puppet/rrd

3 修改主機名
# hostname client.dongwm.com
# vi /etc/sysconfig/network
修改
HOSTNAME=client.dongwm.com

4 啓動服務

/etc/init.d/puppet start

注:當啓動puppet時,程序會根據puppet.conf中的配置自動向服務端發起證書驗證請求。

puppet.conf的詳細完整內容可以使用“puppet –genconfig | less”(master端使用puppetmasterd –genconfig | less)
命令詳細查看

5 簽名證書

我們在server端查看等待確認的證書:

#puppetca –list

client.okooo.com

全部認證:

#puppetca -s -a
注:也可以在master端的puppet.conf加這樣一行:

autosign = true

這樣就會自動簽證書了。


客戶端再請求一次:

#puppetd –test –server master.dongwm.com

err: Could not retrieve catalog from remote server: certificate verify failed

這是時間不同步的問題:

同步一下時間(兩端都執行):

#/usr/sbin/ntpdate time.nist.gov

刪除/var/lib/puppet/ssl目錄下的文件(或者在/etc/puppet/ssl),重新請求。

OK這次出現的正確的:

info: Caching certificate for client.dongwm.com

info: Caching certificate_revocation_list for ca

info: Caching catalog for client.dongwm.com

info: Applying configuration version ’1290862961′

info: Creating state file /var/lib/puppet/state/state.yaml

安裝成功!

FAQ:

安裝過程中能夠成功簽收證書需要注意的是一定要修改一下配置:

1 # hostname client.dongwm.com

2 # vi /etc/sysconfig/network

3#  vi /etc/hosts

 

發佈了4 篇原創文章 · 獲贊 9 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章