分享

CentOS5上Puppet安装配置(一)

本帖最后由 xioaxu790 于 2014-7-17 09:50 编辑
问题导读
1、什么是Puppet?
2、安装相应的rpm包需要注意什么?
3、如何安装配置Puppet环境?




1.puppet介绍
Puppet是Puppet Labs基于ruby语言开发的自动化系统配置工具,可以以C/S模式或独立模式运行,支持对所有UNIX及类UNIX系统的批量配置和管理,最新版本也开始支持对Windows操作系统有限的一些管理。
Puppet适用于服务器管理的整个过程,比如初始安装、配置、更新以及系统下线。


2.puppet 安装与配置
2.1服务器端安装
安装 puppet-Server  
首先在服务器端和客户端配置好hostname,因为puppet是基于hostname来检测的,同时都要修改hosts文件:  
Puppet 需要 Ruby 的支持,如果要查看命令行帮助的话需要额外 ruby-rdoc 这个软件包:  

1. 下载puppetlabs-release-5-5.noarch.rpm
参考网址:地址
安装
  1. [root@service ~]# rpm -ivh puppetlabs-release-5-5.noarch.rpm
  2. [root@service ~]# yum install puppet-server -y
  3. Installed:
  4.   puppet-server.noarch 0:2.7.19-1.el5                                                            
  5. Dependency Installed:
  6.   augeas-libs.x86_64 0:0.10.0-3   facter.x86_64 1:1.6.11-1.el5   puppet.noarch 0:2.7.19-1.el5   
  7.   ruby.x86_64 0:1.8.5-24.el5      ruby-augeas.x86_64 0:0.4.1-1   ruby-libs.x86_64 0:1.8.5-24.el5
  8.   ruby-shadow.x86_64 0:1.4.1-7  
  9. #这一步为默认安装ruby ruby-libs ruby-rdoc等软件包
  10. [root@service ~]# /etc/init.d/puppetmaster start  
复制代码

关闭 iptables,关闭selinux  
  1. [root@service ~]# /etc/init.d/iptables stop  
  2. [root@service ~]#  sed  -i '/SELINUX/ s/enforcing/disabled/' /etc/selinux/config
复制代码


2.2客户端安装
安装puppet  
在 client 上安装 puppet 客户端:  
Puppet 需要 Ruby 的支持,如果要查看命令行帮助的话需要额外 ruby-rdoc 这个软件包:  

  1. [root@service ~]# rpm -ivh puppetlabs-release-5-5.noarch.rpm
  2. [root@service ~]# yum install puppet –y
  3. Installed:
  4.   puppet.noarch 0:2.7.19-1.el5                                                           
  5. Dependency Installed:
  6.   augeas-libs.x86_64 0:0.10.0-3                 facter.x86_64 1:1.6.11-1.el5            
  7.   ruby.x86_64 0:1.8.5-24.el5                    ruby-augeas.x86_64 0:0.4.1-1            
  8.   ruby-libs.x86_64 0:1.8.5-24.el5               ruby-shadow.x86_64 0:1.4.1-7            
  9. Complete!
复制代码
安装完毕!

2.3证书申请
Puppet客户端与服务器端是通过SSL隧道通信的,客户端安装完成后,需要向服务器端申请证书:  
审批证书
a:client 申请证书:
  1. puppetd --test --server server.puppet.com
  2. 有出现SSl session字样
  3. [root@client ~]# puppetd --test --server server.puppet.com
  4. info: Creating a new SSL key for client.puppet.com
  5. info: Caching certificate for ca
  6. info: Creating a new SSL certificate request for client.puppet.com
  7. info: Certificate Request fingerprint (md5): 74:34:A9:DC:F6:52:B4:96:D1:FF:D3:68:F6:E5:7B:DE
  8. Exiting; no certificate found and waitforcert is disabled
复制代码

