--- # Stands up a RabbitMQ Cluster - name: Configure RabbitMQ hosts: '{{ host }}' become: true vars_files: # vars/vaults/encpass.yml - vars/common.yml - vars/rabbitmq.yml - vars/rabbitmq_vhost.yml - vars/rabbitmq_users.yml # This is to try to avoid the handler issue in pre/post tasks handlers: - import_tasks: handlers/main.yml pre_tasks: - name: Check if ansible cannot be run here stat: path: /etc/no-ansible register: no_ansible - name: Verify if we can run ansible ansible.builtin.assert: that: - "not no_ansible.stat.exists" success_msg: "We are able to run on this node" fail_msg: "/etc/no-ansible exists - skipping run on this node" - name: Verify if we are Rocky Linux 9 or higher ansible.builtin.assert: that: - ansible_distribution_major_version|int >= 9 - ansible_distribution | lower == "rocky" success_msg: "We are on a supported system" fail_msg: "Only Rocky Linux versions 9 or higher are supported." # We have separate passwords per rabbitmq env - name: Import rabbitmq passwords ansible.builtin.include_vars: file: "vars/vaults/rabbitmq_{{ rabbitmq_env }}.yml" # The extras repos has epel-release provided - name: Enable the EPEL repository ansible.builtin.dnf: name: epel-release state: present notify: - enable_crb tags: - packages - name: Flush handlers ansible.builtin.meta: flush_handlers - name: Install centos rabbitmq yum: name: centos-release-rabbitmq-39 state: present tags: - packages roles: - role: rockylinux.ipagetcert state: present when: rabbitmq_private tasks: - name: Run rabbitmq installation ansible.builtin.import_tasks: "tasks/rabbitmq/rabbitmq.yml" tags: - rabbitmq_cluster - name: Run rabbitmq vhosts ansible.builtin.import_tasks: "tasks/rabbitmq/vhost.yml" tags: - vhosts - name: Run rabbitmq users ansible.builtin.import_tasks: "tasks/rabbitmq/users.yml" tags: - vhosts post_tasks: - name: Touching run file that ansible has ran here ansible.builtin.file: path: /var/log/ansible.run state: touch mode: '0644' owner: root group: root ...