diff --git a/.circleci/config.yml b/.circleci/config.yml index 5d948de2..96e04dee 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -4,7 +4,7 @@ jobs: # Run Ansible-lint checks ansible-lint: docker: - - image: yokogawa/ansible-lint + - image: yokogawa/ansible-lint:v4.3.7 steps: - checkout - run: diff --git a/roles/StackStorm.rabbitmq/tasks/main.yml b/roles/StackStorm.rabbitmq/tasks/main.yml index 6362fc37..2539bcbd 100644 --- a/roles/StackStorm.rabbitmq/tasks/main.yml +++ b/roles/StackStorm.rabbitmq/tasks/main.yml @@ -29,7 +29,7 @@ when: rabbitmq_on_el8 tags: rabbitmq -- name: Install rabbitmq package on {{ ansible_facts.distribution }} +- name: Install latest rabbitmq package on {{ ansible_facts.distribution }} become: yes package: name: rabbitmq-server @@ -41,6 +41,21 @@ notify: - restart rabbitmq tags: rabbitmq + when: rabbitmq_version == "present" + +- name: Install pinned rabbitmq package on {{ ansible_facts.distribution }} + become: yes + package: + name: "rabbitmq-server{{ '=' if ansible_facts.pkg_mgr == 'apt' else '-' }}{{ rabbitmq_version }}" + state: present + register: _task + retries: 5 + delay: 3 + until: _task is succeeded + notify: + - restart rabbitmq + tags: rabbitmq + when: rabbitmq_version != "present" - name: Ensure rabbitmq is enabled and running become: yes diff --git a/roles/StackStorm.rabbitmq/vars/main.yml b/roles/StackStorm.rabbitmq/vars/main.yml index 2cc37ca0..5b00af3e 100644 --- a/roles/StackStorm.rabbitmq/vars/main.yml +++ b/roles/StackStorm.rabbitmq/vars/main.yml @@ -1,2 +1,6 @@ --- rabbitmq_on_el8: "{{ (ansible_facts.os_family == 'RedHat' and ansible_facts.distribution_major_version == '8') }}" +# RabbitMQ version to use. Use present for latest. For EL8 we need to pin +# to 3.8.12 or earlier, as later version requires erlang not available in +# EL8 or epel repositories +rabbitmq_version: "{{ (ansible_facts.os_family == 'RedHat' and ansible_facts.distribution_major_version == '8') | ternary('3.8.12','present') }}"