mcollective插件(shell plugins)功能在Linux系统上无所不能

1、下载插件放在对应的目录里即可

mcollective-client端

1
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linuxmaster1poc ~]# mco shell  "cat /etc/passwd | grep puppet"
Do you really want to send  this  command unfiltered? (y/n): y
Discovering hosts using the mc method  for  2  second(s) ....  3
Host: linux58poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux64poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux57poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
1
 

mcollective-server端

1
2
3
[root@linux57poc agent]# ll /usr/libexec/mcollective/mcollective/agent/ | grep shell
-rw-r--r--  1  root root  1017  Aug   6  06 : 36  shell.ddl
-rw-r--r--  1  root root   862  Aug   6  06 : 36  shell.rb


备注:mcollective-server端部署完成之后,记得重启mcollective服务。


2、 查看shell插件是否加载成功

从下面可以看出mcollective-client端shell插件已经有了[root@linuxmaster1poc ~]# mco The Marionette Collective version 2.2.4

1
2
3
4
5
6
7
8
usage: /usr/bin/mco command <options>
Known commands:
    completion           facts                find             
    help                 inventory            ping             
    plugin               puppet               rpc              
    shell   #shell插件加载OK                                                   
Type  '/usr/bin/mco help'  for  a detailed list of commands and  '/usr/bin/mco help command'
to  get  detailed help  for  a command

从下面可以看出mcollective-server端shell插件也加载了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@linuxmaster1poc ~]# mco inventory linux57poc
Inventory  for  linux57poc:
    Server Statistics:
                       Version:  2.2 . 4
                    Start Time: Fri Dec  13  01 : 14 : 14  + 0800  2013
                   Config File: /etc/mcollective/server.cfg
                   Collectives: mcollective
               Main Collective: mcollective
                    Process ID:  23898
                Total Messages:  10
       Messages Passed Filters:  10
             Messages Filtered:  0
              Expired Messages:  0
                  Replies Sent:  9
          Total Processor Time:  0.73  seconds
                   System Time:  0.17  seconds
    Agents:
       discovery       puppet          rpcutil     
       shell  #shell插件加载OK                                       
    Data Plugins:
       agent           fstat           puppet      
       resource                                    
    Configuration Management Classes:
       No classes applied
    Facts:
       architecture => x86_64
       augeasversion =>  0.10 . 0
       bios_release_date =>  06 / 22 / 2012
       bios_vendor => Phoenix Technologies LTD
       bios_version =>  6.00
       blockdevice_fd0_size =>  4096
       blockdevice_hdc_size =>  3834736640
       blockdevice_sda_model => Virtual disk
       blockdevice_sda_size =>  42949672960
     。。。

3、通过shell插件执行shell命令

mco shell帮助信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@linuxmaster1poc ~]# mco shell --help
MCollective Distributed Shell
Usage:   mco shell <CMD>
   The CMD  is  a string
   EXAMPLES:
     mco shell uptime
         --np, --no-progress          Do not show the progress bar
     - 1 , --one                        Send request to only one discovered nodes
         --batch SIZE                 Do requests  in  batches
         --batch-sleep SECONDS        Sleep time between batches
         --limit-seed NUMBER          Seed value  for  deterministic random batching
         --limit-nodes, --ln, --limit COUNT
                                      Send request to only a subset of nodes, can be a percentage
     -j, --json                       Produce JSON output
         --display MODE               Influence how results are displayed. One of ok, all or failed
     -c, --config FILE                Load configuratuion from file rather than  default
     -v, --verbose                    Be verbose
     -h, --help                       Display  this  screen
Common Options
     -T, --target COLLECTIVE          Target messages to a specific sub collective
         --dt, --discovery-timeout SECONDS
                                      Timeout  for  doing discovery
     -t, --timeout SECONDS            Timeout  for  calling remote agents
     -q, --quiet                      Do not be verbose
         --ttl TTL                    Set the message validity period
         --reply-to TARGET            Set a custom target  for  replies
         --dm, --disc-method METHOD   Which discovery method to  use
         -- do , --disc-option OPTION   Options to pass to the discovery method
         --nodes FILE                 List of nodes to address
Host Filters
     -W, -- with  FILTER                Combined classes and facts filter
     -S, --select FILTER              Compound filter combining facts and classes
     -F, --wf, -- with -fact fact=val   Match hosts  with  a certain fact
     -C, --wc, -- with - class  CLASS     Match hosts  with  a certain config management  class
     -A, --wa, -- with -agent AGENT     Match hosts  with  a certain agent
     -I, --wi, -- with -identity IDENT  Match hosts  with  a certain configured identity
The Marionette Collective  2.2 . 4

显示对端uptime命令负载情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linuxmaster1poc ~]# mco shell  "uptime"
Do you really want to send  this  command unfiltered? (y/n): y
Discovering hosts using the mc method  for  2  second(s) ....  3
Host: linux58poc
Statuscode:  0
Output:
  02 : 45 : 02  up  21 : 10 ,   2  users,  load average:  0.00 0.00 0.00
Host: linux64poc
Statuscode:  0
Output:
  02 : 45 : 02  up  20 : 59 ,   1  user,  load average:  0.00 0.00 0.00
Host: linux57poc
Statuscode:  0
Output:
  02 : 45 : 02  up  21 : 04 ,   3  users,  load average:  0.00 0.00 0.00

显示所有节点/etc/password文件中puppet用户哪一行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@linuxmaster1poc ~]# mco shell  "cat /etc/passwd | grep puppet"
Do you really want to send  this  command unfiltered? (y/n): y
Discovering hosts using the mc method  for  2  second(s) ....  3
Host: linux58poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux64poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin
Host: linux57poc
Statuscode:  0
Output:
puppet:x: 52 : 52 :Puppet:/ var /lib/puppet:/sbin/nologin

修改其中一台主机的root密码

备注:更多操作步骤可参考mco shell --help帮助。

警告:基于mcollective的shell插件虽然功能很强大,除了动态显示的命令之外,其它root能操作的,它基本上都能操作。所以操作也非常危险,可根据生产环境实际情况而定。



本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1340121,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值