Mcollective介绍
MCollective 是一个构建服务器编排(Server Orchestration)和并行工作执行系统的框架。
首先,MCollective 是一种针对服务器集群进行可编程控制的系统管理解决方案。在这一点上,它的功能类似:Func,Fabric 和 Capistrano。
其次,MCollective 的设计打破基于中心存储式系统和像 SSH 这样的工具,不再仅仅痴迷于 SSH 的 For 循环。它使用发布订阅中间件(Publish Subscribe Middleware)这样的现代化 工具和通过目标数据(meta data)而不是主机名(hostnames)来实时发现网络资源这样的现代化理念。提供了一个可扩展的而且迅速的并行执行环境。
MCollective 工具为命令行界面,但它可与数千个应用实例进行通信,而且传输速度惊人。无论部署的实例位于什么位置,通信都能以线速进行传输,使用的是一个类似多路传送的推送信息系统。MCollective 工具没有可视化用户界面,用户只能通过检索来获取需要应用的实例。Puppet Dashboard 提供有这部分功能。
废话不多说,直接开整:
我的实验环境 :控制端为192.168.1.210 服务端为:192.168.1.246
#yum安装rabbitmq
yum install rabbitmq-server erlang -y
/etc/rc.d/init.d/rabbitmq-server start
netstat -nlp | grep beam #默认监听端口为5672
####配置RabbitMQ
ln -s /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/rabbitmq-plugins /usr/sbin/rabbitmq-plugins #创建命令rabbitmq-plugins的软连接
ln -s /usr/lib/rabbitmq/lib/rabbitmq_server-3.1.5/sbin/rabbitmq-env /usr/sbin/rabbitmq-env #创建命令rabbitmq-env的软连接
rabbitmq-plugins enable rabbitmq_stomp #开启rabbitmq_stomp插件
/etc/rc.d/init.d/rabbitmq-server restart ##重启rabbitmq-server服务
####创建rabbitmq.config配置文件,修改监听stomp端口为61613
vi /etc/rabbitmq/rabitmq.config
[
{stomp,[ {tcp_listeners, [61613]} ]} #设置connector为stomp,监听端口为61613
].
##注意:
rabbitmqadmin 这个是插件扩展命令
需要启用rabbitmq插件:
##必须先启用这条命令后续才可以执行:
rabbitmq-plugins enable rabbitmq_management
/etc/init.d/rabbitmq-server restart
wget http://192.168.1.210:15672/cli/rabbitmqadmin
chmod +x rabbitmqadmin
cp rabbitmqadmin /usr/sbin/
cp rabbitmqadmin /usr/bin/
##创建用户和权限
rabbitmqadmin declare vhost name=/mcollective
rabbitmqadmin declare user name=mcollective password=changeme tags=
rabbitmqadmin declare user name=admin password=changeme tags=administrator
rabbitmqadmin declare permission vhost=/mcollective user=mcollective configure='.*' write='.*' read='.*'
rabbitmqadmin declare permission vhost=/mcollective user=admin configure='.*' write='.*' read='.*'
##执行exchange
for collective in mcollective ; do
rabbitmqadmin declare exchange --user=admin --password=changeme --vhost=/mcollective name=${collective}_broadcast type=topic
rabbitmqadmin declare exchange --user=admin --password=changeme --vhost=/mcollective name=${collective}_directed type=direct
done
##安装MCollective
安装MCollective客户端即为我们的控制端
yum install mcollective-common mcollective-client
安装完成之后配置client.cfg
用例建附件
###安装MCollective服务端
yum install mcollective mcollective-common
安装完成之后配置server.cfg
用例建附件
/etc/rc.d/init.d/mcollective start ##启动服务
####测试Mcollective与Middleware通信
mco ping
报错1:
I, [2016-07-20T03:23:37.305318 #129052] INFO -- : rabbitmq.rb:10:in `on_connecting' TCP Connection attempt 0 to stomp://mcollective1@192.168.1.252:61613
I, [2016-07-20T03:23:37.307981 #129052] INFO -- : rabbitmq.rb:15:in `on_connected' Connected to stomp://mcollective1@192.168.1.252:61613
W, [2016-07-20T03:23:37.310157 #129052] WARN -- : runner.rb:199:in `receiver_thread' Received frame of type 'ERROR' expected 'MESSAGE'
I, [2016-07-20T03:23:37.310245 #129052] INFO -- : runner.rb:201:in `receiver_thread' sleeping for suggested 30.0 seconds
解决:
rabbitmq 的权限 按照上面配置 创建虚拟vhost。不要配置stomp
附件:http://down.51cto.com/data/2367939
本文转自 674591788 51CTO博客,原文链接:http://blog.51cto.com/mrdeng/1827869