Openstack Icehouse install using Devstack

In this blog, I will cover steps to install Openstack Icehouse release using Devstack. I will cover Single node installation as well as Multi-node installation. In a single node installation, both control and compute instance runs in the same VM. In multi-node install, control and compute instance runs in 1 VM/host and a compute instance runs in another separate VM/host. In multi-node install, we can spin as many compute instances as needed. With 12GB RAM in my host, I was running out of memory with single control and compute instance and a bunch of host applications running in my system.

My environment:

  • Windows 7 with Virtualbox 4.3.10
  • 12 GB RAM

Downloadable VM:

I have created OVA files for both the controller and compute instance that can be downloaded from below links. Import the OVA files into any VM manager software like Virtualbox to try this out. These VMs are running Ubuntu 12.04.

Alternate locations for downloading VMs in case the Dropbox link above does not work:

Following are the steps that I did to create the VMs above. If you are downloading the OVA files, you don’t need to follow the steps below.

  • Clean install 12.04 ubuntu iso
  • Setup controller instance with 4 CPU and 4 GB ram. Setup compute instance with 2 CPU and 2 GB ram. Controller instance needs more memory since majority of Openstack components run here.
  • In Virtualbox networking option, use 1 NAT interface and 1 host-only interface.
  • Do OS updates using “sudo apt-get update”, “sudo apt-get upgrade”,  “sudo apt-get dist-upgrade”.
  • Reboot system.
  • Install git  – “sudo apt-get install git”
  • Get icehouse stable code – ” git clone -b stable/icehouse “.
  • Update “localrc” in “devstack” directory. “localrc” file tells the “” script to start appropriate Openstack services. Controller localrc can be got from here. Compute localrc can be got from here. In the localrc files. Update the “OFFLINE” flag to “False” the very first time stacking is done. From the next time onwards, “OFFLINE” flag can be set to “True”. This allows the updates to be fetched the first time.

Starting devstack:

  • Login to both controller and compute instance using username “openstack” and password “openstack”.
  • First do the stacking for controller VM.
  • Change to devstack directory – “cd devstack”.
  • Open “localrc” file and search for “EDITME”.  Change HOST_IP to the ip address of the eth1 interface that got assigned to your VM.
  • Stack it – “./”
  • Repeat the same steps above for compute VM. For localrc, change HOST_IP to be the ip address of compute instance and SERVICE_HOST to be the ip of control instance.
  • There will be few packages that will be missing in the default Ubuntu installation which “” will complain. We just need to install these packages and run “” again. Some of them that I could remember are “curl”, “pip”, “python-dev”, “netifaces”.

If only the control instance is used, VMs are spawned in the control instance itself. If both the control and compute instance is used, VMs are scheduled in a round robin fashion between control and compute instance. If above steps are successful, you can access the Openstack horizon interface using the host ip address.

Demo of Single node Openstack Icehouse install and usage:

Demo of Multi node install and usage:

Ubuntu 14.04 update:

Recently, I tried devstack with Ubuntu 14.04 and the “localrc” files mentioned above works with Ubuntu 14.04 as well. I had to install few additional packages to make devstack work. Multiple folks had raised issues with Openstack installation with 14.04 using the procedure above. 1 thing that I realized is that since we keep the “OFFLINE” flag in localrc as “true” in the first run of “”, there are package dependencies that change over time and there cannot be a standard set of packages that will work all the time. To simplify this, I have created 2 options:

  1. I have created a OVA file similar to the one that I created above for Ubuntu 12.04. This can be downloaded from here and installed in Virtualbox or VMware player. I have kept the “OFFLINE” flag as “true” in localrc. You can keep that as it is and just change the IP address to what your address is. Keeping the “OFFLINE” flag as “true” will remove new package dependencies. After you download the OVA file and start the VM, you need to change the IP address in “localrc” and then run “”.
  2. I have created a Vagrantfile with the configuration and steps needed to install Icehouse devstack on Ubuntu 14.04. For more details on Vagrant, pls refer my other blog on Vagrant. Following are the steps needed with this option. Before doing the steps below, install “Virtualbox” and “Vagrant”. I have set the IP address to “” in Vagrantfile. You can change this in Vagrantfile if you need a different address based on your environment. This will be a host-only IP address in Virtualbox.
