RabbitMQ is an implementation of AMQP, the emerging standard for high
performance enterprise messaging. The RabbitMQ server is a robust and
scalable implementation of an AMQP broker.
RabbitMQ is an implementation of AMQP, the emerging standard for high performance enterprise messaging.
The RabbitMQ server is a robust and scalable implementation of an AMQP broker.
This charm deploys RabbitMQ server and provides AMQP connectivity to clients.
To deploy this charm:
juju deploy rabbitmq-server
deploying multiple units will form a native RabbitMQ cluster:
juju deploy -n 3 rabbitmq-server
To make use of AMQP services, simply relate other charms that support the rabbitmq interface:
juju add-relation rabbitmq-server nova-cloud-controller
Generate an unencrypted RSA private key for the servers and a certificate:
openssl genrsa -out rabbit-server-privkey.pem 2048
Get an X.509 certificate. This can be self-signed, for example:
openssl req -batch -new -x509 -key rabbit-server-privkey.pem -out rabbit-server-cert.pem -days 10000
Deploy the service:
Enable SSL, passing in the key and certificate as configuration settings:
juju set rabbitmq-server ssl_enabled=True ssl_key="`cat rabbit-server-privkey.pem`" ssl_cert="`cat rabbit-server-cert.pem`"
To change the source that the charm uses for packages:
juju set rabbitmq-server source="cloud:precise-icehouse"
This will enable the Icehouse pocket of the Cloud Archive (which contains a new version of RabbitMQ) and upgrade the install to the new version.
The source option can be used in a few different ways:
source="ppa:james-page/testing" - use the testing PPA owned by james-page
source="http://myrepo/ubuntu main" - use the repository located at the provided URL
The charm also supports use of arbitary archive key's for use with private repositories:
juju set rabbitmq-server key="C6CEA0C9"
Note that in clustered configurations, the upgrade can be a bit racey as the services restart and re-cluster; this is resolvable using:
juju resolved --retry rabbitmq-server/1
This charm supports the use of Juju Network Spaces, allowing the charm to be bound to network space configurations managed directly by Juju. This is only supported with Juju 2.0 and above.
The amqp relation can be bound to a specific network space, allowing client connections to be routed over specific networks:
juju deploy rabbitmq-server --bind "amqp=internal-space"
alternatively this can also be provided as part of a juju native bundle configuration:
NOTE: Spaces must be configured in the underlying provider prior to attempting to use them.
NOTE: Existing deployments using the access-network configuration option will continue to function; this option is preferred over any network space binding provided if set.
Author: OpenStack Charmers firstname.lastname@example.org