Puppet統合Forman(六):Mcollectiveコマンド


一、テスト
[root@puppetmaster ~]# mco find 
puppetagent.ewin.com 
[root@puppetmaster ~]# mco ping
puppetagent.ewin.com                     time=91.49 ms
---- ping statistics ----
1 replies max: 91.49 min: 91.49 avg: 91.49

Windowsクライアントのログ表示
C:\mcollective\mcollective.log
        E, [2015-05-14T14:58:24.057800 #2608] ERROR -- : agents.rb:71:in `rescue in loadagent' Loading agent puppet failed: Could not create instance of plugin MCollective::Agent::Puppet: cannot load such file -- puppet

分析の問題はrubyがpuppetプラグインをロードしてもエラーが報告されず、最終的に原因がmcollectiveメインプロファイルserverであることを発見した.cfgのlibdir=C:mcollectivepluginsではmcollectiveのみを指すlibライブラリが見つかりません.puppetとfactorのlibライブラリが見つかりません.したがってlibdirにpuppetとfactorのlibライブラリパスlibdir=C:mcollectivepluginsを追加する必要があります.C:\Puppet Labs\Puppet\puppet\lib;C:\Puppet Labs\Puppet\facter\libdir
二、命令
    mco facts      # fact 
    mco inventory  # nodes\collectives\subcollectives 
    mco nettest    # 
    mco nrpe       # NRPE , 
    mco package    # 
    mco plugin     #MC 
    mco puppet     # puppet agent 
    mco rpc        # RPC 
    mco service    # 

三、ろ過
    mco rpc service status service=puppet -S "environment=development"  #-S and or !
    mco ping --with-agent service        #--with-agent   -A
    mco ping --with-class apache        #--with-class   -C
    mco ping -C /service/
    mco ping --with-fact country=uk     #--with-fact   -F
    mco ping -I hostname01 -I hostname02

四、管理
1、Agentプラグインの検証
    mco inventory puppetagent.ewin.com
Inventory for puppetagent.ewin.com:
   Server Statistics:
                      Version: 2.8.1
                   Start Time: Thu Apr 23 14:35:39 +0800 2015
                  Config File: /etc/mcollective/server.cfg
                  Collectives: mcollective
              Main Collective: mcollective
                   Process ID: 12301
               Total Messages: 14
      Messages Passed Filters: 14
            Messages Filtered: 0
             Expired Messages: 0
                 Replies Sent: 13
         Total Processor Time: 5.69 seconds
                  System Time: 1.8 seconds
   Agents:
      discovery       puppet          rpcutil        
      service        
   Data Plugins:
      agent           collective      fact           
      fstat           puppet          resource       
      service                                        
   Configuration Management Classes:
      No classes applied
   Facts:
      mcollective => 1

Data Plugins以下のpuppetはプラグインのインストールに成功したことを示しています.
2、puppet状態情報の表示
    mco puppet status
 * [ ==========================================================> ] 1 / 1
   puppetagent.ewin.com: Currently stopped; last completed run 27 seconds ago
Summary of Applying:
   false = 1
Summary of Daemon Running:
   stopped = 1
Summary of Enabled:
   enabled = 1
Summary of Idling:
   false = 1
Summary of Status:
   stopped = 1
Finished processing 1 / 1 hosts in 70.91 ms

3、agentのpuppet状態を表示する
    mco rpc puppet status
* [ ==========================================================> ] 1 / 1
puppetagent.ewin.com                     
         Applying: false
   Daemon Running: false
     Lock Message:
          Enabled: true
           Idling: false
         Last Run: 1429771233
          message: Currently stopped; last completed run 1 minutes 18 seconds ago
   Since Last Run: 78
           Status: stopped

4、すべてのクライアントにagentを強制的に実行させる
    mco puppet runonce -v
Discovering hosts using the mc method for 2 second(s) .... 1
 * [ ==========================================================> ] 1 / 1
puppetagent.ewin.com                    : OK
    {:initiated_at=>1429771209,     :summary=>      "Started a Puppet run using the 'puppet agent --onetime --no-daemonize --color=false --show_diff --verbose --splay --splaylimit 30' command"}
---- rpc stats ----
           Nodes: 1 / 1
     Pass / Fail: 1 / 0
      Start Time: Thu Apr 23 14:40:13 +0800 2015
  Discovery Time: 2004.83ms
      Agent Time: 89.65ms
      Total Time: 2094.48ms

5、指定されたクライアントにagentを強制的に実行させる
    mco puppet runonce -I puppetagent.ewin.com -v

五、shellプラグイン
shellプラグインは、クライアントのshellコマンドをリモートで実行できます.たとえば、次のようにします.
    mco shell "cat /etc/passwd | grep puppet"

http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/InstallingPlugins
その他のプラグイン:
https://github.com/puppetlabs/mcollective-plugins