How to Install Your Own Cloud Platform with OpenStack in RHEL/CentOS 7

OpenStack is a free and open-source software platform which provides IAAS (infrastructure-as-a-service) for public and private clouds.

OpenStack platform consists of several inter-related projects that control hardware, storage, networking resources of a datacenter, such as: Compute, Image Service, Block Storage, Identity Service, Networking, Object Storage, Telemetry, Orchestration and Database.

The administration of those components can be managed through the web-based interface or with the help of OpenStack command line.

Install OpenStack in CentOS 7

Install OpenStack in CentOS 7 and RHEL 7

This tutorial will guide you on how you can deploy your own private cloud infrastructure with OpenStack installed on a single node in CentOS 7 or RHEL 7 or Fedora distributions by using rdo repositories, although the deployment can be achieved on multiple nodes.

Requirements

  1. Minimal Installation of CentOS 7
  2. Minimal Installation of RHEL 7

Step 1: Initial System Configurations

1. Before you begin preparing the node in order to deploy your own virtual cloud infrastructure, first login with root account and assure that the system is up to date.

2. Next, issue the ss -tulpn command to list all running services.

# ss -tulpn
List All Running Linux Services

List All Running Linux Services

3. Next, identify, stop, disable and remove unneeded services, mainly postfix, NetworkManager and firewalld. At the end the only daemon that would be running on your machine should be sshd.

# systemctl stop postfix firewalld NetworkManager
# systemctl disable postfix firewalld NetworkManager
# systemctl mask NetworkManager
# yum remove postfix NetworkManager NetworkManager-libnm

4. Completely disable Selinux policy on the machine by issuing the below commands. Also edit /etc/selinux/config file and set SELINUX line from enforcing to disabled as illustrated on the below screenshot.

# setenforce 0
# getenforce
# vi /etc/selinux/config
Disable SELinux

Disable SELinux

5. On the next step using the hostnamectl command to set your Linux system hostname. Replace the FQDN variable accordingly.

# hostnamectl set-hostname cloud.centos.lan
Set Linux System Hostname

Set Linux System Hostname

6. Finally, install ntpdate command in order to synchronize time with a NTP server on your premises near your physical proximity.

# yum install ntpdate 

Step 2: Install OpenStack in CentOS and RHEL

7. OpenStack will be deployed on your Node with the help of PackStack package provided by rdo repository (RPM Distribution of OpenStack).

In order to enable rdo repositories on RHEL 7 run the below command.

# yum install https://www.rdoproject.org/repos/rdo-release.rpm 

On CentOS 7, the Extras repository includes the RPM that actives the OpenStack repository. Extras is already enabled, so you can easily install the RPM to setup the OpenStack repository:

# yum install -y centos-release-openstack-mitaka
# yum update -y

8. Now it’s time to install PackStack package. Packstack represents a utility which facilitates the deployment on multiple nodes for different components of OpenStack via SSH connections and Puppet modules.

Install Packstat package in Linux with the following command:

# yum install  openstack-packstack

9. On the next step generate an answer file for Packstack with the default configurations which will be later edited with the required parameters in order to deploy a standalone installation of Openstack (single node).

The file will be named after the current day timestamp when generated (day, month and year).

# packstack --gen-answer-file='date +"%d.%m.%y"'.conf
# ls
Generate Packstack Answer Configuration File

Generate Packstack Answer Configuration File

10. Now edit the generated answer configuration file with a text editor.

# vi 13.04.16.conf

and replace the following parameters to match the below values. In order to be safe replace the passwords fields accordingly.

CONFIG_NTP_SERVERS=0.ro.pool.ntp.org

Please consult http://www.pool.ntp.org/en/ server list in order to use a public NTP server near your physical location.

Add NTP Server in Packstack

Add NTP Server in Packstack

CONFIG_PROVISION_DEMO=n
Add Provision in Packstack

Add Provision in Packstack

CONFIG_KEYSTONE_ADMIN_PW=your_password  for Admin user
Add Admin Account in Packstack

Add Admin Account in Packstack

Access OpenStack dashboard via HTTP with SSL enabled.

CONFIG_HORIZON_SSL=y
Enable HTTPS for OpenStack

Enable HTTPS for OpenStack

The root password for MySQL server.

CONFIG_MARIADB_PW=mypassword1234
Set MySQL Root Password in OpenStack

Set MySQL Root Password in OpenStack

Setup a password for nagiosadmin user in order to access Nagios web panel.

