---
# https://www.rabbitmq.com/install-debian.html#apt-pinning
- name: Pin erlang version that rabbitmq supports
  copy:
    dest: /etc/apt/preferences.d/erlang
    content: |
        Package: erlang*
        Pin: version 1:20.3.8.18-1
        Pin-Priority: 1000

        Package: esl-erlang
        Pin: version 1:20.3.6
        Pin-Priority: 1000

- name: Install https transport for apt
  apt:
    name: apt-transport-https
    state: latest
    force: yes

- name: Add RabbitMQ release signing key
  apt_key:
    url: https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/setup_rabbitmq/rabbitmq-release-signing-key.asc
    state: present

- name: Add RabbitMQ Erlang repository
  apt_repository:
    repo: "deb https://dl.bintray.com/rabbitmq-erlang/debian {{ ansible_distribution_release }} erlang-20.x"
    filename: 'rabbitmq-erlang'
    state: present
    update_cache: yes

# Required by the rabbitmq modules that uses the management API
- name: Install requests
  pip:
    name: requests

- name: Install RabbitMQ Server
  apt:
    deb: https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/setup_rabbitmq/rabbitmq-server_3.7.14-1_all.deb

- name: Install RabbitMQ TLS dependencies
  apt:
    name: "{{ item }}"
    state: latest
  loop:
    - erlang-asn1
    - erlang-crypto
    - erlang-public-key
    - erlang-ssl

- name: Ensure TLS config
  copy:
    src: rabbitmq.conf
    dest: /etc/rabbitmq/rabbitmq.conf

- name: Start RabbitMQ service
  service:
    name: rabbitmq-server
    state: started

- name: Enable management
  command: rabbitmq-plugins enable --online rabbitmq_management
