Python 微软 wordpress Windows 编程 开源 程序员 shell Firefox php apache centos Ubuntu mysql Android 云计算 java google nginx linux

Puppet集中配置管理系統安裝與配置

一、什麽是puppet?

1、基於ruby語言開發的系統配置集中管理工具,跨平臺

2、一個C/S架構,配置服務端和客戶端

puppet依賴於ruby與facter,安裝puppet3.x,需要ruby1.8.7版本及以上;facter是一個系統盤點工具,收集主機的一些資料,比如OS、ip、CPU等

3、puppet是一個C/S結構,開源軟件,基於Ruby的系統配置管理工具,安裝puppet3.x,需要ruby1.8.7版本及以上

4、默認情況下,客戶端每隔30分鐘連接一次puppet服務端

5、能管理多達40種資源,例如:file、user、cron、package、yum等,適合整個軟件的生命周期管理

二、環境介紹

1、拓撲圖

 

105445744.jpg

2、下載

操作系統RHEL6.3 x64

facter下載: https://downloads.puppetlabs.com/facter/

puppet下載: https://downloads.puppetlabs.com/puppet/

3、puppetmaster與puppetclient可以相互解析

vi /etc/hosts

192.168.0.200 puppetmaster.com

192.168.0.201 puppetclient1.com

4、puppet服務端與客戶端時間同步

yum install ntp -y

service ntpd start

ntpdate pool.ntp.org #同步時間

clock -w #將時間寫入硬件

chkconfig ntpd on

三、安裝服務端puppet

1、安裝ruby環境

1

[root@puppetmaster ~]# yum install -y ruby ruby-libs ruby-shadow

2、安裝facter

1

2

3

[root@puppetmaster ~]# tar zxvf facter-1.7.3.tar.gz

[root@puppetclient1 ~]# cd facter-1.7.3

[root@puppetmaster facter-1.7.3]# ruby install.rb

3、安裝配置puppet

1

2

3

4

5

6

7

[root@puppetmaster puppet-3.3.1]# useradd -s /sbin/nologin puppet

[root@puppetmaster ~]# tar zxvf puppet-3.3.1.tar.gz

[root@puppetclient1 ~]# cd puppet-3.3.1

[root@puppetclient1 puppet-3.3.1]# ruby install.rb

[root@puppetmaster puppet-3.3.1]# cp ext/redhat/puppet.conf /etc/puppet/

[root@puppetmaster puppet-3.3.1]# cp ext/redhat/server.init /etc/init.d/puppetmaster

[root@puppetmaster puppet-3.3.1]# chmod +x /etc/init.d/puppetmaster

1

2

3

[root@puppetmaster ~]# vi /etc/puppet/puppet.conf

[main]  #在main裏面添加puppet服務端主機名

server = puppetmaster.com

1

2

3

[root@puppetmaster puppet-3.3.1]# chkconfig --add puppetmaster

[root@puppetmaster puppet-3.3.1]# chkconfig puppetmaster on

[root@puppetmaster puppet-3.3.1]# service puppetmaster start

四、安裝客戶端puppet agent

1、安裝ruby環境

1

[root@puppetclient1 ~]# yum install -y ruby ruby-libs ruby-shadow

2、安裝facter

1

2

3

[root@puppetclient1 ~]# tar zxvf facter-1.7.3.tar.gz

[root@puppetclient1 ~]# cd facter-1.7.3

[root@puppetclient1 facter-1.7.3]# ruby install.rb

3、安裝配置puppet

1

2

3

4

5

6

[root@puppetclient1 puppet-3.3.1]# useradd -s /sbin/nologin puppet

[root@puppetclient1 ~]# tar zxvf puppet-3.3.1.tar.gz

[root@puppetclient1 puppet-3.3.1]# ruby install.rb

[root@puppetclient1 puppet-3.3.1]# cp ext/redhat/puppet.conf /etc/puppet/puppet.conf

[root@puppetclient1 puppet-3.3.1]# cp ext/redhat/client.init /etc/init.d/puppet

[root@puppetclient1 puppet-3.3.1]# chmod +x /etc/init.d/puppet

1

2

3

[root@puppetclient1 ~]# vi /etc/puppet/puppet.conf

[main]  #在main裏面添加puppet服務端主機名

server = puppetmaster.com

1

2

3

4

[root@puppetclient1 puppet-3.3.1]# chkconfig --add puppet

[root@puppetclient1 puppet-3.3.1]# chkconfig puppet on

[root@puppetclient1 puppet-3.3.1]# service puppet start

[root@puppetclient1 puppet-3.3.1]# netstat -tupln | grep 8140

五、配置簽名證書

1、客戶端創建證書註冊請求

1

2

3

4

5

6

[root@puppetclient1 ~]# puppet agent --test

info: Creating a new SSL key for puppetclient1.com

Info: Caching certificate for ca

Info: Creating a new SSL certificate request for puppetclient1.com

Info: Certificate Request fingerprint (SHA256): 7E:10:48:3F:3C:D4:13:BA:BF:66:ed:86:52:92:19:05:1E:D2:3A:CD:06:67:27:80:60:D6:54:66:0E:33:F7:C7

Exiting; no certificate found and waitforcert is disabled

2、服務端查看證書註冊請求

1

2

3

[root@puppetmaster ~]# puppet cert list  #加--all查看所有

  "puppetclient1.com"     (SHA256) 7E:10:48:3F:3C:D4:13:BA:BF:66:ED:86:52:92:19:05:1E:D2:3A:CD:06:67:27:80:60:D6:54:66:0E:33:F7:C7

  "puppetclient1.com.com" (SHA256) 46:B6:95:A6:1B:6A:FD:83:E4:1C:72:D4:5C:3C:B5:EF:3D:F7:43:2C:09:CF:00:B8:44:18:E4:3E:B3:DC:6F:FD

3、服務端受理客戶端證書註冊請求

1

2

3

[root@puppetmaster ~]# puppet cert sign puppetclient1.com  #主機名改為--all,是受理所有

Notice: Signed certificate request for puppetclient1.com

Notice: Removing file Puppet::SSL::CertificateRequest puppetclient1.com at '/var/lib/puppet/ssl/ca/requests/puppetclient1.com.pem'

4、客戶端確認是否證書註冊成功

1

[root@puppetclient1 ~]# puppet agent --test

如果出現以下報錯,則在客戶端puppet.conf配置文件[main]裏面添加pluginsync=false,再重啟!

1

Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppetmaster.com/plugins

5、想清除證書使用

1

[root@puppetmaster ~]# puppet cert clean puppetclient1.com

六、簡單測試

1、服務端編寫配置

1

2

3

4

5

6

7

8

[root@puppetmaster ~]# vi /etc/puppet/manifests/site.pp #修改後立即,無需重啟

node 'puppetclient1.com' {      #指定某臺,也可以不寫為所有

file { "/tmp/test.txt":

            content=> "hello,puppet test\n";

            #source=> "puppet://$puppetserver/files/httpd.conf"

            #也可以這樣分發一個配置文件

    }

}

註:file是一個資源管理關鍵字,用來管理文件的,還有package軟件包管理,service管理系統服務,exec執行Shell命令,/tmp/test.txt是創建文件名字,content定義文件內容

2、客戶端默認30分鐘與服務端同步配置文件,所以我們手動執行,也可以修改puppet.conf更改默認時間,添加runinterval=600,設置為10分鐘同步一次

1

2

3

[root@puppetclient1 ~]# puppet agent --test

[root@puppetclient1 ~]# ls /tmp/

test.txt

至此,Puppet系統安裝配置完成!

延伸阅读

    评论