b:server接受申请
  1. [root@server ~]# puppetca --list
  2. "client.puppet.com" (74:34:A9:DC:F6:52:B4:96:D1:FF:D3:68:F6:E5:7B:DE)
复制代码
显示申请的client
批准证书
  1. [root@server ~]# puppetca -s client.puppet.com
  2. notice: Signed certificate request for client.puppet.com
  3. notice: Removing file Puppet::SSL::CertificateRequest client.puppet.com at '
  4. /var/lib/puppet/ssl/ca/requests/client.puppet.com.pem'
  5. puppetca –s hostname 批准当前证书
  6. puppetca -s -a 签署所有证书请求
复制代码

c:client取回已经通过的审批证书
  1. [root@client ~]# puppetd --test --server  server.puppet.com
  2. info: Caching certificate for client.puppet.com
  3. info: Caching certificate_revocation_list for ca
  4. info: Caching catalog for client.puppet.com
  5. info: Applying configuration version '1346237401'
  6. notice: Finished catalog run in 0.02 seconds
复制代码

完成
附:可能存在的错误

1)  报错
  1. [root@client-109 ~]# puppetd -server server.puppet.com -test
  2. err: Could not retrieve catalog from remote server: certificate verify failed
  3. warning: Not using cache on failed catalog
  4. err: Could not retrieve catalog; skipping run
复制代码

原因:服务端与客户端时间不同步!

2.)报错
  1. [root@client ~]# puppetd --server server.puppet.com --test
  2. err: Could not retrieve catalog from remote server: Server hostname 'server.puppet.com'
  3. did not match server certificate; expected one of service.puppet.com,
  4. DNS:puppet, DNS:puppet.puppet.com, DNS:service.puppet.com
复制代码

原因:服务端hostname有误,检查server端的hostname!

3).报错
  1. [root@client ~]# puppetd --test --server server.puppet.com
  2. err: Could not retrieve catalog from remote server: certificate verify failed:
  3. [self signed certificate in certificate chain for /CN=Puppet CA: server.puppet.com]
  4. warning: Not using cache on failed catalog
  5. err: Could not retrieve catalog; skipping run
  6. err: Could not send report: certificate verify failed:
  7. [self signed certificate in certificate chain for /CN=Puppet CA: server.puppet.com]
复制代码

原因:

如以上出现error 字样 则 删除client上的ssl文件夹
  1. err: Could not retrieve catalog from remote server: certificate verify failed
  2. warning: Not using cache on failed catalog
  3. err: Could not retrieve catalog; skipping run
  4. rm -rf /var/lib/puppet/ssl/
复制代码

再次循环申请证书 puppetd --test --server server.puppet.com

2.4验证puppet配置  
在服务端写个例子测试一下。这个例子作用很简单,用来在客户端的/tmp目录下新建一个 test.txt 文件,内容为:hello,test!

在服务端编写代码:【服务器端不需要新建这个文件】  
  1. vi /etc/puppet/manifests/site.pp  
  2. node default {  
  3. file {  
  4. "/tmp/test.txt": content => "helo,test!";  
  5.   }  
  6. }
复制代码


2.5客户端测试
在客户端执行 puppetd,运行成功后会在 /tmp 看到新生成的 test.txt:  
  1. [root@client ~]# puppetd --test --server  server.puppet.com
  2. #显示如下
  3. info: Caching catalog for client.puppet.com
  4. info: Applying configuration version '1346237596'
  5. notice: /Stage[main]//Node[default]/File[/tmp/test.txt]/ensure: defined content as '
  6. {md5}d7568aced6a958920309da96080e88e0'
  7. notice: Finished catalog run in 0.03 seconds
复制代码

最后查看
  1. cat /tmp/test.txt  
  2. hello,test!
复制代码
此致puppet服务器端和客户端安装完毕,接下来就是深入的配置了。