CONFIG_NAGIOS_PW=nagios1234
Set Nagios Admin Password

Set Nagios Admin Password

11. After you finished editing save and close the file. Also, open SSH server configuration file and uncomment PermitRootLogin line by removing the front hashtag as illustrated on the below screenshot.

# vi /etc/ssh/sshd_config
Enable SSH Root Login

Enable SSH Root Login

Then restart SSH service to reflect changes.

# systemctl restart sshd

Step 3: Start Openstack Installation Using Packstack Answer File

12. Finally start Openstack installation process via the answer file edited above by running the below command syntax:

# packstack --answer-file 13.04.16.conf
Openstack Installation in CentOS

Openstack Installation in Linux

13. Once the installation of OpenStack components is successfully completed, the installer will display a few lines with the local dashboard links for OpenStack and Nagios and the required credentials already configured above in order to login on both panels.

OpenStack Installation Completed

OpenStack Installation Completed

The credentials are also stored under your home directory in keystonerc_admin file.

14. If for some reasons the installation process ends with an error regarding httpd service, open /etc/httpd/conf.d/ssl.conf file and make sure you comment the following line as illustrated below.

#Listen 443 https
Disable HTTPS SSL Port

Disable HTTPS SSL Port

Then restart Apache daemon to apply changes.

# systemctl restart httpd.service

Note: In case you still can’t browse Openstack web panel on port 443 restart the installation process from beginning with the same command issued for the initial deployment.

# packstack --answer-file /root/13.04.16.conf

Step 4: Remotely Access OpenStack Dashboard

15. In order to access OpenStack web panel from a remote host in your LAN navigate to your machine IP Address or FQDN/dashboard via HTTPS protocol.

Due to the fact that you’re using a Self-Signed Certificate issued by an untrusted Certificate Authority an error should be displayed on your browser.

Accept the error and login to the dashboard with the user admin and the password set on CONFIG_KEYSTONE_ADMIN_PW parameter from answer file set above.

https://192.168.1.40/dashboard 
OpenStack Login Dashboard

OpenStack Login Dashboard

Openstack Projects

Openstack Projects

16. Alternatively, if you opted to install Nagios component for OpenStack, you can browse Nagios web panel at the following URI and login with the credentials setup in answer file.

https://192.168.1.40/nagios 
Nagios Login Dashboard

Nagios Login Dashboard

Nagios Linux Monitoring Interface

Nagios Linux Monitoring Interface

That’s all! Now you can start setup your own internal cloud environment. Now follow the next tutorial that will explain how to link the server physical NIC to openstack bridge interface and manage Openstack from web panel.

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Matei Cezar

I'am a computer addicted guy, a fan of open source and linux based system software, have about 4 years experience with Linux distributions desktop, servers and bash scripting.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

