PUPPET集中配置(一)

PUPPET集中配置管理系统较之于其他管理工具具有稳定性,能够管理服务器的整个管理周期,并使其配置有条不紊,会让你的系统同配置要求保持一致。本次通过 C/S 架构的配置使用Puppet 自带的语言来配置 Server 上的文件系统,Cron任务等,然后在各个服务器实现配置。通过对 Manifests 内 Nodes 与 Site.pp 等配置的编辑和修改,只需在 Server 端进行简单的编辑就可以实现集中配置管理。在 Nginx配置时, Nginx 会在启动时直接调用Puppet,而默认每半个小时的 Client 从 Server 的更新让配置更加紧密同步,成功配置完成之后 Client 会向 Server 端反馈一个消息,若配置失败,也会反馈一个消息。

原理图:

系统环境:rhel 6.5 (selinux&iptables disabled)

Puppet master : 192.168.122.101 server1.example.com

Puppet client :192.168.122.102 server2.example.com

192.168.122.103 server3.example.com

*******DATE一定要同步,否则验证会失败*******

一,安装puppet

YUM 源及其所需安装包

[puppet]

name=puppet

baseurl=http://yum.puppetlabs.com/el/6Server/products/x86_64/

gpgcheck=0

[ruby]

name=ruby

baseurl=http://yum.puppetlabs.com/el/6Server/dependencies/x86_64/

gpgcheck=0

#Yum install

rubygems-1.3.7-5.el6.noarch.rpm

facter-2.4.4-1.el6.x86_64.rpm

hiera-1.3.4-1.el6.noarch.rpm

rubygem-json-1.5.5-3.el6.x86_64.rpm

ruby-shadow-2.2.0-2.el6.x86_64.rpm

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

puppet-3.8.1-1.el6.noarch.rpm

puppet-server-3.8.1-1.el6.noarch.rpm(只有SERVER1服务端才安装SERVER,Client不安装此包)

#Date 命令检查各个服务器的时间是否一致

二.客户端请求认证

puppet cert list

puppet cert list-all

puppet cert sign server2.example.com(许可server2 向 server1建立连接)

ERROR 说明server2并没有向server1请求认证,当然,因为我们还没有发送过请求信息。

处理步骤:

1..)  在 agent端执行  puppet agent server server1.example.com--no-daemonize -vt 来给master发送认证请求。

client 向 master 发出证书验证请求,然后等待 master 签名并返回证书。

参数 --server 指定了需要连接的 puppet master 的名字或是地址,默认连接名为                                 “puppet”的主机,如要修改默认连接主机可以修改/etc/sysconfig/puppet 文件中的                               PUPPET_SERVER=puppet 选项

参数 --no-daemonize 是 puppet 客户端运行在前台

参数 -vt指test与 verbose(使客户端输出详细的日志)

2.) 然后在master执行    puppet cert sign server2.example.com 来签名认证agent上的请求。

3.)  最后agent 端再次执行 puppet agent server server1.example.com就能获取认证。

agent端得到上述图的结果就证明认证成功。

那么如何删除认证重新认证呢?如下图所示:

系统给定了它的处理方法,我就不再赘述了。

但是要记住,masteragent 都要删除认证信息并刷新的。

重新认证步骤跟之前的步骤相同的。

如要同时签名所有证书,执行以下命令:

# puppet cert sign--all

# puppet certclean desktop2.example.com

#删除签名证书

 

自动验证:

在 server 端, 编辑 puppet.conf 文件:

[main]

autosign =true   #允许所有客户端的认证

在/etc/puppet目录下创建 autosign.conf 文件,内容如下:

*.example.com      #表示允许所有 example.com 域的主机

# service puppetmaster reload

在 client 端只需执行:

server puppetstart即可。

三,对puppet内资源编辑定义

Master:

[[email protected]]# pwd

/etc/puppet/

[[email protected]]# vim /etc/puppet/manifests/site.pp

file {

        "/mnt/ADORU":

        content => "ADORU.COM\n";

#       source =>"puppet:///files/passwd"

}

[[email protected]]# vim /etc/puppet/fileserver.conf 

在最后一行加上   

 [files]

 path /etc/puppet/files

 allow *

 

AGENT:

[[email protected]]# puppet agent --server server1.example.com --no-daemonize -vt 

[[email protected]]# cat /mnt/ADORU

ADORU.COM  可以看到server3的内容与我们的MASTER规定的内容相同。

于是我们在MASTERsite.pp所写的内容就被传至了AGENT/mnt/ADORU

MASTER

这次我们换作直接将/etc/puppet/files/passwd 文件同步到AGENT上面

[[email protected]]# mkdir /etc/puppet/files/

[[email protected]]# cp /etc/passwd /etc/puppet/files/

[[email protected]]# md5sum files/passwd(用来与AGENT作比对,确定内容一致)

ce995678da5101eee20bfb6f2425e9b9  files/passwd

[[email protected]]# vim ./manifests/site.pp

file {

        "/mnt/ADORU":

#       content => "ADORU.COM\n";

        source =>"puppet:///files/passwd"

}

 

