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

众所周知,mcollecitve只是一个框架而已,它单独是干不了任何事情的,如果要让他去操作一个平台,是需要插件(plugins)进行操作的,比如通过puppet插件去管理节点puppet的所有命令,通过fact插件去管理fact的所有参数等等,那么如何去管理系统的命令呢,这就需要shell插件。

插件下载地址:https://github.com/kisspuppet/mcollective-plugins,有github客户端的童鞋可直接clonehttps://github.com/kisspuppet/mcollective-plugins.git

更多有关puppet的文章可访问

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

mcollective-client端

[root@linuxmaster1poc ~]# mco shell “cat /etc/passwd | grep puppet”Do you really want to send this command unfiltered? (y/n): yDiscovering hosts using the mc method for 2 second(s) …. 3Host: linux58pocStatuscode: 0Output:puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologinHost: linux64pocStatuscode: 0Output:puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologinHost: linux57pocStatuscode: 0Output:puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologin

mcollective-server端

[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

usage: /usr/bin/mco command <options>Known commands: completionfactsfindhelpinventorypingpluginpuppetrpcshell #shell插件加载OKType ‘/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插件也加载了

[root@linuxmaster1poc ~]# mco inventory linux57pocInventory for linux57poc: Server Statistics:Version: 2.2.4Start Time: Fri Dec 13 01:14:14 +0800 2013Config File: /etc/mcollective/server.cfgCollectives: mcollectiveMain Collective: mcollectiveProcess ID: 23898Total Messages: 10Messages Passed Filters: 10Messages Filtered: 0Expired Messages: 0Replies Sent: 9Total Processor Time: 0.73 secondsSystem Time: 0.17 seconds Agents:discoverypuppetrpcutilshell #shell插件加载OKData Plugins:agentfstatpuppetresourceConfiguration Management Classes:No classes applied Facts:architecture => x86_64augeasversion => 0.10.0bios_release_date => 06/22/2012bios_vendor => Phoenix Technologies LTDbios_version => 6.00blockdevice_fd0_size => 4096blockdevice_hdc_size => 3834736640blockdevice_sda_model => Virtual diskblockdevice_sda_size => 42949672960。。。3、通过shell插件执行shell命令

mco shell帮助信息

[root@linuxmaster1poc ~]# mco shell –helpMCollective Distributed ShellUsage: mco shell <CMD> The CMD is a string EXAMPLES:mco shell uptime–np, –no-progressDo not show the progress bar-1, –oneSend request to only one discovered nodes–batch SIZEDo requests in batches–batch-sleep SECONDSSleep time between batches–limit-seed NUMBERSeed value for deterministic random batching–limit-nodes, –ln, –limit COUNTSend request to only a subset of nodes, can be a percentage-j, –jsonProduce JSON output–display MODEInfluence how results are displayed. One of ok, all or failed-c, –config FILELoad configuratuion from file rather than default-v, –verboseBe verbose-h, –helpDisplay this screenCommon Options-T, –target COLLECTIVETarget messages to a specific sub collective–dt, –discovery-timeout SECONDSTimeout for doing discovery-t, –timeout SECONDSTimeout for calling remote agents-q, –quietDo not be verbose–ttl TTLSet the message validity period–reply-to TARGETSet 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 FILEList of nodes to addressHost Filters-W, –with FILTERCombined classes and facts filter-S, –select FILTERCompound filter combining facts and classes-F, –wf, –with-fact fact=val Match hosts with a certain fact-C, –wc, –with-class CLASSMatch hosts with a certain config management class-A, –wa, –with-agent AGENTMatch hosts with a certain agent-I, –wi, –with-identity IDENT Match hosts with a certain configured identityThe Marionette Collective 2.2.4

显示对端uptime命令负载情况

[root@linuxmaster1poc ~]# mco shell “uptime”Do you really want to send this command unfiltered? (y/n): yDiscovering hosts using the mc method for 2 second(s) …. 3Host: linux58pocStatuscode: 0Output: 02:45:02 up 21:10, 2 users, load average: 0.00, 0.00, 0.00Host: linux64pocStatuscode: 0Output: 02:45:02 up 20:59, 1 user, load average: 0.00, 0.00, 0.00Host: linux57pocStatuscode: 0Output: 02:45:02 up 21:04, 3 users, load average: 0.00, 0.00, 0.00

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

[root@linuxmaster1poc ~]# mco shell “cat /etc/passwd | grep puppet”Do you really want to send this command unfiltered? (y/n): yDiscovering hosts using the mc method for 2 second(s) …. 3Host: linux58pocStatuscode: 0Output:puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologinHost: linux64pocStatuscode: 0Output:puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologinHost: linux57pocStatuscode: 0Output:puppet:x:52:52:Puppet:/var/lib/puppet:/sbin/nologin

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

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

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

本文出自 “” 博客,请务必保留此出处

夫妇一条心,泥土变黄金。

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

相关文章:

你感兴趣的文章:

标签云: