OpenStack Marconi is a message queuing service, if you’ve used a message queue before like Amazon SQS, RabbitMQ, etc. then you’ll be familiar with the concepts of Marconi. Marconi is an OpenStack project currently in the incubation phase. Today I’ll focus on setting up a development server running Marconi. Keep in mind that this will not be a production server installation, just something to mess around with and kick the tires so to speak.
Recently I updated the Marconi Readme with similar instructions however in this article I’ll add more details for those new to Marconi or setting up this kind of thing in general.
Note: I’m assuming your using a clean install of Ubuntu Desktop 12.04 LTS. Marconi also supports OpenStack Keystone as well as SSL. I won’t be setting either of these up but if your interested you can see my previous article on setting up OpenStack Keystone.
The first step is to install MongoDB locally:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 $ sudo echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list $ sudo apt-get update $ sudo apt-get install mongodb-10gen
Now we need a few other packages installed:
$ sudo apt-get install git-core python-pip curl
$ cd $ mkdir .marconi $ git clone https://github.com/openstack/marconi.git
Copy the config files to the .marconi folder (you can also use /etc/marconi/ just make sure Marconi is aware the config files are located there):
$ cp marconi/etc/marconi-proxy.conf-sample ~/.marconi/marconi-proxy.conf $ cp marconi/etc/marconi-queues.conf-sample ~/.marconi/marconi-queues.conf $ cp marconi/etc/logging.conf-sample ~/.marconi/logging.conf
Edit the marconi-queues.conf file:
$ cd .marconi/ $ nano marconi-queues.conf
Looks for this section:
[queues:drivers:storage:mongodb] uri = mongodb://db1.example.net,db2.example.net:2500/?replicaSet=test&ssl=true&w=majority
Modify it to look like this:
[queues:drivers:storage:mongodb] uri = mongodb://localhost
Still inside the marconi-queues.conf file adjust the following to point to the location you want to log to:
[DEFAULT] log_file = server.log
Go into the Marconi folder:
$ cd ~/marconi
$ pip install -r requirements.txt $ pip install -e .
$ marconi-server -v
Test that its working with a Health Check which should return an HTTP 204:
$ curl -i -X GET http://127.0.0.1:8888/v1/health
HTTP/1.0 204 No Content Date: Mon, 14 Oct 2013 03:34:00 GMT Server: WSGIServer/0.1 Python/2.7.3 Content-Length: 0
That’s it, Marconi is now working. Next, I’ll show you some of the things you can do with it.