2.6客户端设置守护进程
方法一:启动puppet后台运行
  1. [root@client tmp]# puppetd --server server.puppet.com  --verbose --waitforcert 60
  2. 注释:--server master  指明服务器节点地址
  3.       --waitforcert     连接server检查的时间间隔,60分钟
  4.       --verbose         输出冗余信息(可选选项)
复制代码

方法二:得用crontab作定时同步


3.深入了解puppet
3.1环境架构图
1.jpg

CentOS5上Puppet安装配置 - 天空下的缘分 - 天空下的缘分


3.2服务端配置目录树
|-- fileserver.conf
|-- manifests
|   |-- nodes.pp
|   `-- site.pp
|-- modules        #定义模块
|   `-- users
|       |-- file
|       |-- manifests
|       |   |-- adduser.pp
|       |   |-- deluser.pp
|       |   |-- init.pp
|       |   |-- na.pp
|       |   `-- sa.pp
|       `-- templates
|           |-- caojin_authorized_keys.erb
|           `-- jiaxin_authorized_keys.erb
|-- puppet.conf    #主配置配置文件

3.3用户管理模块
user mofules 目录树

users

|-- file
|-- manifests
    |   |-- adduser.pp #添加用户类
    |   |-- deluser.pp #删除用户
    |   |-- init.pp
    |   |-- na.pp
    |   `-- sa.pp
    `-- templates
        |-- caojin_authorized_keys.erb #用户key
        `-- jiaxin_authorized_keys.erb #用户key

adduser.pp 文件
  1. class linux::adduser {
  2.    define add_user ($username=, $useruid=, $userhome=, $usershell='/bin/bash', $groups)
  3.    {
  4.        user
  5.        {   $username:
  6.            uid   => $useruid,
  7.            shell => $usershell,
  8.            groups => $groups,
  9.            home  => "/home/$userhome",
  10.        }
  11.        file
  12.        {   "/home/$userhome":
  13.            owner   => $useruid,
  14.            group   => $useruid,
  15.            mode    => 700,
  16.            ensure  => directory;
  17.        }
  18.        file
  19.        {   "/home/$userhome/.ssh":
  20.            owner   => $useruid,
  21.            group   => $useruid,
  22.            mode    => 700,
  23.            ensure  => directory,
  24.            require => File["/home/$userhome"];
  25.        }
  26.        file
  27.        {   "/home/$userhome/.ssh/authorized_keys":
  28.            owner   => $useruid,
  29.            group   => $useruid,
  30.            mode    => 600,
  31.            ensure  => present,
  32.            content => template("users/${userhome}_authorized_keys.erb"),
  33.            require => File["/home/$userhome/.ssh"];
  34.        }
  35.    }
  36. }
复制代码

deluser.pp
  1. class linux::deluser
  2. {
  3.        user
  4.        {
  5.            "caojin":
  6.            ensure  => absent,
  7.        }
  8. }
复制代码

sa.pp
  1. import "adduser.pp"
  2. class linux::adduser::sa inherits linux::adduser
  3. {
  4.     add_user
  5.     {
  6.         "jiaxin":
  7.         useruid     => 2000,
  8.         username    => jiaxin,
  9.         userhome    => "jiaxin",
  10.         groups      => $operatingsystem ? {
  11.         Ubuntu    => ["admin"],
  12.         CentOS    => ["wheel"],
  13.         RedHat    => ["wheel"],
  14.         default    => ["wheel"],
  15.     },
  16.     }
  17. }
复制代码

PUPPET中文WIKI:地址


4.使用puppet的模块化管理
puppet 模块基础

puppet模块可以导入,复用都很方便,在这里先回答下之前的两个问题:
1. 查看puppet 模块路径,可以使用如下命令:
  1. [root@c1.inanu.net]# puppetmasterd --configprint modulepath
  2. /etc/uppet/modules:/usr/share/puppet/modules
  3. #可以看到这两个目录是puppet 模块默认所在的目录。
复制代码

