[openstack-dev] [Congress][olso][oslo.messaging] Dynamically Determine Rabbit Transport URL?

Jay Pipes jaypipes at gmail.com
Mon Feb 6 21:23:51 UTC 2017

On 02/06/2017 04:09 PM, Aimee Ukasick wrote:
> Thanks, Clint, for your quick response. Questions inline.
> On 02/06/2017 01:32 PM, Clint Byrum wrote:
>> Excerpts from Aimee Ukasick's message of 2017-02-06 12:57:28 -0600:
>>> Hi everyone - from the Congress standalone installation guide
>>> (http://docs.openstack.org/developer/congress/README.html#installing-congress):
>>> ---
>>> To use RabbitMQ with Congress, set the transport_url in the “From
>>> oslo.messaging” section according to your setup:
>>> transport_url = rabbit://$RABBIT_USERID:$RABBIT_PASSWORD@$RABBIT_HOST:5672
>>> ---
>>> Is there a CLI or API call to determine the Rabbit userID, password,
>>> host, and port from a running OpenStack installation? My colleague and I
>>> are working on standalone Congress installation scripts (bash), and we
>>> are trying to figure how to dynamically determine the RABBIT_USERID,
>>> RABBIT_PASSWORD, RABBIT_HOST, and port.  We really don't want to resort
>>> to pulling the transport URL out of another service's conf file
>>> (nova.conf, heat.conf, keystone.conf, etc).
>>> There is a rabbitmqctl
>>> https://www.rabbitmq.com/man/rabbitmqctl.1.man.html  but that doesn't
>>> have the commands for finding userID, password, host, and port.
>> Those conf files get it from the same place you should: Config
>> management. You need to inject it into your bash however you inject
>> details of the environment into anything else.
> I'm relatively new to OpenStack, so please pardon my ignorance. What do
> you mean by config management? We don't have any details about how
> OpenStack has been installed - it may have been installed by an OPNFV
> Installer, an OpenStack installer, or some other way. We are looking for
> an installer-agnostic means of determining: 1) where Rabbit is installed
> and running as a service (rabbit_host); and 2) how to obtain the rabbit
> UserID and password so we can configure the transport_url.
> Also, my colleague and I can't assume that Congress or Tacker or another
> OpenStack service is going to be installed on the Controller node. What
> if we are installing the OpenStack service in a Docker container that's
> not on the Controller? We aren't OpenStack experts, so any guidance is
> greatly appreciated.

Hi Aimee,

I think what Clint is saying is that storing and retrieving the 
configuration information for things like rabbitmq (or databases and 
things like that) is not in the purview of OpenStack itself, but rather 
is the responsibility of the tooling that you used to deploy OpenStack 
(and other applications) in your environment.

Whether it's Chef, Puppet, SaltStack, Ansible, or any other 
configuration management tool, each one generally has one or more 
methods to grab and store sensitive configuration information. Same for 
things like Kubernetes and Terraform. Each uses different ways of 
storing and distributing that information.

Depending on how your infrastructure was deployed, you will need to use 
the method appropriate to that configuration management system.


More information about the OpenStack-dev mailing list