阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Puppet配置小结

117次阅读
没有评论

共计 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

工作步骤

 

Puppet 配置小结

图 1 Puppet 工作流程

 

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

Puppet 配置小结

hostname 设置成自己想要的,一般情况不动就可以

可以运行 hostname 查看。

vi /etc/hosts,把服务器客户端的 ip 以及对应的主机名都加进去。

Puppet 配置小结

呵呵。。。这样就配完了。。我一开始还错了。

接下来就是启动和链接了。

服务器端启动

/etc/init.d/puppetmasterd start

检查

netstat -anpt | grep 8140

Puppet 配置小结

客户端启动

/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

工作步骤

 

Puppet 配置小结

图 1 Puppet 工作流程

 

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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计5706字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中