1.  要引用 puppet模块,如果模块所在上面的两个默认的路径可以使用:
import “模块名”
如果提示模块不存在,比如我在 /data/modules,那么有两种解决方法:
2.1是修改puppet.conf文件,添加目录到modulepath.举例 :
  1. modulepath = /data/modules:/etlc/puppet/modules
复制代码

2.2是在引用的是时候用绝对路径。

import “/data/modules/模块名”

例1:puppet 模块实例
  1. root@s1:/etc/puppet/modules# cd /etc/puppet/modules
  2. root@s1:/etc/puppet/modules# mkdir -p test/{manifests,files,templates}
复制代码

这三个目录说明:files目录是用来存放同步远程客户端的文件或者文件夹,manifests目录下放.pp文件,且必须要有init.pp,templates是存放的puppet 模板文件,是以.erb结尾的。

建立init.pp文件
  1. # /etc/puppet/modules/test/manifests/init.pp
  2. class test::test {
  3.     file { "/tmp/test":
  4.         owner   => root,
  5.         group   => root,
  6.         ensure  => present,
  7.         content => "Hello word",
  8.         mode    => "0644",
  9.      }
  10. }
复制代码

在/etc/puppet/manifests/site.pp里添加:
  1. node "default" {
  2.     include test::test
  3. }
复制代码

注:不建议这样操作,实际生产中,我会在site.pp里添加 import “nodes.pp”,然后在nodes.pp里添加上面的内容。

这样我们就建立了我们第一个puppet 模块,在到客户端 c2.inanu.net 上运行puppet查看结果:
  1. congpeijun@s2:/tmp$ puppet agent --server s1.ubuntu.local --test
  2. info: Caching catalog for s2.ubuntu.local
  3. info: Applying configuration version '1339679532'
  4. notice: /Stage[main]/Test/File[/tmp/test]/ensure: created
  5. notice: Finished catalog run in 0.05 seconds
  6. congpeijun@s2:/tmp$ cat test
  7. Hello word
复制代码

再次验证,可以看到已经成功运行,已经达到预期的效果。在/tmp/目录下生成了nanu这个文件,有个问题,不知道大家注意到没有,这里并没有import “test”模块,而直接使用了include test::test类。有兴趣的同学可以试试,再看下效果。


例2:SSH自动化管理
创建ssh模块相应的目录和文件
  1. [root@master ~]# mkdir -p /etc/puppet/modules/ssh/{manifests,templetes,files}
复制代码

       前面sudo模块的时候,所有相关的设置都是在init.pp文件中,但再SSH模块中我们尝试着将配置分为init.pp,install.pp,config.pp,service.pp,params.pp。

       创建配置相应文件
  1. [root@master ~]# touch /etc/puppet/modules/ssh/manifests/{install.pp,config.pp,service.pp}
复制代码

配置params.pp文件,该文件主要是配置模块的参数
  1. [root@master ~]# vim /etc/puppet/modules/ssh/manifests/params.pp
  2. class ssh::params {
  3.        case $operatingsystem {  
  4.            Solaris: {
  5.                $ssh_package_name ='openssh'  
  6.                $ssh_service_config='/etc/ssh/sshd_config'  
  7.                $ssh_service_name='sshd'
  8.            }           
  9.            /(Ubuntu|Debian)/: {
  10.               $ssh_package_name='openssh-server'  
  11.               $ssh_service_config='/etc/ssh/sshd_config'
  12.               $ssh_service_name='sshd'  
  13.           }
  14.            
  15.           /(RedHat|CentOS|Fedora)/: {
  16.               $ssh_package_name='openssh-server'
  17.               $ssh_service_config='/etc/ssh/sshd_config'
  18.               $ssh_service_name='sshd'
  19.           }
  20.       }  
  21.   }
  22.   
复制代码

       编辑ssh模块的init.pp文件
  1. [root@master ~]# vim /etc/puppet/modules/ssh/manifests/init.pp
  2.    class ssh{
  3.        include ssh::params,ssh::install,ssh::config,ssh::service
  4.    }
