puppet集中配置管理系統

參考:http://puppet.wikidot.com html

puppet是一個配置管理工具, 典型的, puppet是一個C/S結構, 固然,這裏的C能夠有不少,所以,也能夠說是一個星型結構. 全部的puppet客戶端同一個服務器端的puppet通信. 每一個puppet客戶端每半小時(能夠設置)鏈接一次服務器端, 下載最新的配置文件,而且嚴格按照配置文件來配置服務器. 配置完成之後,puppet客戶端能夠反饋給服務器端一個消息. 若是出錯,也會給服務器端反饋一個消息,做爲系統管理員的你能夠更快的完成工做,由於你能夠用puppet來處理全部的管理細節. 甚至你還能夠下載其餘管理員的puppet代碼來讓你的工做完成的更快 node

puppet的目的是讓你只集中於你要管理的目標,而忽略實現的細節,例如命令名,參數或者文件格式. puppet把系統裏面的用戶,軟件包,服務 看做是"資源", puppet的做用就是管理這些資源以及資源之間的相互聯繫. mysql

puppet既能夠在單機上使用,也能夠以c/s結構使用.在大規模使用puppet的狀況下,一般使用c/s結構.在這種結構中puppet客戶端只是指運行puppet的服務器,puppet服務器端是隻運行puppetmaster的服務器. linux

puppet客戶端首先會鏈接到puppet服務器端,而且經過facter 工具把客戶端的配置信息發送給服務器端. 服務器端經過分析客戶端的主機名,經過node 定義,找到該主機的配置代碼,而後編譯配置代碼,把編譯好的配置代碼發回客戶端. 客戶端執行代碼完成配置.而且把代碼執行狀況反饋給puppet服務器端. web

實驗: sql

server:desktop93.example.com 數據庫

client:desktop100.example.com(這裏只有一個客戶端) json

下載軟件: ruby

facter-1.6.13-1.el6.x86_64.rpm rubygem-json-1.4.6-1.el6.x86_64.rpm 服務器

hiera-1.1.0-1.el6.noarch.rpm rubygem-rake-0.8.7-2.1.el6.noarch.rpm

puppet-3.0.1-1.el6.noarch.rpm rubygems-1.3.7-1.el6.noarch.rpm

puppet-server-3.0.1-1.el6.noarch.rpm ruby-shadow-1.4.1-13.el6.x86_64.rpm

ruby-augeas-0.4.1-1.el6.x86_64.rpm

server端安裝:puppet-server client端安裝:puppet

1.客戶端發起認證:

puppet集中配置管理系統 - 了了 - 了了的博客

2.服務器端確認:

puppet集中配置管理系統 - 了了 - 了了的博客

3.證書被確認:

puppet集中配置管理系統 - 了了 - 了了的博客

4.服務器端:cd /etc/puppet/manifests/ touch size.pp

/etc/init.d/puppetmaster start

5.客戶端: /etc/init.d/puppet start

6.測試1server: vi /etc/puppet/manifests/size.pp

file { "/var/www/html/index.html": content => "www.example.com" }

(參考:http://puppet.wikidot.com / 資源管理類型指南)

client: puppet agent --server=desktop93.example.com --no-daemonize --onetime

(會自動下載最新的配置文件,並運行)

server: cat /var/www/html/index.html

www.example.com 表示成功

測試2vi /etc/puppet/manifests/size.pp

file { "/public":

ensure => directory

}

mount { "/public":

device => "192.168.0.254:/var/ftp/pub",

fstype => "nfs",

options => "defaults",

ensure => mounted

}

client:

puppet集中配置管理系統 - 了了 - 了了的博客

自動簽證:在 server , 編輯 puppet.conf 文件:

[main]

autosign = true #容許全部客戶端的認證

/etc/puppet 目錄下建立 autosign.conf 文件,內容以下:

*.example.com #表示容許全部 example.com 域的主機

# service puppetmaster reload

web監控記錄:

server:所需軟件安裝:

rpm -ivh ruby-mysql-2.8.2-1.el6.x86_64.rpm

rpm -ivh puppet-dashboard-1.2.12-1.el6.noarch.rpm

yum install mysql-server -y

/etc/init.d/mysqld start

cd /usr/share/puppet-dashboard/config/ ;

vi database.yml

production:

database: dashboard_production

username: dashboard

password: westos

encoding: utf8

adapter: mysql

vi test.sql

CREATE DATABASE dashboard_production CHARACTER SET utf8;

CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'westos';

GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';

mysql < test.sql ---建立所需數據庫

vi settings.yml

time_zone: 'Beijing' ---時區設置

cd /usr/share/puppet-dashboard/

rake RAILS_ENV=production db:migrate ---創建 dashboard 所需的數據庫和表

/etc/init.d/puppet-dashboard start

/etc/init.d/puppet-dashboard-workers start ---有提示

chmod 0666 /usr/share/puppet-dashboard/log/production.log

/etc/init.d/puppet-dashboard-workers restart

vi /etc/puppet/puppet.conf

[main]

reports = http

reporturl = http://192.168.0.93:3000/reports

/etc/init.d/puppetmaster reload

client端配置:

vi /etc/puppet/puppet.conf

[agent]

report = true

/etc/init.d/puppet reload

試着在服務器端增長一個條規則,在客戶端執行更新,訪問:http:desktop93.

example.com:3000

puppet集中配置管理系統 - 了了 - 了了的博客

相關配置:

server: /etc/sysconfig/puppet

PUPPET_SERVER=puppet 主機地址

PUPPET_PORT=8140 監聽端口

PUPPET_LOG=/var/lo

g/puppet/pupp

et.log 本地日誌

PUPPET_EXTRA_OPTS=--waitforcert=500 默認同步時間

client:/etc/puppet/puppet.conf

[agent]

runinternal = 60 60秒與服務器同步一次

                                                                 http://blog.163.com/sjt_linux

相關文章
相關標籤/搜索