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

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

内容简介:如果您考虑通过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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

SRE

SRE

贝特西 拜尔 (Betsy Beyer)、等 / 孙宇聪 / 电子工业出版社 / 2016-10-1 / CNY 108.00

大型软件系统生命周期的绝大部分都处于“使用”阶段,而非“设计”或“实现”阶段。那么为什么我们却总是认为软件工程应该首要关注设计和实现呢?在《SRE:Google运维解密》中,Google SRE的关键成员解释了他们是如何对软件进行生命周期的整体性关注的,以及为什么这样做能够帮助Google成功地构建、部署、监控和运维世界上现存最大的软件系统。通过阅读《SRE:Google运维解密》,读者可以学习到......一起来看看 《SRE》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

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

在线压缩/解压 JS 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具