rabbitmq_redhat_url: "http://www.rabbitmq.com/releases/rabbitmq-server/v{{ rabbitmq_redhat_version }}"
rabbitmq_redhat_version: 3.6.1
+# Define extra vhosts to be created
+rabbitmq_extra_vhosts: []
+# - name: /
+# state: present
+
# Define admin user to create in order to login to WebUI
rabbitmq_users:
- name: rabbitmqadmin
rabbitmq_enable_clustering and
not clustered['stat']['exists']
+- include: rabbitmq_vhosts.yml
+ when: rabbitmq_extra_vhosts is defined
+
- include: rabbitmq_ha_config.yml
when: >
rabbitmq_config_ha and
rabbitmq_user:
name: "{{ item['name'] }}"
password: "{{ item['password'] }}"
- vhost: "{{ item['vhost'] }}"
- configure_priv: "{{ item['configure_priv'] }}"
- read_priv: "{{ item['read_priv'] }}"
- write_priv: "{{ item['write_priv'] }}"
- tags: "{{ item['tags'] }}"
+ vhost: "{{ item['vhost']|default(omit) }}"
+ configure_priv: "{{ item['configure_priv']|default(omit) }}"
+ read_priv: "{{ item['read_priv']|default(omit) }}"
+ write_priv: "{{ item['write_priv']|default(omit) }}"
+ tags: "{{ item['tags']|default(omit) }}"
+ permissions: "{{ item['permissions']|default(omit) }}"
state: present
become: true
with_items: "{{ rabbitmq_users }}"
rabbitmq_user:
name: "{{ item['name'] }}"
password: "{{ item['password'] }}"
- vhost: "{{ item['vhost'] }}"
- configure_priv: "{{ item['configure_priv'] }}"
- read_priv: "{{ item['read_priv'] }}"
- write_priv: "{{ item['write_priv'] }}"
- tags: "{{ item['tags'] }}"
+ vhost: "{{ item['vhost']|default(omit) }}"
+ configure_priv: "{{ item['configure_priv']|default(omit) }}"
+ read_priv: "{{ item['read_priv']|default(omit) }}"
+ write_priv: "{{ item['write_priv']|default(omit) }}"
+ tags: "{{ item['tags']|default(omit) }}"
+ permissions: "{{ item['permissions']|default(omit) }}"
state: present
run_once: yes
delegate_to: "{{ rabbitmq_master }}"
--- /dev/null
+---
+- name: rabbitmq_extra_vhosts | Create vhosts
+ rabbitmq_vhost:
+ name: "{{ item['name'] }}"
+ state: "{{ item['state'] }}"
+ with_items: "{{ rabbitmq_extra_vhosts }}"
+ run_once: "{{ rabbitmq_enable_clustering is defined and rabbitmq_enable_clustering }}"
+ register: rabbitmq_created_vhosts
+
+- name: rabbitmq_extra_vhosts | Check guest administrator is present
+ command: rabbitmqctl -q list_users
+ become: true
+ run_once: "{{ rabbitmq_enable_clustering is defined and rabbitmq_enable_clustering }}"
+ when: rabbitmq_created_vhosts.changed
+ changed_when: false
+ register: rabbitmq_existing_users
+
+- name: rabbitmq_extra_vhosts | Give access to new vhosts to guest administrator
+ command: "rabbitmqctl -q set_permissions -p {{ item['name'] }} guest '.*' '.*' '.*'"
+ become: true
+ run_once: "{{ rabbitmq_enable_clustering is defined and rabbitmq_enable_clustering }}"
+ with_items: "{{ rabbitmq_created_vhosts.results|selectattr('changed')|list }}"
+ when:
+ - item['state'] == 'present'
+ - rabbitmq_existing_users.stdout_lines | map('regex_search', '^guest\\s\\[.*administrator.*\\]$') | list | difference([None]) | length > 0