Install RabbitMQ on CentOS 7
sudo yum -y install epel-release
sudo yum -y update
Install Erlang
Download repository
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
Add repository
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
Install erlang and dependencies
sudo yum -y install erlang socat logrotate
Install RabbitMQ
Download RabbitMQ package
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el7.noarch.rpm
Add signing key
sudo rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
Install rabbitmq-server
sudo rpm -Uvh rabbitmq-server-3.7.9-1.el7.noarch.rpm
Start RabbitMQ
sudo systemctl start rabbitmq-server
Automatically start RabbitMQ at boot time
sudo systemctl enable rabbitmq-server
Firewall
If you have a firewall installed and running
sudo firewall-cmd --zone=public --permanent --add-port=4369/tcp
sudo firewall-cmd --zone=public --permanent --add-port=25672/tcp
sudo firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
sudo firewall-cmd --zone=public --permanent --add-port=15672/tcp
sudo firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1883/tcp
sudo firewall-cmd --zone=public --permanent --add-port=8883/tcp
Reload the firewall
sudo firewall-cmd --reload
SELinux
If you have SELinux enabled
sudo setsebool -P nis_enabled 1
RabbitMQ Web Management Console
Enable RabbitMQ web management console
sudo rabbitmq-plugins enable rabbitmq_management
Modify file permissions
sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
Create an admin user (Change password
to a strong password)
sudo rabbitmqctl add_user admin password
Make admin user and administrator
sudo rabbitmqctl set_user_tags admin administrator
Set admin user permissions
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
To access the RabbitMQ admin
http://Your_Server_IP:15672
RabbitMQ SSL
Create rabbitmq conf file at /etc/rabbitmq/rabbitmq.conf
management.listener.port = 15672
management.listener.ssl = true
management.listener.ssl_opts.cacertfile = /path/to/your/ca_certificate.pem
management.listener.ssl_opts.certfile = /path/to/your/certificate.pem
management.listener.ssl_opts.keyfile = /path/to/your/key.pem
RabbitMQ Cluster
Setup multiple RabbitMQ servers, copy script below to /usr/local/sbin/rabbitmq-cluster.sh
and run the script