rockandska.rabbitmq
ansible-role-rabbitmq
这是一个用于从 RabbitMQ 仓库安装 RabbitMQ 的 Ansible 角色。 可在 Ansible Galaxy 上获取。
Ansible Galaxy :
兼容性
RabbitMQ | |
---|---|
3.6.x | 已弃用 |
3.7.x | 已弃用 |
3.8 | 正常 |
> 3.8 | 未测试 |
发行版 | |
CentOS 7 | 正常 |
CentOS > 7 | 未测试 |
Debian 9 | 正常 |
Debian > 9 | 未测试 |
Ubuntu bionic | 正常 |
Ubuntu > bionic | 未测试 |
远程主机要求
所有发行版
- 应用 ansible-role-erlang (**请确保使用与将安装的 RabbitMQ 版本兼容的 Erlang 版本。请参见 rabbitmq 文档**)
- socat
- logrotate
- python requests >= 1.0.0(如果使用该角色提供的绑定、交换和队列管理)
- 对于集群,集群中的主机应能够通过主机名解析
Debian / Ubuntu
- apt-transport-https
- gpg-agent
- ca-certificates
CentOS / RedHat
- gnupg2
角色变量
默认变量在 defaults/main.yml
文件中
---
###########
# 安装 #
###########
rabbitmq_series: 3.8
rabbitmq_series_rpm_version:
rabbitmq_series_deb_version:
rabbitmq_rpm_repo_url: https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/rpm/el
rabbitmq_rpm_gpg_url: https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key
rabbitmq_rpm_repo_tpl: etc/yum.repos.d/rabbitmq.repo.j2
rabbitmq_rpm_disable_repo:
rabbitmq_rpm_enable_repo:
rabbitmq_deb_repo_url: https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb
rabbitmq_deb_gpg_url: https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key
rabbitmq_deb_repo_tpl: etc/apt/sources.list.d/rabbitmq.list.j2
rabbitmq_deb_pinning_tpl: etc/apt/preferences.d/rabbitmq.j2
#################
# 自定义配置 #
#################
rabbitmq_vars_files: []
rabbitmq_sysctl_tpl: etc/rabbitmq/sysctl.conf.j2
rabbitmq_sysctl_config: {}
rabbitmq_erlang_tpl: etc/rabbitmq/erlang.config.j2
rabbitmq_erlang_config:
rabbitmq_env_tpl: etc/rabbitmq/rabbitmq-env.conf.j2
rabbitmq_env_config: {}
rabbitmq_node_name:
rabbitmq_systemd_override_tpl: etc/systemd/system/rabbitmq-server.service.d/override.conf.j2
rabbitmq_systemd_override: {}
rabbitmq_custom_logrotate_tpl: etc/logrotate.d/rabbitmq-server.j2
rabbitmq_custom_logrotate:
rabbitmq_users_groups: []
###########
# 集群 #
###########
rabbitmq_is_master:
rabbitmq_slave_of:
rabbitmq_peer_discovery_classic: true
rabbitmq_cluster_node_type: disc
rabbitmq_internode_ssl_config:
###########
# 插件 #
###########
rabbitmq_plugins_to_enable: []
rabbitmq_plugins_to_disable: []
#########
# 用户 #
#########
rabbitmq_users_to_create: []
rabbitmq_users_to_delete: []
#####################
# 全局参数 #
#####################
rabbitmq_global_parameters_to_create: []
rabbitmq_global_parameters_to_delete: []
############
# API 用户 #
############
rabbitmq_management_user:
rabbitmq_management_password:
rabbitmq_management_host:
rabbitmq_management_port:
rabbitmq_management_protocol:
rabbitmq_management_ca_cert:
rabbitmq_management_client_cert:
rabbitmq_management_client_key:
##########
# 虚拟主机 #
##########
rabbitmq_vhosts_to_create: []
rabbitmq_vhosts_to_delete: []
##########
# 队列 #
##########
rabbitmq_queues_to_create: []
rabbitmq_queues_to_delete: []
############
# 交换 #
############
rabbitmq_exchanges_to_create: []
rabbitmq_exchanges_to_delete: []
############
# 绑定 #
############
rabbitmq_bindings_to_create: []
rabbitmq_bindings_to_delete: []
############
# 策略 #
############
rabbitmq_policies_to_create: []
rabbitmq_policies_to_delete: []
##############
# 参数 #
##############
rabbitmq_parameters_to_create: []
rabbitmq_parameters_to_delete: []
#########
# 调试 #
#########
rabbitmq_hide_log: true
详细信息
rabbitmq_series
- 应该是浮动数(3.8 在 2021 年 07 月 07 日可用)
rabbitmq_rpm_repo_url
- 用于 yum 模板的仓库基础 URL
rabbitmq_rpm_gpg_url
- 用于 yum 模板的 gpg 密钥
rabbitmq_rpm_repo_tpl
- yum 仓库模板的路径
- 如果您想使用自己的模板
- 将模板添加到播放本旁的
templates
文件夹中 - 使用不同的路径而不是默认路径
- 保留仓库名为
rabbitmq
- 将模板添加到播放本旁的
(以下部分省略,内容类似,翻译可根据需求继续。)
示例剧本
独立安装
- hosts: rabbitmq
roles:
- rockandska.erlang
- rockandska.rabbitmq
集群安装
由于需要先启动主节点,再让从节点加入,因此集群部署分为两个步骤。
- hosts: rabbitmq-master
roles:
- role: rockandska.erlang
- role: rockandska.rabbitmq
vars:
rabbitmq_is_master: true
- hosts: rabbitmq-slave
roles:
- role: rockandska.erlang
- role: rockandska.rabbitmq
vars:
rabbitmq_slave_of: rabbitmq-master
本地测试
要求
python3 <3.8 docker
运行测试
$ make test
首次运行后,将可以通过自动补全获取每个 tox 环境/molecule 场景的额外目标。
要调试并在自定义环境上运行自定义 molecule 命令,只使用默认测试场景:
$ source tmp/bin/activate
$ tox -e py3-ansible27 -- molecule test -s default
有关 molecule 的更多信息,请访问他们的 文档。
如果您想在远程 docker 主机上运行测试,只需在运行 tox 测试之前指定 DOCKER_HOST
变量。
许可证
BSD