如何使用ANSIBLE在远程主机上创建RabbitMQ

栏目: 后端 · 发布时间: 5年前

内容简介:如果您考虑通过RabbitMQ实现更大规模的AMQP基础架构,那么肯定会尝试使用Ansible作为基础架构部署者,因为Ansible的RabbitMQ模块非常容易使用,让我们举个例子。任务:使用名称:ansible_exchange创建DIRECT交换,ansible_exchange绑定两个队列myRemoteQueue1 和myRemoteQueue2,路由键为key1和key2。

如果您考虑通过RabbitMQ实现更大规模的AMQP基础架构,那么肯定会尝试使用Ansible作为基础架构部署者,因为Ansible的RabbitMQ模块非常容易使用,让我们举个例子。

任务:

使用名称:ansible_exchange创建DIRECT交换,ansible_exchange绑定两个队列myRemoteQueue1 和myRemoteQueue2,路由键为key1和key2。

让我们为这个任务来创建用于基础设施的部署容易ansible角色:

../roles/create_infra/tasks/main.yml

# Create exchange on remote host
- rabbitmq_exchange:
    name: ansible_exchange
    type: direct
    login_user: guest
    login_password: guest
    login_port: 15672

# Create a queues on remote host
- rabbitmq_queue:
    name: <font>"{{item}}"</font><font>
    login_user: guest
    login_password: guest
    login_host: localhost
    login_port: 15672
with_items:
    - myRemoteQueue1
    - myRemoteQueue2

- rabbitmq_binding:
    name: ansible_exchange
    destination: myRemoteQueue1
    type: queue
    routing_key: key1

- rabbitmq_binding:
    name: ansible_exchange
    destination: myRemoteQueue2
    type: queue
    routing_key: key2
</font>

并使用简单的基本剧本启动此角色:

infra.yml:

-  hosts:localhost 
    gather_facts:false 
    roles:
        -  create_infra

我相信create_infra的任务代码是selfexplanatory,有关更多信息,请参阅以下内容:

http:<font><i>//docs.ansible.com/ansible/latest/rabbitmq_exchange_module.html http://docs.ansible.com/ansible/latest/rabbitmq_binding_module.html http://docs.ansible.com/ansible/latest/rabbitmq_queue_module.html</i></font><font>
</font>

现在让我们来启动infra.yml playbook:

$ ansible-playbook infra.yml

PLAY [localhost] ********************************************************************************************************************************************************************

TASK [create_infra : rabbitmq_exchange] *********************************************************************************************************************************************
changed: [localhost]

TASK [create_infra : rabbitmq_queue] ************************************************************************************************************************************************
ok: [localhost] => (item=myRemoteQueue1)
ok: [localhost] => (item=myRemoteQueue2)

TASK [create_infra : rabbitmq_binding] **********************************************************************************************************************************************
changed: [localhost]

TASK [create_infra : rabbitmq_binding] **********************************************************************************************************************************************
changed: [localhost]

PLAY RECAP **************************************************************************************************************************************************************************
localhost                  : ok=4    changed=3    unreachable=0    failed=0

并检查剧本是否符合我们的要求:

exchange创建验证:

$ ./rabbitmqctl list_exchanges | grep <font>"ansible_"</font><font>
ansible_exchange    direct
</font>

队列创建验证:

$ ./rabbitmqctl list_queues | grep myRemoteQueue*
myRemoteQueue1  0
myRemoteQueue2  0

绑定创建验证:

$ ./rabbitmqctl list_bindings | grep ansible_
ansible_exchange    exchange    myRemoteQueue1  queue   key1    []
ansible_exchange    exchange    myRemoteQueue2  queue   key2    []

伙计们,使用Ansible的AMQP模块并享受乐趣!


以上所述就是小编给大家介绍的《如何使用ANSIBLE在远程主机上创建RabbitMQ》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品心经

产品心经

闫荣 / 机械工业出版社 / 2014-9-30 / 59

产品经理如何才能迅速地、全方位地提升自己的能力,从而打造出让用户尖叫并疯狂爱上的产品?有没有捷径?从成功的、有经验的产品经理的实践真知和智慧中学习是一个很好的途径!本书就是一位拥有近10年产品经验的资深产品经理的实践真知和智慧的结晶,从产品经理核心素养、产品认知、战略与规划、精益开发、需求分析与管理、用户体验、精细运营7大方面,系统梳理了能全面、迅速提升产品经理能力,从而打造出让用户尖叫的产品的5......一起来看看 《产品心经》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具