86 Responses

  1. nihar says:

    Centos Graphics gone after packstack installation. Any possibilities to get graphics back

    • Kostyanius says:

      Hello,
      Try this:

      1. Installing GNOME-Desktop:

      Install GNOME Desktop Environment on here.

      # yum -y groups install “GNOME Desktop”
      Input a command like below after finishing installation:

      # startx

      Or this:

      2. Installing KDE-Desktop:

      Install KDE Desktop Environment on here.

      # yum -y groups install “KDE Plasma Workspaces”
      Input a command like below after finishing installation:

      # echo “exec startkde” >> ~/.xinitrc
      # startx
      KDE Desktop Environment starts like follows:
      enter image description here

      Or this:

      3. Installing Xfce Desktop Environment:

      Install Xfce Desktop Environment on here.

      # yum -y groupinstall X11
      # yum –enablerepo=epel -y groups install “Xfce”

      # echo “exec /usr/bin/xfce4-session” >> ~/.xinitrc
      # startx

      I prefer Xfce desktop from all above mentioned. It is more simple and good-looking for me. But it is up to you.

  2. Scott says:

    Kept getting HTTPD service error near end of install using VirtualBox 5.1.6. Tried reinstalling HTTPD service and manual restart but Packstack kept failing around same place.

    Determined error was due to service timeout. Increased VM memory from 2GB to 4GB and clean minimal install from DVD ISO following instructions exactly as noted here = Successful install with NO errors.

    Cheers,
    Scott.

  3. kostya_h says:

    Hello guys,

    Does anybody know how to fix it? http://rgho.st/6JRTfrDjL/image.png

    It is in stack state all the time.

    Google does not help with this.

    I have found several cases like mine but there is no one solution for it.

    • kostya_h says:

      it works ok with last release https://www.rdoproject.org/install/packstack/
      just need alot RAM and CPU resources in order to speed up the process so as if use only 4GB RAM and 1 Core CPU it takes ages while it is completed. So it looks like that the process is stuck (for not experienced user like me). But when i added 8GB of RAM and all 4 cores then i was able to see that it was completed successfully (it took about 20-30 minutes). I hope that this information will be usefull for someone.

    • Matei Cezar says:

      Openstack is designed to run on powerfull bare-metal machines, so you should experience errors on virtual machies with less resources , such as RAM or CPUs.

  4. kostyanius says:

    This does not work at all, many users have errors with certs but author even did not mentioned that it is needed in this tutorial.

  5. Engr M Ali Raza says:

    Please help me;
    >
    10.0.2.15_controller.pp: [ ERROR ]
    Applying Puppet manifests [ ERROR ]

    ERROR : Error appeared during Puppet run: 10.0.2.15_controller.pp
    Error: Execution of ‘/usr/bin/yum -d 0 -e 0 -y install openstack-nova-api’ returned 1: Error: Package: 1:python-nova-15.0.3-2.el7.noarch (openstack-ocata)
    You will find full trace in log /var/tmp/packstack/20170517-071917-wAwg1p/manifests/10.0.2.15_controller.pp.log
    Please check log file /var/tmp/packstack/20170517-071917-wAwg1p/openstack-setup.log for more information
    Additional information:

  6. AVANISH KUMAR says:

    Getting below error. Could you help.

    Pre installing Puppet and discovering hosts’ details[ ERROR ]

    ERROR : Failed to run remote script, stdout: Loaded plugins: fastestmirror, langpacks
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
    14: curl#6 – “Could not resolve host: mirrorlist.centos.org; Unknown error”

  7. Alex says:

    Hello,

    I cannot seem to get the following command to complete:

    [[email protected] ~]# packstack --answer-file 04.11.16.conf
    
    ERROR : [Errno 2] No such file or directory: '/etc/pki/tls/certs/selfcert.crt'
    

    Then I got:

    ERROR : [Errno 2] No such file or directory: '/etc/pki/tls/private/selfkey.key'
    

    I am assuming that I am missing a critical piece to the installation. Perhaps something that is done even before this tutorial can be followed. I tried to follow the following link to fix the certificate issue:

    https://ask.openstack.org/en/question/97645/error-while-installing-openstack-newton-using-rdo-packstack/

    Can you help me figure out what is missing and get through the rest of the install?

    Thanks,

    Alex

    • Evans Banda says:

      Hey Alex

      Kindly go through the comments I came gave a hint on how to fix that issue. That will fix ya problem

  8. Karthiraja says:

    which ip address is configured here for openstack server 192.168.1.40 or 192.168.1.41 because openstack is being accessed with 192.168.1.40 and nagios from 192.168.1.41 its confusing..

  9. Omkar says:

    Need Help..

    After executing the command "packstack –answer-file 13.04.16.conf" the process asked me for password just after the line "Setting up SSH Keys"
    Please suggest me how to proceed

    • Krishnan says:

      Hi Omkar,

      To the best of my knowledge, It will let you to setup a password and this it will ask for each service and DB.

      I think this because of some recent update in openstack-packstack… not sure..

      Regards
      R.Krishnan

  10. Krishnan says:

    I’m trying to install the openstack on CentOS running as VM on VMware. I followed the same steps mentioned above, everything is fine but got the following error while updating the answer file with packstack .

    0.77.80.48_amqp.pp:                              [ ERROR ]       
    Applying Puppet manifests                         [ ERROR ]

    ERROR : Error appeared during Puppet run: 10.77.80.48_amqp.pp
    Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Resource Statement, Class[Rabbitmq]: default expression for $config_management_variables tries to illegally access not yet evaluated $config_management_variables at /var/tmp/packstack/b90de8de0b1a4f3284e1a3e6018fe758/manifests/10.77.80.48_amqp.pp:58:5  at /var/tmp/packstack/b90de8de0b1a4f3284e1a3e6018fe758/manifests/10.77.80.48_amqp.pp:17 on node localhost
    You will find full trace in log /var/tmp/packstack/20170313-025724-8MKHPa/manifests/10.77.80.48_amqp.pp.log

    And also the openstack is not opening in web browser and the keystonerc_admin is not created. could you please provide me a solution?

Got something to say? Join the discussion.

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.