Single Node OpenStack (Liberty) Installation Steps on CentOS 7

OpenStack is a Cloud Software that manage large pool of compute (hypervisors), storage ( block & swift ) and network resources of a data center. It provides a Dashboard where admins can create and manage Projects (Tenants ) and give appropriate access to the project members , further on Project members can create VMs (Virtual Machine).

In this article we will install latest version of OpenStack ‘Liberty’ on CentOS 7 using rdo repositories. As per my setup i am using followings on my CentOS 7 Machine

  • Hostname =
  • IP address =
  • netmask =
  • Gateway =
  • DNS =

Step:1 Set the hostname using hostnamectl command .

[root@localhost ~]# hostnamectl set-hostname ""
[root@localhost ~]#

Step:2 Set the Selinux in Permissive Mode

[root@localhost ~]# setenforce 0

Edit the selinux config file ( /etc/sysconfig/selinux ) and set “SELINUX=permissive

[root@localhost ~]# grep permissive /etc/sysconfig/selinux
[root@localhost ~]#

Step:3 Disable firewalld & NetworkManager Service

[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/
[root@openstack ~]#
[root@openstack ~]# systemctl stop NetworkManager
[root@openstack ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@openstack ~]#

Step:4 Enable rdo repository for liberty packages.

Use below commands to update the system and enable rdo repository

[root@openstack ~]# yum update -y
[root@openstack ~]# yum install -y

Step:5 Install OpenStack PackStack Package

[root@openstack ~]# yum install -y openstack-packstack

Generate the answer file using below command.

[root@openstack ~]# packstack --gen-answer-file=/root/answer.txt
Packstack changed given value to required value /root/.ssh/

Edit the answer file “/root/answer.txt” , set the following parameters and leave rest of parameters as it is.

# NTP Server

# Disable Demo Version

# Set KeyStone Admin Password or Admin user Password

# Config Horizon over SSL

# Disable Nagios

Note : In case if you don’t have NTP server in your setup then you can leave NTP parameter as it is.

Step:6 Start OpenStack installation using answer file.

[root@openstack ~]# packstack --answer-file /root/answer.txt

Once the installation is completed , we will get below message.


After the installation a new interface “br-ex” will be created and assign the IP addess of eth0 or enp0s3 to br-ex .

[root@openstack ~]# cd /etc/sysconfig/network-scripts/
[root@openstack network-scripts]# cp ifcfg-enp0s3 ifcfg-br-ex
[root@openstack network-scripts]# vi ifcfg-enp0s3

[root@openstack network-scripts]# vi ifcfg-br-ex

In above files please change the IP details, Hardware address and Device name as per your setup.

When we restart the network service , it will add “enp0s3” as a port in br-ex OVS bridge.

[root@openstack network-scripts]# systemctl restart network
[root@openstack network-scripts]#

Please take a reboot and check whether settings are persistent or not.

Step:7 Now Access OpenStack Dashboard.

When the installation is completed a dashboard link was provided on the screen , in My Case it is “”

Liberty-OpenStack-Dashboard jpg

Use the user name as “admin” and password that we set for keystone admin user in answer file.

Instance-Overview- OpenStack-Dashboard

As we are able to login in Dashboard , so OpenStack installation part is completed. Now our next task is to “Launch an Instance from OpenStack Dashboard

23 Responses

  1. Rajendra Dudhare says:

    ERROR : Error appeared during Puppet run:
    Error: /usr/sbin/ntpdate returned 1 instead of one of [0]

  2. Rinshad says:

    Hi Pradeep,

    Thanks for the valuable article.
    Could you let me know how I can add additional IP address to the openstack?
    For test I am using private IP address.

  3. Rinshad says:

    Hi Pradeep,

    After the open stack installation as you said.

    >>> After the installation a new interface “br-ex” will be created and assign the IP addess of eth0 or enp0s3 to br-ex .
    cp ifcfg-enp0s3 ifcfg-br-ex
    But I am not seeing a file name with ifcfg-enp0s3 under the folder network-scripts

    • Pradeep Kumar says:

      Hi Rinshad ,

      What OS version you are using ? and paste the content of directory (/etc/sysconfig/network-scripts). In case of CentOS 7.X & RHEL 7.X we have a interface file either with name “ifcfg-enp0s3” or ifcfg-eth0/1/2′ under the directory ‘/etc/sysconfig/network-scripts/’.

      • Rinshad says:

        Hi Pradeep,

        I am using Centos.7.1. Here is network-scripts folder contents.

        network-scripts]# ls
        ifdown ifdown-ippp ifdown-post ifdown-Team ifup-aliases ifup-ippp ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
        ifcfg-eno1 ifdown-bnep ifdown-ipv6 ifdown-ppp ifdown-TeamPort ifup-bnep ifup-ipv6 ifup-plusb ifup-sit ifup-wireless
        ifcfg-lo ifdown-eth ifdown-isdn ifdown-routes ifdown-tunnel ifup-eth ifup-isdn ifup-post ifup-Team init.ipv6-global
        ifcfg-Profile_1 ifdown-ib ifdown-ovs ifdown-sit ifup ifup-ib ifup-ovs ifup-ppp ifup-TeamPort network-functions

  4. praveen says:

    when i am using this command yum install -y
    i am gettig this error:
    Loaded plugins: fastestmirror, langpacks
    Cannot open: Skipping.
    Error: Nothing to do

    can u please tell me why it is like this.

  5. Du Vang Van says:

    i do not acccess after resat network
    it is fail connect

  6. Samir Kar says:

    Nice article all steps are working properly.

    some rpms need to be download from epel and centos plus repository 🙂

  7. mohammed Khan says:

    I cannot access to external network from instances that I launched in openstack environment. I have mapped it corectly but still cannot ping is threre a way you can show us how to map it our virtual netwotk to external network. It will be so helpfull.

  8. fadloli says:

    Hi Kumar,

    i have error like this when install openstack:
    ERROR : Error appeared during Puppet run:
    Error: Execution of ‘/usr/bin/openstack image create –format shell cirros –public –container-format=bare –disk-format=qcow2 –copy-from=’ returned 1: 400 Bad Request: The HTTP URL is invalid: HTTPConnectionPool(host=’’, port=80): Max retries exceeded with url: /0.3.4/cirros-0.3.4-x86_64-disk.img (Caused by NewConnectionError(‘<requests.packages.urllib3.connection.HTTPConnection object at 0x6e9cf50>: Failed to establish a new connection: [Errno 113] EHOSTUNREACH’,)) (HTTP 400)
    what is impact for my environment?and any resolution? ^_^

  9. akanksha singh says:

    failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try. [Errno -1] Erro r importing repomd.xml for base: Damaged repomd.xml file
    ++ t

    Getting this error when trying to Start OpenStack installation using answer file, if anyone can help me here.

  10. josefh says:

    after finishing the installation, i must have an internet connection to access the dashboard. what should i do to make it as an offline server? please help me. thanks before.

  11. Subramani says:

    Very good steps

  12. Sanya says:

    The only available attributes in the file eno1 are these. I changed the ‘TYPE’ and the ‘ONBOOT’ thing. Do I need to add the other stuff myself?


    • You have to keep following stuff in the file “ifcfg-eno1”


      then create a new file with the name “ifcfg-br-ex”

      IPADDR= ‘IP-Address-Here’

      Restart the network service

  13. ankur says:


    Thanks for the great article. Could you please share the interface details of the VM. How many interfaces should I create? I created 2 interfaces. 1 with NAT with IP and other with HOST-ONLY Adapter with IP But in my answer file I configured the as the IPs for controller. The packstack was successful but I am not able to access Horizon on the Could you please help?


    • Hello Ankur ,

      Basically You can keep two interfaces for each node( Host-only and bridge). Specify the IP address of host only interface in the answers file for your respective nodes. All the openstack management API communication will be done via host only network. You can access the each node and dashboard from the outside using bridge interface ip address.
      So in your setup change NAT mode to bridge mode for the interface and assign the ip address as per your setup and try accessing the Dashboard

      • ankur says:

        Thank you Pradeep. For the single node setup, I added a port forwarding rule and it worked. Now I can access the horizon. But the multinode, because of the lack of resources my setup is a little chaotic.
        I have a virtual box with 2 vms in a physical host and in another physical host, I have another vm inside the virtual host. The problem now is that the vms in different virtual boxes can communicate only via the bridge. In that case the bridge has to be used for the openstack Management API communication?

Leave a Reply

Your email address will not be published. Required fields are marked *