--- # Copyright 2014, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Configure rabbitmq plugins rabbitmq_plugin: names: "{{ item.name }}" state: "{{ item.state }}" with_items: "{{ rabbitmq_plugins }}" register: rabbitmq_plugin tags: - rabbitmq-config - name: Apply rabbitmq policies rabbitmq_policy: node: "rabbit@{{ ansible_hostname }}" name: "{{ item.name }}" pattern: "{{ item.pattern }}" priority: "{{ item.priority | default(0) }}" tags: "{{ item.tags }}" register: rabbitmq_queue_mirror with_items: "{{ rabbitmq_policies }}" tags: - rabbitmq-config - rabbitmq-cluster - name: Create rabbitmq systemd service config dir file: path: "/etc/systemd/system/rabbitmq-server.service.d" state: "directory" group: "root" owner: "root" mode: "0755" when: - ansible_service_mgr == 'systemd' tags: - rabbitmq-config - name: Create rabbitmq config register: rabbit_config_changed template: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - { src: "rabbitmq.config.j2", dest: "/etc/rabbitmq/rabbitmq.config" } - { src: "rabbitmq-server.j2", dest: "/etc/default/rabbitmq-server" } - { src: "rabbitmq-env.j2", dest: "/etc/rabbitmq/rabbitmq-env.conf" } tags: - rabbitmq-config - name: Apply resource limits (systemd) register: rabbit_resource_limit_changed template: src: "limits.conf.j2" dest: "/etc/systemd/system/rabbitmq-server.service.d/limits.conf" when: - ansible_service_mgr == 'systemd' tags: - rabbitmq-config - name: Reload the systemd daemon command: "systemctl daemon-reload" when: - ansible_service_mgr == 'systemd' - rabbit_resource_limit_changed|changed tags: - rabbitmq-config # don't trigger ANSIBLE0016 - skip_ansible_lint - include: rabbitmq_restart.yml static: no when: rabbit_config_changed|changed or rabbitmq_plugin|changed or rabbitmq_queue_mirror|changed # This is being done because the rabbitctl command used by the module # is not very effective at returning proper status codes for failure # and the module does not error detection. until we can go upstream # to fix this issue this task being being done in two parts to ensure # that the "guest" user is eradicated. - name: Ensure default rabbitmq guest user is removed rabbitmq_user: node: "rabbit@{{ ansible_hostname }}" user: guest state: absent when: inventory_hostname == groups[rabbitmq_host_group][0] tags: - rabbitmq-user - name: Ensure default rabbitmq guest user is removed rabbitmq_user: node: "rabbit@{{ ansible_hostname }}" user: guest state: absent when: inventory_hostname != groups[rabbitmq_host_group][0] tags: - rabbitmq-user