This guide provides a full Ansible playbook to install RabbitMQ with distro-aware package handling and baseline service configuration for Debian 10+, Ubuntu LTS, and RHEL 9+ compatible systems.
- name: Install RabbitMQ
hosts: rabbitmq
become: true
vars:
rabbitmq_config_dir: /etc/rabbitmq
rabbitmq_data_dir: /var/lib/rabbitmq
rabbitmq_admin_user: admin
rabbitmq_admin_password: "secure_password_here"
rabbitmq_management_port: 15672
tasks:
- name: Install RabbitMQ (Debian/Ubuntu)
apt:
name:
- rabbitmq-server
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install RabbitMQ (RHEL family)
dnf:
name:
- rabbitmq-server
state: present
enablerepo: epel
when: ansible_os_family == "RedHat"
- name: Create configuration directory
file:
path: "{{ rabbitmq_config_dir }}"
state: directory
mode: "0755"
owner: rabbitmq
group: rabbitmq
- name: Configure RabbitMQ (rabbitmq.conf)
copy:
dest: "{{ rabbitmq_config_dir }}/rabbitmq.conf"
mode: '0644'
owner: rabbitmq
group: rabbitmq
content: |
# Management plugin
management.listener.port = {{ rabbitmq_management_port }}
# Default user configuration
default_user = {{ rabbitmq_admin_user }}
default_pass = {{ rabbitmq_admin_password }}
# Disable loopback users for remote access
loopback_users.guest = false
- name: Enable management plugin (Debian/Ubuntu)
rabbitmq_plugin:
name: rabbitmq_management
state: enabled
when: ansible_os_family == "Debian"
- name: Enable management plugin (RHEL)
command: rabbitmq-plugins enable rabbitmq_management
args:
creates: /etc/rabbitmq/enabled_plugins
when: ansible_os_family == "RedHat"
- name: Enable and start RabbitMQ
service:
name: rabbitmq-server
state: started
enabled: true
- name: Wait for RabbitMQ to be ready
wait_for:
port: "{{ rabbitmq_management_port }}"
timeout: 60
- name: Verify RabbitMQ is running
command: rabbitmqctl status
register: rabbitmq_status
changed_when: false
failed_when: false
- name: Show RabbitMQ status
debug:
var: rabbitmq_status.stdout_lines[:10]
| Variable | Default | Description |
|---|---|---|
rabbitmq_config_dir |
/etc/rabbitmq |
Configuration directory |
rabbitmq_data_dir |
/var/lib/rabbitmq |
Data directory |
rabbitmq_admin_user |
admin |
Admin username |
rabbitmq_admin_password |
(required) | Admin password (change this!) |
rabbitmq_management_port |
15672 |
Management UI port |
Any questions?
Feel free to contact us. Find all contact information on our contact page.