{"id":40993384,"url":"https://github.com/hellofresh/ansible-rabbitmq","last_synced_at":"2026-01-22T08:04:10.738Z","repository":{"id":76875864,"uuid":"63065079","full_name":"hellofresh/ansible-rabbitmq","owner":"hellofresh","description":"HelloFresh extension of the RabbitMQ playbook which allows clustering.","archived":false,"fork":false,"pushed_at":"2025-10-07T05:29:01.000Z","size":57,"stargazers_count":6,"open_issues_count":3,"forks_count":2,"subscribers_count":228,"default_branch":"master","last_synced_at":"2025-12-01T06:49:42.752Z","etag":null,"topics":["open-source","wiz-reliability-platform-cloud-runtime"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellofresh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-07-11T12:15:19.000Z","updated_at":"2025-10-07T05:29:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"8b1b61ef-c809-40de-b4e2-df6645271621","html_url":"https://github.com/hellofresh/ansible-rabbitmq","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/hellofresh/ansible-rabbitmq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofresh%2Fansible-rabbitmq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofresh%2Fansible-rabbitmq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofresh%2Fansible-rabbitmq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofresh%2Fansible-rabbitmq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellofresh","download_url":"https://codeload.github.com/hellofresh/ansible-rabbitmq/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofresh%2Fansible-rabbitmq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28658974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["open-source","wiz-reliability-platform-cloud-runtime"],"created_at":"2026-01-22T08:04:02.608Z","updated_at":"2026-01-22T08:04:10.733Z","avatar_url":"https://github.com/hellofresh.png","language":"Ruby","readme":"# Rabbitmq Playbook\n\nHelloFresh extension of the RabbitMQ playbook which allows clustering. Originally written by [Mayeu](https://github.com/Mayeu/ansible-playbook-rabbitmq).\n\nPlaybook to install and configure rabbitmq. Will come with various\nconfiguration tweaking later on.\n\nIf you wish to discuss modifications, or help to support more platforms, open\nan issue.\n\n### Environment\n\n|Name|Type|Description|Default|\n|----|----|-----------|-------|\n`rabbitmq_conf_env`|Hash|Set environment variable|undef|\n\nExample:\n\n```yaml\nrabbitmq_conf_env:\n  RABBITMQ_ROCKS: correct\n```\n\nWill generate:\n\n```\nRABBITMQ_ROCKS=\"correct\"\n```\n\n### Certificate\n\n|Name|Type|Description|Default|\n|----|----|-----------|-------|\n`rabbitmq_cacert`|String|Path of the CA certificate file.|`files/rabbitmq_cacert.pem`\n`rabbitmq_server_key`|String|Path of the SSL key file.|`files/rabbitmq_server_key.pem`\n`rabbitmq_server_cert`|String|Path of the SSL certificate file.|`files/rabbitmq_server_cert.pem`\n`rabbitmq_ssl`|Boolean|Define if we need to use SSL|`true`\n\n### Default configuration file\n\n|Name|Type|Description|Default|\n|----|----|-----------|-------|\n`rabbitmq_conf_tcp_listeners_address`|String|listening address for the tcp interface|`''`\n`rabbitmq_conf_tcp_listeners_port`|Integer|listening port for the tcp interface|`5672`\n`rabbitmq_conf_ssl_listeners_address`|String|listening address for the ssl interface|`'0.0.0.0'`\n`rabbitmq_conf_ssl_listeners_port`|Integer|listening port for the ssl interface|`5671`\n`rabbitmq_conf_ssl_options_cacertfile`|String|Path the CA certificate|`\"/etc/rabbitmq/ssl/cacert.pem\"`\n`rabbitmq_conf_ssl_options_certfile`|String|Path to the server certificate|`\"/etc/rabbitmq/ssl/server_cert.pem\"`\n`rabbitmq_conf_ssl_options_keyfile`|String|Path to the private key file|`\"/etc/rabbitmq/ssl/server_key.pem\"`\n`rabbitmq_conf_ssl_options_fail_if_no_peer_cert`|Boolean|Value of the `fail_if_no_peer_cert` SSL option|`\"true\"`\n\n### Plugins\n\n|Name|Type|Description|Default|\n|----|----|-----------|-------|\n`rabbitmq_new_only`|String|Add plugins as new, without deactivating other plugins|`'no'`\n`rabbitmq_plugins`|String|List|List of plugins to activate|`[]`\n\n### Vhost\n\n|Name|Type|Description|Default|\n|----|----|-----------|-------|\n`rabbitmq_vhost_definitions`|List|Define the list of vhost to create|`[]`\n`rabbitmq_users_definitions`|List of hash|Define the users, and associated vhost and password (see below)|`[]`\n\nDefining the vhosts configuration\n\n```yaml\nrabbitmq_vhost_definitions:\n  - name:    vhost1\n    node:    node_name #Optional, defaults to \"rabbit\"\n    tracing: yes       #Optional, defaults to \"no\"\n```\n\nDefining the users configuration:\n\n```yaml\nrabbitmq_users_definitions:\n  - vhost:    vhost1\n    user:     user1\n    password: password1\n    node:     node_name  # Optional, defaults to \"rabbit\"\n    configure_priv: \"^resource.*\" # Optional, defaults to \".*\"\n    read_priv: \"^$\" # Disallow reading.\n    write_priv: \"^$\" # Disallow writing.\n  - vhost:    vhost1\n    user:     user2\n    password: password2\n    force:    no\n    tags:                # Optional, user tags\n    - administrator\n```\n\n## Cluster\n\n# Limitations\nIf you remove a node from inventory and node is still running it will not be removed\n\n### Federation\n\n|Name|Type|Description|Default|\n|----|----|-----------|-------|\n`rabbitmq_federation`|Boolean|Define if we need to setup federation|`false`\n`rabbitmq_federation_configuration`|List of hashes|Define all the federation we need to setup|Not defined\n`rabbitmq_policy_configuration`|List of hashes|Define all the federation we need to setup|Not defined\n\nDefining the federation upstream configuration:\n\n```yaml\nrabbitmq_federation_upstream:\n  - name: upstream name\n    vhost: local vhost to federate\n    value: json description of the federation\n    local_username: the local username for the federation\n```\n\nSee the [RabbitMQ documentation](http://www.rabbitmq.com/federation.html) for\nthe possible JSON value.\n\nDefining the policy configuration:\n\n```yaml\nrabbitmq_policy_configuration:\n  - name: name of the policy\n    vhost: vhost where the policy will be applied\n    pattern: pattern of the policy\n    tags: description of the policy in dict form # exemple: \"ha-mode=all\"\n```\n\n## Files required\n\nYou have to put the needed certificates in your `files/` folder, for example:\n\n    files/\n     |- cacert.crt\n     |- myserver_key.key\n     |- myserver_cert.crt\n\nAnd then configure the role:\n\n```yaml\n    rabbitmq_cacert: files/cacert.crt\n    rabbitmq_server_key: files/myserver_key.key\n    rabbitmq_server_cert: files/myserver_cert.crt\n```\n\n## Variables\n\n```yaml\n# Take the package given by the OS/distrib\nrabbitmq_os_package                           : false\n\n# Plugins\nrabbitmq_plugins                              : []\nrabbitmq_new_only                             : 'no'\n\n# VHOST\nrabbitmq_vhost_definitions                    : []\nrabbitmq_users_definitions                    : []\n\n# Avoid setting up federation\nrabbitmq_federation                           : false\n\n# defaults file for rabbitmq\nrabbitmq_cacert                               : \"files/rabbitmq_cacert.pem\"\nrabbitmq_server_key                           : \"files/rabbitmq_server_key.pem\"\nrabbitmq_server_cert                          : \"files/rabbitmq_server_cert.pem\"\nrabbitmq_ssl                                  : true\n\n## Optional logging\n##  none, error, warnings, info, debug\n# rabbitmq_log_level                           :\n#                                                  channel    : error\n#                                                  connection : error\n#                                                  federation : error\n#                                                  mirroring  : error\n\n# ######################\n# RabbitMQ Configuration\n# ######################\n\n# rabbitmq TCP configuration\nrabbitmq_conf_tcp_listeners_address           : '0.0.0.0'\nrabbitmq_conf_tcp_listeners_port              : 5672\n\n# rabbitmq SSL configuration\nrabbitmq_conf_ssl_listeners_address           : '0.0.0.0'\nrabbitmq_conf_ssl_listeners_port              : 5671\nrabbitmq_conf_ssl_options_cacertfile          : \"/etc/rabbitmq/ssl/{{ rabbitmq_cacert | basename }}\"\nrabbitmq_conf_ssl_options_certfile            : \"/etc/rabbitmq/ssl/{{ rabbitmq_server_cert | basename }}\"\nrabbitmq_conf_ssl_options_keyfile             : \"/etc/rabbitmq/ssl/{{ rabbitmq_server_key | basename }}\"\nrabbitmq_conf_ssl_options_fail_if_no_peer_cert: \"true\"\n\nrabbitmq_env                                  : false\n# Guest options\nremove_guest_user                             : true\n\n# Enable cluster\nrabbitmq_clustering                           : false\n## Erlang cookie\nrabbitmq_erlang_cookie_path                   : \"/var/lib/rabbitmq/.erlang.cookie\"\nrabbitmq_erlang_cookie                        : beKSqkmoLrtvVfjOytLOQpATbGVEGbVA #test cookie, override for production\n## Cluster options\nrabbitmq_cluster_instance_to_join_index       : 0\nrabbitmq_cluster_instance_to_join             : \"{{ groups[rabbitmq_cluster_group][rabbitmq_cluster_instance_to_join_index].split('.')[0] }}\"\nrabbitmq_cluster_group                        : rabbit_cluster\nrabbitmq_cluster_post_fix_domain              : \"production.example.com\"\n# Automation user for cluster. You should encrypt\nrabbitmq_cluster_api_user                     : \"api-automation\"\nrabbitmq_cluster_api_password                 : \"api-password\"\n\n# How to get the IPs of cluster\nrabbitmq_clustering_resolve_names             : \"ansible\" # ['ansible', dns]\n\n## Probably dont need to change that stuff\n### Construct a regex to match group before .\nrabbitmq_cluster_post_fix_domain_regex_replace: \"([^.]*).*\"\n# Print extra message related to inventory\nrabbitmq_cluster_debug                        : false\n```\n\n## Testing\n\nLicense\n-------\n\n    Copyright (C) 2016 HelloFresh SE\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://hellofresh.com\"\u003e\n    \u003cimg width=\"120\" src=\"https://www.hellofresh.de/images/hellofresh/press/HelloFresh_Logo.png\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellofresh%2Fansible-rabbitmq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellofresh%2Fansible-rabbitmq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellofresh%2Fansible-rabbitmq/lists"}