复制代码

       编辑install.pp
  1. [root@master ~]# vim /etc/puppet/modules/ssh/manifests/install.pp
  2.          class ssh::install {  
  3.              package {"$ssh::params::ssh_package_name":
  4.                 ensure=>installed,  
  5.              }
  6.          }
复制代码

       编辑config.pp
  1. [root@master ~]# vim /etc/puppet/modules/ssh/manifests/config.pp
  2.       class ssh::config{
  3.           file { $ssh::params::ssh_service_config:
  4.              ensure=>present,  
  5.              owner=>'root',  
  6.              group=>'root',
  7.              mode=>0600,  
  8.              source=>"puppet://$puppetserver/modules/ssh/sshd_config",
  9.              require=>Class["ssh::install"],
  10.              notify=>Class["ssh::service"],
  11.    }
  12.    }
复制代码

       Notify在这里是发出通知到对应的类,即如果ssh:config改变了,就notify通知ssh::service类。

       编辑service.pp
  1. [root@master ~]# vim /etc/puppet/modules/ssh/manifests/service.pp
  2.      class ssh::service{  
  3.          service{ $ssh::params::ssh_service_name:
  4.              ensure=>running,
  5.              hasstatus=>true,  
  6.              hasrestart=>true,
  7.              enable=>true,  
  8.              require=>Class["ssh::config"],
  9.          }  
  10.      }
复制代码

       设置hasstatus告诉puppet该服务支持status命令,即类似service sshd status

       设置hasrestart告诉puppet该服务支持restart命令,即类似service sshd restart

       复制默认的sshd_config文件到模块的files目录下

[root@master ~]# cp /etc/ssh/sshd_config   /etc/puppet/modules/ssh/files/

       Ssh模块设置完成,下面是将该模块应用到节点上

       编辑nodes.pp
  1. [root@master ~]# vim /etc/puppet/manifests/nodes.pp
  2.    class base {
  3.        include sudo,ssh  
  4.    }
  5.    node 'client1.centos' {  
  6.        include base
  7.    }  
  8.    node 'client2.centos' {  
  9.       include  base
  10. }
复制代码

       到节点上验证配置是否正确
  1. [root@client1 ~]# puppetd   --server  server.puppet.com  --test
复制代码


5. puppet管理之Mcoolective

MCollective就是一个调度器,可以解决多个puppet agent同时向master提出请求造成性能,速度下降的问题;它可以根据不同的属性对节点进行分类,对不同分类执行不同的任务;它是一个控制终端,可以使用它控制客户端和服务器,因此不需要puppet agent定时运行了.

MCollective也是一种Client/Server架构,而且client和server使用Midware(中间件)进行通信,需要java以及activemq支持.

Mcollective官文说明:地址

5.1下载安装包
创建安装包下载目录
  1. [root@server ~]# cd /usr/local/src
复制代码

使用wget下载相应的rpm包
  1. wget -c http://downloads.puppetlabs.com/mcollective/tanukiwrapper-3.5.9-1.el5.x86_64.rpm
  2. wget -c http://downloads.puppetlabs.com/mcollective/activemq-5.5.0-1.el5.noarch.rpm
  3. wget -c http://downloads.puppetlabs.com/mcollective/activemq-info-provider-5.5.0-1.el5.noarch.rpm
  4. wget -c http://downloads.puppetlabs.com/mcollective/mcollective-1.0.1-1.el5.noarch.rpm
  5. wget -c http://downloads.puppetlabs.com/mcollective/mcollective-common-1.0.1-1.el5.noarch.rpm
  6. wget -c http://downloads.puppetlabs.com/mcollective/mcollective-client-1.0.1-1.el5.noarch.rpm
复制代码

官方下载地址:地址

5.2安装java,需要java 1.6.0以上版本
  1. [root@server mogongII]# java -version      
  2. java version "1.6.0_22"
  3. Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
  4. Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)
复制代码

