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.ZX.(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
许可证
Unknown
下载
7.7k
拥有者