共计 5706 个字符,预计需要花费 15 分钟才能阅读完成。
Puppet 是一种 Linux、Unix、windows 平台的集中配置管理系统,使用自有的 Puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。Puppet 把这些系统实体称之为资源,Puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Puppet 系统架构
Puppet 是开源的基于 Ruby 的系统配置管理工具,puppet 是一个 C / S 结构, 当然, 这里的 C 可以有很多, 因此, 也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个 puppet 客户端每半小时 (可以设置) 连接一次服务器端, 下载最新的配置文件, 并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错, 也会给服务器端反馈一个消息。
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
工作步骤
1. 客户端 Puppetd 向 Master 发起认证请求,或使用带签名的证书。
2. Master 告诉 Client 你是合法的。
3. 客户端 Puppetd 调用 Facter,Facter 探测出主机的一些变量,例如主机名、内存大小、IP 地址等。Puppetd 将这些信息通过 SSL 连接发送到服务器端。
4. 服务器端的 Puppet Master 检测客户端的主机名,然后找到 manifest 对应的 node 配置,并对该部分内容进行解析。Facter 送过来的信息可以作为变量处 理,node 牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错;如果语法没错,就继续解析,解析的结 果生成一个中间的“伪代码”(catelog),然后把伪代码发给客户端。
5. 客户端接收到“伪代码”,并且执行。
6. 客户端在执行时判断有没有 File 文件,如果有,则向 fileserver 发起请求。
7. 客户端判断有没有配置 Report,如果已配置,则把执行结果发送给服务器。
8. 服务器端把客户端的执行结果写入日志,并发送给报告系统。
部署规划
服务器 192.168.137.10 Hehe
客户端 192.168.137.101 localhost.localdomain
安装
因为是基于 ruby 的,所以需要安装 ruby need 的环境(客户端 / 服务器端均需要安装)
libselinux-utils
ruby-libs
ruby
libselinux-ruby
augeas-libs
ruby-shadow
ruby-augeas
yum install dmidecode// 注释:centOS6 需要装
yum install pciutils// 注释:centOS6 需要装
facter,用来采集本机数据的
上述软件直接采用 yum 安装就好
安装完必备环境后,就可以安装 puppet 了。
可以源码安装,也可以 rpm 安装,客户端只需安装 puppet,服务器端还需要安装 Puppet-server。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103129p2.htm
配置
配置主机名(服务器端,客户端同样处理)
vi /etc/sysconfig/network
hostname 设置成自己想要的,一般情况不动就可以
可以运行 hostname 查看。
vi /etc/hosts,把服务器客户端的 ip 以及对应的主机名都加进去。
呵呵。。。这样就配完了。。我一开始还错了。
接下来就是启动和链接了。
服务器端启动
/etc/init.d/puppetmasterd start
检查
netstat -anpt | grep 8140
客户端启动
/etc/init.d/puppet start
检查
netstat -an | grep 8139
客户端向服务端申请证书
puppetd –test –server Hehe
info: Caching certificate for ca
info: Creating a new SSL certificate request for agent165.jiu.com
info: Certificate Request fingerprint (md5): BC:9C:93:4C:8E:71:8A:EB:E0:1E:F0:99:DC:37:BA:E5
Exiting; no certificate found and waitforcert is disabled
服务端审批证书
puppetca -s localhost.localdomain
这样就好了。
下面测试
puppet 同步管理功能测试。puppet 文件需要在 /etc/puppet/manifests/site.pp 中写任务。
[root@master ~]# cd /etc/puppet/manifests/
[root@master manifests]# more site.pp
node default{
file {“/tmp/Puppet_test.txt”:
content => “My english name is Taokey.”;}
}
重新启动下 puppet。
[root@master ~]# /etc/init.d/puppetmasterd restart
停止 puppetmaster:[确定]
启动 puppetmaster:[确定]
[root@master ~]# chmod +x /etc/puppet/manifests/site.pp
[root@master ~]# /etc/puppet/manifests/site.pp
/etc/puppet/manifests/site.pp: line 1: node: command not found
/etc/puppet/manifests/site.pp: line 2: file: command not found
/etc/puppet/manifests/site.pp: line 3: syntax error near unexpected token `}’
/etc/puppet/manifests/site.pp: line 3: `content => “My english name is Taokey.”;}’
在客户端同步任务,默认是半个小时同步一次。
[root@agent165 ~]# puppetd –test –server master.jiu.com
info: Caching catalog for agent165.jiu.com
info: Applying configuration version ‘1398159168’
notice: /Stage[main]//Node[default]/File[/tmp/Puppet_test.txt]/content:
— /tmp/Puppet_test.txt 2014-04-22 17:11:09.000000000 +0800
+++ /tmp/puppet-file.28330.0 2014-04-22 17:32:33.000000000 +0800
@@ -1 +1 @@
– taokey are handsome
\ No newline at end of file
+My english name is Taokey.
\ No newline at end of file
info: FileBucket adding {md5}f8b6f91540f80377f00e8e73bed18992
info: /Stage[main]//Node[default]/File[/tmp/Puppet_test.txt]: Filebucketed /tmp/Puppet_test.txt to puppet with sum f8b6f91540f80377f00e8e73bed18992
notice: /Stage[main]//Node[default]/File[/tmp/Puppet_test.txt]/content: content changed ‘{md5}f8b6f91540f80377f00e8e73bed18992’ to ‘{md5}4e616a37997cf68dd0f15702af9ceca1’
notice: Finished catalog run in 0.14 seconds
查看 agent165 这台服务器是否生成相应文件。
[root@agent168 ~]# more /tmp/Puppet_test.txt
My english name is Taokey.
到此为止,实验结束。
Puppet 的详细介绍:请点这里
Puppet 的下载地址:请点这里
Puppet 是一种 Linux、Unix、windows 平台的集中配置管理系统,使用自有的 Puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。Puppet 把这些系统实体称之为资源,Puppet 的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
Puppet 系统架构
Puppet 是开源的基于 Ruby 的系统配置管理工具,puppet 是一个 C / S 结构, 当然, 这里的 C 可以有很多, 因此, 也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个 puppet 客户端每半小时 (可以设置) 连接一次服务器端, 下载最新的配置文件, 并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错, 也会给服务器端反馈一个消息。
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
工作步骤
1. 客户端 Puppetd 向 Master 发起认证请求,或使用带签名的证书。
2. Master 告诉 Client 你是合法的。
3. 客户端 Puppetd 调用 Facter,Facter 探测出主机的一些变量,例如主机名、内存大小、IP 地址等。Puppetd 将这些信息通过 SSL 连接发送到服务器端。
4. 服务器端的 Puppet Master 检测客户端的主机名,然后找到 manifest 对应的 node 配置,并对该部分内容进行解析。Facter 送过来的信息可以作为变量处 理,node 牵涉到的代码才解析,其他没牵涉的代码不解析。解析分为几个阶段,首先是语法检查,如果语法错误就报错;如果语法没错,就继续解析,解析的结 果生成一个中间的“伪代码”(catelog),然后把伪代码发给客户端。
5. 客户端接收到“伪代码”,并且执行。
6. 客户端在执行时判断有没有 File 文件,如果有,则向 fileserver 发起请求。
7. 客户端判断有没有配置 Report,如果已配置,则把执行结果发送给服务器。
8. 服务器端把客户端的执行结果写入日志,并发送给报告系统。
部署规划
服务器 192.168.137.10 Hehe
客户端 192.168.137.101 localhost.localdomain
安装
因为是基于 ruby 的,所以需要安装 ruby need 的环境(客户端 / 服务器端均需要安装)
libselinux-utils
ruby-libs
ruby
libselinux-ruby
augeas-libs
ruby-shadow
ruby-augeas
yum install dmidecode// 注释:centOS6 需要装
yum install pciutils// 注释:centOS6 需要装
facter,用来采集本机数据的
上述软件直接采用 yum 安装就好
安装完必备环境后,就可以安装 puppet 了。
可以源码安装,也可以 rpm 安装,客户端只需安装 puppet,服务器端还需要安装 Puppet-server。
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103129p2.htm