git clone
cd vagrant/devstack
vagrant up

I have another project with vagrant under vagrant/odl, you can ignore it. (I need to figure out a way where git can checkout sub-directories under a repository). After the steps above, you will see the VM running inside Virtualbox. To start the ssh session to VM, do the below command from the same directory.

vagrant ssh

To do the stacking, change to “devstack” directory and edit the IP address in “localrc” to the address that you have set in the Vagrantfile. Set the “OFFLINE” flag to “false” for the first run and thereafter set the flag to “true”. I tested the Vagrantfile in Windows environment. Since the host-only IP address in Virtualbox is accessible from localhost, you can directly access the Horizon UI from the local web browser using the IP address specified in Vagrantfile.

Stacking scripts: - To start stacking - Cleanup stacking done. I use it when I change local configuration and to redo stacking - To clean up stacking environment completely - To connect to existing screen session. This is very helpful when we restart VM and we want to connect to previous stacking session.

Local configuration:

Stacking local configuration variables were specified in localrc. Recently, there is a new format specified to store configuration variables as described here.

Debugging issues with stacking:

First step would be to look for logs under “/opt/stack/logs”. There is a summary log file and 1 more detailed log file that could have the reason for failure. Logs for each Openstack service can be viewed using screen. Screen keeps the terminal/session active even when we detach from it. Also, screen allows us to view multiple terminals in a single terminal. I was not familiar with screen earlier, following commands are useful:

screen -x - list screens
screen -x  - goto particular screen session
./ - open a screen session for devstack
ctrl-a-n - next screen
ctrl-a-p - previous screen
ctrl-a-[ - copy mode, allows us to scroll the screen using arrow keys
ctrl-] - stop copy mode
ctrl-a-number - goto particular screen
ctrl-a-d - detach from screen
ctrl-a-" - List all screens, allows us to scroll down to the particular screen we need

To start and stop a service:

ctrl-c - stops the service
Use up arrow for the previous command and start the service


