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

相关文章
相关标签/搜索