From c92e3d2964b7c927816e1727c15a2b4681fb3bcd Mon Sep 17 00:00:00 2001 From: Jacob Floyd Date: Fri, 21 Sep 2018 14:58:05 -0500 Subject: [PATCH] split up rabbitmq user/vhost tasks to make them easier to reuse --- roles/rabbitmq/tasks/main.yml | 62 +++--------------------- roles/rabbitmq/tasks/rabbitmq_users.yml | 38 +++++++++++++++ roles/rabbitmq/tasks/rabbitmq_vhosts.yml | 20 ++++++++ 3 files changed, 64 insertions(+), 56 deletions(-) create mode 100644 roles/rabbitmq/tasks/rabbitmq_users.yml create mode 100644 roles/rabbitmq/tasks/rabbitmq_vhosts.yml diff --git a/roles/rabbitmq/tasks/main.yml b/roles/rabbitmq/tasks/main.yml index c341864e..50050860 100644 --- a/roles/rabbitmq/tasks/main.yml +++ b/roles/rabbitmq/tasks/main.yml @@ -1,10 +1,4 @@ --- -- name: Make sure rabbitmq user options are specified correctly - assert: - that: (rabbitmq_keep_guest_user and 'guest' not in rabbitmq_absent_users) or rabbitmq_users|length > 0 - msg: "If the guest user is deleted, at least one other user needs to be added." - tags: rabbitmq - - name: Install rabbitmq package on {{ ansible_distribution }} become: yes package: @@ -38,54 +32,10 @@ when: rabbitmq_plugins tags: rabbitmq -- name: Remove RabbitMQ vhosts - become: yes - rabbitmq_vhost: - vhost: "{{ _rmq_vhost }}" - state: absent - loop_control: - loop_var: _rmq_vhost - with_items: "{{ rabbitmq_absent_vhosts }}" - tags: rabbitmq +- name: Add/Remove RabbitMQ vhosts + when: rabbitmq_vhosts or rabbitmq_absent_vhosts + include: rabbitmq_vhosts.yml -- name: Add RabbitMQ vhosts - become: yes - rabbitmq_vhost: - vhost: "{{ _rmq_vhost }}" - state: present - loop_control: - loop_var: _rmq_vhost - with_items: "{{ rabbitmq_vhosts }}" - tags: rabbitmq - -- name: Remove the guest user from RabbitMQ - become: yes - rabbitmq_user: - user: guest - state: absent - when: not rabbitmq_keep_guest_user - tags: rabbitmq - -- name: Remove other users from RabbitMQ - become: yes - rabbitmq_user: - user: "{{ _rmq_user }}" - state: absent - with_items: "{{ rabbitmq_absent_users }}" - tags: rabbitmq - -- name: Add RabbitMQ Users - become: yes - rabbitmq_user: - force: "{{ rabbitmq_force_user_recreate|default(omit) }}" - # NOTE: This does not handle erlang nodes other than "rabbit" (when is that even used?) - user: "{{ _rmq_user.user }}" - password: "{{ _rmq_user.password }}" - permissions: "{{ _rmq_user.permissions }}" - tags: "{{ _rmq_user.tags | default(omit) }}" - state: present - loop_control: - loop_var: _rmq_user - label: "{{ _rmq_user.user }}" - with_items: "{{ rabbitmq_users }}" - tags: rabbitmq +- name: Add/Remove RabbitMQ users + when: rabbitmq_users or rabbitmq_absent_users + include: rabbitmq_users.yml diff --git a/roles/rabbitmq/tasks/rabbitmq_users.yml b/roles/rabbitmq/tasks/rabbitmq_users.yml new file mode 100644 index 00000000..67e89346 --- /dev/null +++ b/roles/rabbitmq/tasks/rabbitmq_users.yml @@ -0,0 +1,38 @@ +--- +- name: Make sure rabbitmq user options are specified correctly + assert: + that: (rabbitmq_keep_guest_user and 'guest' not in rabbitmq_absent_users) or rabbitmq_users|length > 0 + msg: "If the guest user is deleted, at least one other user needs to be added." + tags: rabbitmq + +- name: Remove the guest user from RabbitMQ + become: yes + rabbitmq_user: + user: guest + state: absent + when: not rabbitmq_keep_guest_user + tags: rabbitmq + +- name: Remove other users from RabbitMQ + become: yes + rabbitmq_user: + user: "{{ _rmq_user }}" + state: absent + with_items: "{{ rabbitmq_absent_users }}" + tags: rabbitmq + +- name: Add RabbitMQ Users + become: yes + rabbitmq_user: + force: "{{ rabbitmq_force_user_recreate|default(omit) }}" + # NOTE: This does not handle erlang nodes other than "rabbit" (when is that even used?) + user: "{{ _rmq_user.user }}" + password: "{{ _rmq_user.password }}" + permissions: "{{ _rmq_user.permissions }}" + tags: "{{ _rmq_user.tags | default(omit) }}" + state: present + loop_control: + loop_var: _rmq_user + label: "{{ _rmq_user.user }}" + with_items: "{{ rabbitmq_users }}" + tags: rabbitmq diff --git a/roles/rabbitmq/tasks/rabbitmq_vhosts.yml b/roles/rabbitmq/tasks/rabbitmq_vhosts.yml new file mode 100644 index 00000000..3619adb3 --- /dev/null +++ b/roles/rabbitmq/tasks/rabbitmq_vhosts.yml @@ -0,0 +1,20 @@ +--- +- name: Remove RabbitMQ vhosts + become: yes + rabbitmq_vhost: + vhost: "{{ _rmq_vhost }}" + state: absent + loop_control: + loop_var: _rmq_vhost + with_items: "{{ rabbitmq_absent_vhosts }}" + tags: rabbitmq + +- name: Add RabbitMQ vhosts + become: yes + rabbitmq_vhost: + vhost: "{{ _rmq_vhost }}" + state: present + loop_control: + loop_var: _rmq_vhost + with_items: "{{ rabbitmq_vhosts }}" + tags: rabbitmq