65 thoughts on “Openstack Icehouse install using Devstack

  1. Hi Sreenivas ! great tutorial !
    Just one question . Lets saw im running this set up behind a proxy . How will the localrc file change ???
    eg if we take the controller ( eth0) how will the localrc change respect to HOST_IP var and export no_proxy var in localrc ???

  2. This is good!!!

    But I can’t ./stack!!!!

    log is

    /home/stack/devstack/functions-common: line 525: cd: /opt/python-ceilometerclient: No such file or directory

    How can i solve this problem?

    I can’t download Downloadable VM’s.
    How can i download?

  3. Did you follow the steps above as it is with the same ubuntu and openstack icehouse versions along with localrc file in the link above.
    Looks like ceilometerclient directory did not get created.
    Following are some things to check:
    Looks for logs under /opt/stack/logs, this can tell you why the stacking failed.
    Make sure that you have enough hard disk space.

    I hosted downloadable VMs under Dropbox. Because of excessive traffic, my account got suspended:) I need to find a better way to host the OVA files..

  4. hi Stephen, how can I activate the opendaylight ml2 plugin after I successfully installed the openstack control and compute node? I have tried simply add words in localrc and it did not work.

  5. Hi,

    I have a question. I have successfully installed both compute and controller.
    It uses virsh command to view instances.
    Why am i not getting any machine UP when i am doing nova list ?
    Instances are visible in horizon and virsh list. But not in nova list. why?
    Are these instances are not formed by nova ?
    n-cpu installed in compute not is not interacting with nova to create machine ?
    Please help.

  6. I Did all installation successfully. My instances came active but instances in the compute node are not accessible using ssh or ping (They have same security group as that of VMs in controller node). These instances are not visible on console in horizon.
    Following error is shown in cosole on horizon:
    “console is currently unavailable. Please try again later. “

    1. I have not tried in Fedora. I have seen links in the web describing procedure to install in Fedora 17 and the procedure looked similar.
      Even between different Ubuntu versions, there are minor differences in the installation because of package dependencies etc. What I feel is the procedure should be same at high level with minor differences because of distribution differences.


    2. Hi Pauravi, Im Lenin you have un file ova that is right, I dowload the two file this page but no running, my controller , fail :
      HEAD is now at 3b41c1b Merge “Remove unneeded call to fecht network infow on shutdown” into stable/icehouse

      You have maybe the files ova that running ?


  7. Hi,

    May be a simple questions. Why you need 2 network interfaces for this setup?. I see we add only one NIC IP in controller localrc and compute localrc i.e in controller localrc and in computer localrc.

  8. Hi, do you have any document for “DevStack installation guide for Ubuntu 14.04”? As I tried the same setup on 14.04, localrc didn’t help, it ends up in a settings sync-up between controller and compute node. Controller lost its neutron part.

    1. can you pls look at /opt/stack/logs and check for logs in* to get more details on why cinder failed to start. Also, I assume that you have used the same steps as I mentioned above for 12.04 as well as the localrc files that I have used.

      1. sreeni i am doing all my installation in server edition. does server edition and desktop edition make any difference?. I deleted my previous installation hence could not exactly tell you my error from logs. Now gonna try freshly again. Will continue post all my issues, please help me out.

      2. Hi Arvind
        i have used the desktop edition. Let me know how it goes. When I get a chance over the weekend, I will create a Vagrant setup so that the process can be automated and you can use that in case you still have issues.


  9. hi sreeni,

    this is my log files detail, my installation is getting failed in cinder api…

    2015-01-17 15:53:20.664 | Installing package prerequisites
    2015-01-17 15:54:59.964 | Installing OpenStack project source
    2015-01-17 15:58:17.704 | Configuring Ceilometer
    2015-01-17 15:59:10.463 | Installing Tempest
    2015-01-17 15:59:22.130 | Starting RabbitMQ
    2015-01-17 15:59:24.800 | Configuring and starting MySQL
    2015-01-17 15:59:26.043 | Enabling MySQL query logging
    2015-01-17 15:59:35.475 | Starting Keystone
    2015-01-17 16:03:13.475 | Configuring and starting Horizon
    2015-01-17 16:03:24.134 | Configuring Glance
    2015-01-17 16:03:47.847 | Configuring Neutron
    2015-01-17 16:04:11.451 | Configuring Cinder
    2015-01-17 16:04:24.127 | Configuring Nova
    2015-01-17 16:05:03.705 | Starting Glance
    2015-01-17 16:05:18.725 | Uploading images
    2015-01-17 16:17:46.571 | Starting Nova API
    2015-01-17 16:18:08.432 | Starting Neutron
    2015-01-17 16:18:54.445 | Creating initial neutron network elements
    2015-01-17 16:21:24.842 | Starting Nova
    2015-01-17 16:21:58.461 | Starting Cinder

    1. Hi Arvind
      I think you have pasted the log from summary file, there is 1 more log file with more details. There are many things that can go wrong including package dependencies and system configs. To keep it simple, I have updated the blog with 2 options for 14.04. You can either download the OVA file or use the Vagrantfile to create the VM. Pls try and let me know if 1 of these options works for you.


  10. hi sreeni,

    i will once check my error and paste it here. Thanks for the two new steps on 14.04, can you put the video demonstration too for the same. i need to do lot of ground work on vagrant, i failed miserably in openstack grizzly itself.

    1. hi sreeni,

      This is my error screen when i got installing devstack method in ubuntu 14 server

      [ERROR] /home/arvind/devstack/lib/cinder:523 c-api did not start
      [ERROR] /home/arvind/devstack/lib/cinder:523 c-api did not start
      [ERROR] /home/arvind/devstack/lib/cinder:523 c-api did not start
      [ERROR] /home/arvind/devstack/lib/cinder:523 c-api did not start

      please tell me what went wrong…

  11. Hi, I followed the setup on a single physical ubuntu server 14.04. Everything went fine except that console is not coming up for instances from horizon web.

    “Unable to connect
    Firefox can’t establish a connection to the server at” . is my host IP. Please help. Let me know if you need any further info.


  12. Thanks for the reply Sreeni. Yes, I can ping and ssh to the instances from my host. Looks like port 6080 is not listening. But there is no firewall in place on the host. It’s in disabled state.

    openstack@ubuntu-openstack:~$ netstat -nat |grep 6080

  13. I’ve fixed the issue. Actually n-novnc service which is responsible for vnc consoles was not enabled in the localrc file that I downloaded from this blog. Hence this service and its components were missing. I enabled the service and rebuilt the stack and console started working!

    Thanks for your help.

    1. Hi Simmi
      Good catch. Did you choose the VM that I mentioned in the blog above or just the localrc file from the blog? I see that I have not enabled the n-novnc service, but it has started by default for me. Wondering why thats the case.


  14. sreeni,

    can u send me the OVC file URL for installation, i wanna download via IDM.

    I could not configure icehouse successfully at all your OVA is my hope !!!!

      1. hi sreeni,

        can you just put that OVA file in torrentz format, this large 2.9gb file is getting interrupted often while downloading

  15. hi Sreeni,

    The OVA file is not getting exported to Oracle VM virtualbox, gives me error stating

    Failed to import appliance G:\ubuntu14_devstack.ova.

    <vbox:Machine> element in OVF contains a medium attachment for the disk image 840ea8e7-853c-4959-8927-3ce28b1f163d but the OVF describes no such image.

    Result Code: E_FAIL (0x80004005)
    Component: Appliance
    Interface: IAppliance {3059cf9e-25c7-4f0b-9fa5-3c42e441670b}

    1. hi Arvind
      I am not very sure abt the error.
      When I did a quick google search, i can see following reasons:
      file is corrupted.
      virtualbox version is old(i am using 4.3.20 version)
      remove peripheral like usb in the image and then start

      see if any of the above can fix the problem.


      1. hi,
        the file ubuntu1414_devstack-disk2.vmdk is corrupted. I tried to download 4 times. Can you to share it again?

      2. hi Radek
        Unfortunately, I dont have the backup of the ova file, not sure how it got corrupted. I can try to recreate it and upload when I get a chance. Installing Openstack Juno is pretty straightforward, I have covered the steps from baremetal Ubuntu in this blog( You can also try the vagrant option I mentioned in the blog. Pls see if this option can work for u.


      3. hi,
        Thanks for your interest. I’ll check the configurations.
        I installed the Juno / icehouse but I always have a problem with the network. I can not ping the machine Instance (2 -> 1 or 1 <-2). Instances did not have access to the internet also.
        I wanted to try your file.
        Does it work with you?

      4. I assume you are using Cirros instances. can you provide the “ifconfig” outputs?
        Did you update the default security group to allow ping?
        To allow external connectivity from VM, you need to execute the following in host machine(sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE)

        if the above still does not work:
        Can you try my localrc/local.conf file. Details are in my 2 blogs related to icehouse and juno install.


  16. Hi, I’m unable to establish ping from an instance on control node to any other instance on the compute node. I believe GRE or VXLAN tunneling is required for this. Could you please guide on this.

    1. which local.conf and which openstack release did you use?
      i assume control node and compute node has ip connectivity?
      are you able to ping between vm’s created on control node?
      can you do “sudo ovs-vsctl show” to make sure that tunnel is created between control and compute node? tunnel type would be as mentioned in the local.conf.

      1. I had used the VMs which are available in this blog. There were no tunnels created. The VMs within the control node are able to ping each other. IP connectivity between the VMs are fine.

      2. I think the local.conf file in that page has issue with multi-host networking. Sorry about this. Please refer to this link( This has the updated local.conf files to be used for control and compute node. (, This creates gre tunnels based on current local.conf, you can change it to vxlan if you want.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s