共计 3768 个字符,预计需要花费 10 分钟才能阅读完成。
puppet 是一个配置管理工具, 典型的, puppet 是一个 C / S 结构, 当然, 这里的 C 可以有很多, 因此, 也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个 puppet 客户端每半小时 (可以设置) 连接一次服务器端, 下载最新的配置文件, 并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错, 也会给服务器端反馈一个消息,作为系统管理员的你可以更快的完成工作, 因为你可以用 puppet 来处理所有的管理细节. 甚至你还可以下载其他管理员的 puppet 代码来让你的工作完成的更快
puppet 的目的是让你只集中于你要管理的目标, 而忽略实现的细节, 例如命令名, 参数或者文件格式. puppet 把系统里面的用户, 软件包, 服务 看作是 ” 资源 ”, puppet 的作用就是管理这些资源以及资源之间的相互联系.
puppet 既可以在单机上使用, 也可以以 c / s 结构使用. 在大规模使用 puppet 的情况下, 通常使用 c / s 结构. 在这种结构中 puppet 客户端只是指运行 puppet 的服务器,puppet 服务器端是只运行 puppetmaster 的服务器.
puppet 客户端首先会连接到 puppet 服务器端, 并且通过 facter 工具把客户端的配置信息发送给服务器端. 服务器端通过分析客户端的主机名, 通过 node 定义, 找到该主机的配置代码, 然后编译配置代码, 把编译好的配置代码发回客户端. 客户端执行代码完成配置. 并且把代码执行情况反馈给 puppet 服务器端.
实验:
server:desktop93.example.com
client:desktop100.example.com(这里只有一个客户端)
下载软件:
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. 客户端发起认证:
2. 服务器端确认:
3. 证书被确认:
4. 服务器端:cd /etc/puppet/manifests/;touch size.pp
/etc/init.d/puppetmaster start
5. 客户端:/etc/init.d/puppet start
6. 测试 1:server: 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 表示成功
测试 2:vi /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:
自动签证:在 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
相关配置:
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 秒与服务器同步一次
Puppet 学习系列:
Puppet 学习一:安装及简单实例应用 http://www.linuxidc.com/Linux/2013-08/88710.htm
Puppet 学习二: 简单模块配置和应用 http://www.linuxidc.com/Linux/2013-08/88711.htm
相关阅读:
有关 Puppet agent 端三种备份恢复方案探讨研究 http://www.linuxidc.com/Linux/2013-07/87885.htm
选择更安全的方式注册你的 Puppet 节点 http://www.linuxidc.com/Linux/2013-07/87884.htm
通过配置 SSH 深刻理解 Puppet 的语法及工作机制 http://www.linuxidc.com/Linux/2013-07/87882.htm
Puppet 利用 Nginx 多端口实现负载均衡 http://www.linuxidc.com/Linux/2013-02/79794.htm
CentOS(5 和 6)下 Puppet 的 C / S 模式实例 http://www.linuxidc.com/Linux/2011-12/50502.htm
Puppet 的详细介绍:请点这里
Puppet 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/121953.htm