5.3 安装相应的rpm包
注意安装顺序,是有依赖关系的
  1. rpm -ivh tanukiwrapper-3.5.9-1.el5.x86_64.rpm activemq-5.5.0-1.el5.noarch.rpm activemq-info-provider-5.5.0-1.el5.noarch.rpm
  2. yum -y installrubygem-stomp ##mcollective需要依赖ruby-stomp
  3. rpm -ivh mcollective-common-1.0.1-1.el5.noarch.rpm mcollective-client-1.0.1-1.el5.noarch.rpm
  4. rpm -ivh mcollective-1.0.1-1.el5.noarch.rpm
复制代码

到此安装过程结束,接下来就是Mcollective配置了。

5.4配置Mcollective
5.4.1修改activemq.xml配置文件
  1. vim /etc/activemq/activemq.xml
  2. 省略部分配置文件,我没有改动,只改动加粗,或者加色的部分
  3.              users
  4.               authenticationUser username="admin" password="secret" groups="mcollective,admins,everyone"/
  5.               ##这个用户和密码配置mcollective时要用到。
  6.               authenticationUser username="mcollective" password="secret" groups="mcollective,admins,everyone"/
  7.             /users
  8.           /simpleAuthenticationPlugin
  9.           authorizationPlugin
  10.             map
  11.               authorizationMap
  12.                 authorizationEntries
  13.                   authorizationEntry queue="" write="admins" read="admins" admin="admins" /
  14.                   authorizationEntry topic="" write="admins" read="admins" admin="admins" /
  15.                   authorizationEntry topic="ActiveMQ.Advisory." read="everyone" write="everyone" admin="everyone"/
  16.                 /authorizationEntries
  17.               /authorizationMap
  18.             /map
  19.           /authorizationPlugin
  20.         /plugins
  21.         transportConnectors
  22.             transportConnector name="openwire" uri="tcp://0.0.0.0:6166"/
  23.             transportConnector name="stomp" uri="stomp://0.0.0.0:6163"/
  24.         /transportConnectors
复制代码

请注意红色的部分,要改成stomp,后面的url是监听的IP地址和端口。

5.4.2修改/etc/mcollective/server.cfg,这个是mcollective的主配置文件。
  1. cat /etc/mcollective/server.cfg
  2. topicprefix = /topic/mcollective
  3. libdir = /usr/libexec/mcollective ##以后添加插件都要放到这个目录下.
  4. logfile = /var/log/mcollective.log
  5. loglevel = info
  6. daemonize = 1
  7. # Plugins
  8. securityprovider = psk
  9. plugin.psk = unset
  10. connector = stomp
  11. plugin.stomp.host = localhost  ##如作为客户端的话。需要修改这里,指向mcoolective的IP。
  12. plugin.stomp.port = 6163
  13. plugin.stomp.user = mcollective ##这个是activemq.xml里的用户名
  14. plugin.stomp.password = secret  ##这个是activemq.xml里定义的密码
  15. # Facts
  16. factsource = yaml
  17. plugin.yaml = /etc/mcollective/facts.yaml
复制代码


Mcollective客户端配置
1.客户端需要安装mcollective相关软件,安装过程如上面,只需要配置server.cfg,client.cfg。
  1. cat /etc/mcollective/server.cfg
  2. 省略部分配置
  3. connector = stomp
  4. plugin.stomp.host = 192.168.2.220  ##这里指向mcollective服务端的IP地址
  5. plugin.stomp.port = 6163
  6. plugin.stomp.user = mcollective   ## 用于连接服务端的用户名
  7. plugin.stomp.password = secret    ## 用于连接服务羰的密码
  8. 如一台机器又作服务端,又作为客户端,需要配置client.cfg,只需要指定server的IP和连接的用户名和密码,
  9. 基本上和server.cfg一样。在测试中,我client.cfg也指定了服务端。
  10. 配置好主服务端和客户端,我们开启相应的服务,在服务端
  11. #/etc/init.d/activemq start
  12. #/etc/init.d/mcollectivestart
  13. 客户端只需要启动
  14. #/etc/init.d/mcollective start
  15. 查看日志,如没有异常,接下来就是进行测试。
