Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have been trying to setup OpenStack on 14.04 using one machine. I have managed to get MAAS setup and JUJU bootstrapped with two machines, one machine to MAAS and another node that I am trying to setup openstack on. I have read it can be done but I am having problems, basically after reading this and digging around the internet I found that nova-volume is deprecated so I have been trying to use cinder instead.

I have been using these commands:

juju deploy mysql --to 0
juju deploy rabbitmq-server --to 0
juju deploy --config=openstack.cfg keystone --to 0
juju deploy --config=openstack.cfg nova-cloud-controller --to 0
juju deploy --config=openstack.cfg cinder --to 0
juju deploy nova-compute --to 0
juju deploy glance --to 0
juju deploy openstack-dashboard --to 0

juju add-relation keystone mysql

juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone

juju add-relation cinder nova-cloud-controller
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder keystone

juju add-relation nova-compute mysql
juju add-relation nova-compute:amqp rabbitmq-server:amqp
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller

juju add-relation glance mysql
juju add-relation glance keystone

juju add-relation openstack-dashboard keystone

juju expose openstack-dashboard
juju expose nova-cloud-controller

As you can see I have used --to 0 to say I want them all on the same node. I can get everything started but after linking up all the relations I get this error:

hook failed: "shared-db-relation-changed"

I also in one of the logs a error message saying access denied for that user and that ip.

I believe the problem is juju is telling the other services that the IP is but then mysql sets up the users with, meaning they cannot connect.

Any ideas?

Other things:

  • This is hopefully going to be used for a private cloud at work, with half a dozen or so instances.
  • I don't want to use devstack as everyone keeps saying that isn't for production.
share|improve this question
This is the config I used (wouldnt let me post it due to my rep ) – Tim Perry May 3 '14 at 11:23
Thanks for replying, I have decided to tone things down and use webvirtmgr along with KVM and as after more reading it (including what you have said) is overkill. – Tim Perry May 6 '14 at 9:38

Using --to flag without containerization is a really bad idea. We've likened this "Hulk Smashing". Basically you're layering a ton of services on top of each other that all expect to own the machine.

So, what can you do to achieve isolation and still keep everything on one machine? Containerization!

The --to flag has a finesse about it which allows you to do co-location without the potential for catastrophic collisions. --to supports a syntax like --to lxc:0 and --to kvm:0 which will place the service in containers on the machine listed. Almost all the charms in the OpenStack deployment can be safely placed in LXC (or KVM) containers, with the exception of Ceph and nova-compute. Nova-compute because it in itself will provision VMs (and KVM inside LXC is weird) and Ceph because it needs to own disks. You can do an OpenStack deployment without Ceph so that's not a problem and you can nest KVM so nova-compute on KVM to create KVMs (or LXC) should work.

At this point it's all about performance and you won't really get a lot of that with this setup. It should, however, be enough to pilot the process.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.