AGENT上执行puppetagent --server server1.example.com --no-daemonize -vt

可以看到我们的内容确实得到更新,md5发生了改变

而且/mnt/ADORU的内容发生变化,其md5值与上面的 passwd文件md5值相等为ce995678da5101eee20bfb6f2425e9b9

那么内容呢,我们在AGENTcat /mnt/ADORU

没错呢,内容也是一样的,除此之外,puppet默认半小时同步一次(手动也可以),即使你不小心把AGENT的内容改了,它也能依靠这种原理自动还原回去,这充分体现了Puppet的稳定性.

好了,这就是开始的PUPPET安装和配置,接下来的详细内容将在下次向大家介绍.

时间: 2024-12-21 05:51:09

PUPPET集中配置(一)的相关文章

实战Puppet 集中配置管理系统(3)——Puppet dashboard与nginx+passenger安装配置

     本次实验内容紧接前两次实验,第一节内容主要介绍PUPPET的安装认证与资源定义,第二节主要写apache与nginx模块的应用,本次介绍Puppet dashboard与nginx+passenger 的安装,Puppet dashboard 是用以 web 方式管理 puppet.puppet 默认使用基于 Ruby 的WEBRickHTTP 来处理 HTTPS 请求,单个服务器使用Apache/Nginx+Passenger 替换掉 WEBRickHTTP,Passenger 是用

Puppet集中配置管理系统

Puppet是一个配置管理工具,典型的,puppet是一个C/S结构,当然,这里的C(客户端)可以有很多,因此,也可以说是一个星形结构,所有的puppet客户端同一个服务器端的puppet通讯.每个puppet客户端每半小时连接一次客户端(时间也可以设置为其他),下载最新的配置文件,并且严格按照配置文件来配置服务器,配置完成以后,puppet客户端可以反馈给服务器端一个消息,如果出错,也会给服务器端反馈一个消息.下面是一个典型的puppet配置的数据流动情况 1 (管理员)管理员编写puppet

<Puppet 集中配置管理系统RHEL6>

Puppet 集中配置管理系统 puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因此,也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个puppet 客户端每半小时(可以设置)连接一服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息. 下图展示了一个典型的 puppe

Puppet 集中配置管理系统

1.什么是Puppet?  puppet 是一个配置管理工具, 典型的, puppet 是一个 C/S 结构, 当然,这里的 C 可以有很多,因此,也可以说是一个星型结构. 所有的 puppet 客户端同一个服务器端的 puppet 通讯. 每个puppet 客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet 客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息 2.puppet 的细节和原理 pu

puppet的配置

1时间问题 agent与master端务必要保持时间的一致性,最好使用ntp服务 检查ntp服务是否安装 [[email protected] ~]# rpm -qa|grep ntp ntpdate-4.2.6p5-10.el6.centos.1.x86_64 ntp-4.2.6p5-10.el6.centos.1.x86_64 由于我使用的阿里云的服务器,这个已经默认配置好了,如下 1 cat /etc/ntp.conf 2 3 # ntp.conf 4 5 driftfile /var/l

学习笔记--Puppet集中配置管理系统

实验环境:server6:server端 Server7:client端 须保证server端与client端存在解析,并且时间一致,火墙与selinux关闭 1.安装 Server端:yum install -y puppet-server-3.8.1-1.el6.noarch.rpm puppet-3.8.1-1.el6.noarch.rpm facter-2.4.4-1.el6.x86_64.rpm hiera-1.3.4-1.el6.noarch.rpm rubygem-json-1.5

Puppet 安装配置

一.什么是puppet? 1.基于ruby语言开发的系统配置集中管理工具,跨平台 2.一个C/S架构,配置服务端和客户端 puppet依赖于ruby与facter,安装puppet3.x,需要ruby1.8.7版本及以上:facter是一个系统盘点工具,收集主机的一些资料,比如OS.IP.CPU等 3.puppet是一个C/S结构,开源软件,基于Ruby的系统配置管理工具,安装puppet3.x,需要ruby1.8.7版本及以上 4.默认情况下,客户端每隔30分钟连接一次puppet服务端 5.

puppet安装配置

1. 准备工作 两台机器:10.10.13.239(服务端)10.10.13.248 (客户端)两台机器关闭selinux,清空iptables规则,并保存,设置hostname 239上hostname   master.river.com编辑/etc/sysconfig/network  定义hostname 248上hostname   client.river.com编辑/etc/sysconfig/network  定义hostname重启服务器 编辑hosts文件100和101全部为

puppet安装配置(一)

之前搞了一个月zabbix,基本上是能熟练使用了,不过在后来部署的时候发现这玩意在部署的时候机子少还行,机子多了手动安装手会残的.第一反应是用puppet,后来师父直接用puppet搞定了.索性自己也学一波,毕竟这是自动化运维大势所趋,必备技能啊. 下载链接见http://www.cnblogs.com/weijing24/p/5714850.html puppet是c/s结构,有一个服务端和很多客户端.一般运行模式是客户端从服务端拉取指令然后执行.puppet很纠结的一个地方是版本不同导致的命