复制代码


5.5 Mcollective 测试
在服务端执行相应命令,进行功能测试。
  1. [root@primarylb mcollective]# mc-ping
  2. primarylb.test.com                   time=57.94 ms
  3. backuplb.test.com                    time=95.19 ms
复制代码
  1. [root@primarylb mcollective]# mc-find-hosts
  2. primarylb.test.com
  3. backuplb.test.com
复制代码
  1. [root@primarylb 1.8]# mc-controller stats
  2. Determining the amount of hosts matching filter for 2 seconds .... 2
  3.         primarylb.test.com total=46 replies=22 valid=46 invalid=0 filtered=18 passed=28
  4.          backuplb.test.com total=23 replies=13 valid=23 invalid=0 filtered=5 passed=18
  5. ---- mcollectived controller summary ----
  6.            Nodes: 2 / 2
  7.       Start Time: Wed Oct 12 15:58:04 +0800 2011
  8.   Discovery Time: 2002.05ms
  9.       Agent Time: 52.90ms
  10.       Total Time: 2054.95ms
复制代码
  1. [root@primarylb mcollective]# mc-find-hosts -A mc-rpc  rpcutil agent_inventory -I primarylb.test.com
  2. Determining the amount of hosts matching filter for 2 seconds .... 1
  3. * [ ============================================================ ] 1 / 1
  4. primarylb.test.com
  5.    Agents:
  6.         [{:agent="discovery",
  7.           :author="R.I.Pienaar rip@devco.net",
  8.           :license="Apache License, Version 2"},
  9.          {:url="http://www.puppetlabs.com/mcollective",
  10.           :name="filemgr",
  11.           :timeout=5,
  12.           :description="File Manager",
  13.           :agent="filemgr",
  14.           :author="Mike Pountney mike.pountney@gmail.com",
  15.           :version="0.3",
  16.           :license="Apache 2"},
  17.          {:url="http://marionette-collective.org/",
  18.           :name="Utilities and Helpers for SimpleRPC Agents",
  19.           :timeout=10,
  20.           :description=
  21.            "General helpful actions that expose stats and internals to SimpleRPC clients",
  22.           :agent="rpcutil",
  23.           :author="R.I.Pienaar rip@devco.net",
  24.           :version="1.0",
  25.           :license="Apache License, Version 2.0"}]
  26. Finished processing 1 / 1 hosts in 55.68 ms
复制代码

  1. [root@primarylb mcollective]# mc-rpc filemgr status file=/etc/puppet/puppet.conf
  2. ## 要安装filemgr插件
  3. Determining the amount of hosts matching filter for 2 seconds .... 1
  4. * [ ============================================================ ] 1 / 1
  5. primarylb.test.com
  6. Type: file
  7.          Access time:
  8.         Wed Oct 12 14:10:52 +0800 2011
  9.               Status: present
  10.              Present: 1
  11.                 Mode: 100644
  12.    Modification time:
  13.         Tue Oct 11 17:20:08 +0800 2011
  14.                  MD5: 4b520679f63967447dacb00c87ac8c3f
  15.          Change time:
  16.         Tue Oct 11 17:20:08 +0800 2011
  17.    Modification time: 1318324808
  18.                Owner: 0
  19.          Change time: 1318324808
  20.                 Size: 1574
  21.                Group: 0
  22.                 Name: /etc/puppet/puppet.conf
  23.          Access time: 1318399852
  24. Finished processing 1 / 1 hosts in 79.03 ms
复制代码

我安装了部分插件,更多插件可以参阅地址


下一篇:CentOS5上Puppet安装配置(二)

已有(1)人评论

跳转到指定楼层
lbwahoo 发表于 2014-7-17 21:33:16
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条