如何使用ANSIBLE在遠端主機上建立RabbitMQ
如果您考慮透過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: "{{item}}" 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 |
並使用簡單的基本劇本啟動此角色:
infra.yml:
- hosts:localhost gather_facts:false roles: - create_infra |
我相信create_infra的任務程式碼是selfexplanatory,有關更多資訊,請參閱以下內容:
http://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 |
現在讓我們來啟動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 "ansible_" ansible_exchange direct |
佇列建立驗證:
$ ./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批量更新遠端主機使用者密碼 (包括Ansible批量做ssh互信)密碼
- 在遠端建立使用者
- 通過paramiko模組在遠端主機上執行命令
- 使用ansible批量管理遠端伺服器伺服器
- 如何用 scp 在本地和遠端主機之間複製檔案
- 在海思晶片上使用GDB遠端除錯晶片除錯
- 在linux上使用VNC遠端監控LinuxVNC
- 可連線遠端主機情況下新增私鑰到遠端主機
- 操作遠端主機 docker 命令Docker
- 各位高手,如何獲得遠端主機的 MAC 地址?Mac
- 透過 ForwardAgent ,在遠端機器上,使用本機 ssh key 進行驗證Forward
- 在CentOS6.0上配置Oracle資料庫可以遠端使用的遠端配置。CentOSOracle資料庫
- 用golang封裝ssh用於在遠端主機上執行命令,上傳或下載檔案Golang封裝
- 在同一臺主機上建立複製資料庫資料庫
- iTerm2連線遠端主機
- 遠端主機mysql連線失敗MySql
- vnc遠端控制linux主機(轉)VNCLinux
- rabbitmq 新增遠端訪問功能MQ
- 在Pycharm上使用遠端伺服器進行除錯PyCharm伺服器除錯
- 如何使用rdp遠端桌面
- 如何在Windows上遠端控制MacWindowsMac
- rtop – 通過SSH監控遠端主機
- Docker Machine遠端部署docker主機環境DockerMac
- VSCode 如何遠端連線其他主機的 WSL2VSCode
- RabbitMQ 入門 - 遠端呼叫 (RPC)MQRPC
- 如何遠端控制數位相機
- 通過遠端管理更改ESXi主機root使用者密碼密碼
- 在Windows中使用VirtualBox建立新的虛擬主機Windows
- 如何用ant啟動遠端機器上的appserverAPPServer
- 遠端批次建立crontab
- 遠端建立SP模式模式
- 如何通過 SSH 在遠端 Linux 系統上執行命令Linux
- 什麼是rdp遠端桌面?如何使用rdp遠端桌面?
- 什麼是rd遠端桌面?如何使用rd遠端桌面?
- 遠端撥號登入SCO UNIX主機(轉)
- C# 實現Ping遠端主機功能C#
- 如何遠端除錯部署在CloudFoundry平臺上的nodejs應用除錯CloudNodeJS
- 在.NET 6 中如何建立和使用 HTTP 客戶端 SDKHTTP客戶端