VMware vCloud Director RabbitMQ Install and Setup
What is RabbitMQ and why do we need it for vCloud Director ? RabbitMQ and vCloud director utilize the Advanced Message Queuing Protocol (AMQP) which allows vCloud Director cells to exchange messages amongst each other.
When a vCloud Director Cell wishes to exchange messages (such as system notifications) with another vCloud Director cell, it places that message within an AMQP broker, in this case RabbitMQ. The recipient vCloud Director Cell then retrieves the message from the AMQP broker (RabbitMQ) and processes it.
Think of an AMQP broker as a central repository for message exchanges.
My RabbitMQ Server is a virtual machine with the following specs:
- Hostname: vcloud6services.vmlab.local
- O.S: CentOS 6.5 (64-bit)
- CPU: 1 vCPU
- RAM: 2GB
- HDD: 20GB
- IP: 192.168.1.168/24
At this point I have already ran through a basic server install of CentOS and applied all updates (# yum update)
RabbitMQ Install and Setup for vCloud Director
1. RabbitMQ requires the Erlang package to run. Erlang is a general purpose programming language. First up we are going to register the Erlang repository so we can download the software. To do this we use 2 commands:
- wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
- rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
- Once we have registered the repository we can then install Erlang by typing # sudo yum install erlang
- wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm (This is the latest version since March 2017)
- rpm – -import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
Now the repository has been registered, and we’ve also obtained the public key for signing, we can install the RabbitMQ package by typing
- sudo yum install rabbitmq-server-3.6.6-1.el6.noarch.rpm
- # chkconfig rabbitmq-server on (Sets RabbitMQ to start automatically)
- # service rabbitmq-server start (Starts RabbitMQ service)
- # rabbitmqctl add_user vcloudamqp vcloudamqppassword (username: vcloudamqp, password: vcloudamqppassword)
- # rabbitmqctl set_user_tags vcloudamqp administrator (tags the user as administrator)
- # rabbitmqctl set_permissions -p / vcloudamqp “.*” “.*” “.*” (allow vlcoudamqp user full access to RabbitMQ directories)
All the tutorials included on this site are performed in a lab environment to simulate a real world production scenario. As everything is done to provide the most accurate steps to date, we take no responsibility if you implement any of these steps in a production environment.