silverlogic.rabbitmq
公告
很久没有更新了。我又回到这个剧本上来,我将合并一些修复(url、密钥检查等)到主分支,并发布一个可用的标记版本。
接下来我会专注于创建一个新的分支,这将是该剧本的2.0版本。我计划在2.0版本中将安装步骤与纯配置分开。我不想在一个剧本中支持无数的操作系统。因此,您将能够自己创建一个 ansible-playbook-rabbitmq-install-my-little-snowflak-os
:)
感谢大家的参与!
RabbitMQ 剧本
安装和配置 RabbitMQ 的剧本。稍后将添加各种配置调整。
如果您希望讨论修改或帮助支持更多平台,请提出问题。
安装
使用 Ansible Galaxy 安装此剧本:
$ ansible-galaxy install Mayeu.RabbitMQ,1.4.0
目前应将 master
分支视为不稳定。请避免将其用于测试以外的任何目的 :)
支持的系统
目前仅支持 amd64 上的 Debian Jessie 和 Wheezy。欢迎补丁以支持其他发行版或操作系统。
语义版本控制 2.0.0
从提交67c608826a140868a71854ce3129b5f3d67ddcce开始,此剧本使用语义版本控制。遵循规范,由于剧本用于生产环境,我想避免破坏兼容性,因此第一个版本号为 1.0.0。
语义版本控制中定义的公共 API 对应于可用的设置。此上下文中打破 API(从 X.Y.Z
增量到 (X+1).Y.Z
)意味着用户需要更改变量名称才能使其剧本运行。
任何新功能的添加(从 X.Y.Z
到 X.(Y+1).Z
)都应具有一个默认的有效值,默认情况下无需用户交互。如果功能的添加需要用户交互,那么这不是小幅升级,而是大幅升级。
角色变量
安装
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_os_package |
布尔 | 如果为真,则使用操作系统或发行版提供的默认软件包,而不是由 RabbitMQ 分发的。 | false |
环境
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_conf_env |
哈希 | 设置环境变量 | 未定义 |
示例:
rabbitmq_conf_env:
RABBITMQ_ROCKS: correct
将生成:
RABBITMQ_ROCKS="correct"
证书
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_cacert |
字符串 | CA 证书文件的路径。 | files/rabbitmq_cacert.pem |
rabbitmq_server_key |
字符串 | SSL 密钥文件的路径。 | files/rabbitmq_server_key.pem |
rabbitmq_server_cert |
字符串 | SSL 证书文件的路径。 | files/rabbitmq_server_cert.pem |
rabbitmq_ssl |
布尔 | 定义是否需要使用 SSL | true |
默认配置文件
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_conf_tcp_listeners_address |
字符串 | TCP 接口的监听地址 | '' |
rabbitmq_conf_tcp_listeners_port |
整数 | TCP 接口的监听端口 | 5672 |
rabbitmq_conf_ssl_listeners_address |
字符串 | SSL 接口的监听地址 | '0.0.0.0' |
rabbitmq_conf_ssl_listeners_port |
整数 | SSL 接口的监听端口 | 5671 |
rabbitmq_conf_ssl_options_cacertfile |
字符串 | CA 证书的路径 | "/etc/rabbitmq/ssl/cacert.pem" |
rabbitmq_conf_ssl_options_certfile |
字符串 | 服务器证书的路径 | "/etc/rabbitmq/ssl/server_cert.pem" |
rabbitmq_conf_ssl_options_keyfile |
字符串 | 私钥文件的路径 | "/etc/rabbitmq/ssl/server_key.pem" |
rabbitmq_conf_ssl_options_fail_if_no_peer_cert |
布尔 | fail_if_no_peer_cert SSL 选项的值 |
"true" |
插件
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_new_only |
字符串 | 新增插件时不禁用其他插件 | 'no' |
rabbitmq_plugins |
字符串 | 要激活的插件列表 | [] |
虚拟主机
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_vhost_definitions |
列表 | 定义要创建的虚拟主机列表 | [] |
rabbitmq_users_definitions |
哈希列表 | 定义用户及其关联的虚拟主机和密码(见下文) | [] |
定义虚拟主机配置
rabbitmq_vhost_definitions:
- name: vhost1
node: node_name # 可选,默认为 "rabbit"
tracing: yes # 可选,默认为 "no"
定义用户配置:
rabbitmq_users_definitions:
- vhost: vhost1
user: user1
password: password1
node: node_name # 可选,默认为 "rabbit"
configure_priv: "^resource.*" # 可选,默认为 ".*"
read_priv: "^$" # 禁止读取。
write_priv: "^$" # 禁止写入。
- vhost: vhost1
user: user2
password: password2
force: no
tags: # 可选,用户标签
- administrator
联邦
名称 | 类型 | 描述 | 默认 |
---|---|---|---|
rabbitmq_federation |
布尔 | 定义是否需要设置联邦 | false |
rabbitmq_federation_configuration |
哈希列表 | 定义所有需要设置的联邦 | 未定义 |
rabbitmq_policy_configuration |
哈希列表 | 定义所有需要设置的政策 | 未定义 |
定义联邦上游配置:
rabbitmq_federation_upstream:
- name: upstream name
vhost: local vhost to federate
value: json description of the federation
local_username: the local username for the federation
请参阅 RabbitMQ 文档 以获取可能的 JSON 值。
定义政策配置:
rabbitmq_policy_configuration:
- name: name of the policy
vhost: vhost where the policy will be applied
pattern: pattern of the policy
tags: description of the policy in dict form # 例如: "ha-mode=all"
所需文件
您需要将所需的证书放入 files/
文件夹,例如:
files/
|- cacert.crt
|- myserver_key.key
|- myserver_cert.crt
然后配置角色:
rabbitmq_cacert: files/cacert.crt
rabbitmq_server_key: files/myserver_key.key
rabbitmq_server_cert: files/myserver_cert.crt
测试
有一些测试尝试使用 Vagrant 提供虚拟机。只需通过以下命令运行它们:
$ vagrant up # 测试 Debian jessie
$ export VAGRANT_BOX_NAME='chef/centos-6.5' vagrant up # 测试 CentOS
您可以通过将 VAGRANT_BOX_NAME
环境变量设置为其他值来更改测试中使用的虚拟机,而不是 deb/jessie
。
许可证
BSD
RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard.
ansible-galaxy install silverlogic.rabbitmq