Evaluating OpenStack: Single-Node Deployment

Updated -

Packstack is only intended for use for OpenStack Proof of Concepts / Live demos and the installer itself is not supported

Please refer to Installing and Managing Red Hat OpenStack Platform for getting more details about the Supportability matrix.

This document provides a step-by-step guide to implementing a basic Red Hat Enterprise Linux OpenStack Platform cloud using the Packstack deployment tool. To simplify networking and footprint issues, all OpenStack components are deployed on a single node (machine).

The resulting OpenStack deployment consists of a public network and a private network on one machine, hosting one CirrOS-image instance, with an attached storage volume. Installed OpenStack services include: Block Storage, Compute, Dashboard, Identity, Image, OpenStack Networking, Object Storage, and Telemetry.

Note: Packstack is a command-line utility that rapidly deploys OpenStack; Packstack deployments are intended only for POC-type testing environments, and are not suitable for production. By default, the public network is only routable from the OpenStack host.

To evaluate OpenStack using a more complex network configuration, refer to Evaluating OpenStack: Simple Networking.

Deployment overview
Single-Node Deployment

The following procedure takes approximately 1.5 hours (includes time needed by Packstack to install the OpenStack software).

⁠1. Install

⁠1.1. Prerequisites

For an all-in-one deployment, you will need:

  • One Host Machine

    • One physical host machine running Red Hat Enterprise Linux 7.2
      This is the machine on which you will install and run all the OpenStack cloud components. The machine must meet the following hardware requirements.

    • Processor
      64-bit x86 processor with support for the Intel 64 or AMD64 CPU extensions, and the AMD-V or Intel VT hardware virtualization extensions enabled.

    • Memory
      Minimum of 2 GB of RAM.

    • Disk Space
      Minimum of 20 GB is recommended.

      Add more memory or disk space if you plan on adding additional instances or volumes after this deployment (for details, see v5 or v6 Single-Node Deployment Requirements).

  • Network Access
    Active network connection on the host machine for Red Hat Subscription Management registration.

  • SSH Configuration
    Ensure that PasswordAuthentication is enabled in the host machine's /etc/ssh/sshd_config file; otherwise, the Packstack installation will fail.

⁠1.2. Install OpenStack

The installation process includes the following steps:

  1. Ensure that you have enabled the correct software repositories using Red Hat Subscription Management.

  2. Ensure Network Manager is turned off.

  3. Run the Packstack deployment tool.

1.2.1. Enable OpenStack Repositories

  1. If you have not done so already, register for Red Hat Subscription Management (requires your subscription user name and password):

      subscription-manager register    
    
  2. Find the entitlement pool for Red Hat Enterprise Linux OpenStack Platform in the output of the following command:

      subscription-manager list --available --all
    
  3. Use the pool ID located in the previous step to attach the Red Hat Enterprise Linux OpenStack Platform entitlements:

      subscription-manager attach --pool=POOL_ID
    
  4. Disable all repositories:

      subscription-manager repos --disable=*  
    
  5. Enable the RHEL and OpenStack repositories:

    • For Red Hat Enterprise Linux OpenStack Platform 5, use:

         subscription-manager repos --enable=rhel-7-server-rpms           
         subscription-manager repos --enable=rhel-7-server-openstack-5.0-rpms  
         subscription-manager repos --enable=rhel-7-server-extras-rpms 
      
    • For Red Hat Enterprise Linux OpenStack Platform 6, use:

          subscription-manager repos --enable=rhel-7-server-rpms
          subscription-manager repos --enable=rhel-7-server-rh-common-rpms   
          subscription-manager repos --enable=rhel-7-server-openstack-6.0-rpms
          subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 7, use:

          subscription-manager repos --enable=rhel-7-server-rpms
          subscription-manager repos --enable=rhel-7-server-rh-common-rpms   
          subscription-manager repos --enable=rhel-7-server-openstack-7.0-rpms
          subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 8, use:

          subscription-manager repos --enable=rhel-7-server-rpms
          subscription-manager repos --enable=rhel-7-server-rh-common-rpms   
          subscription-manager repos --enable=rhel-7-server-openstack-8-rpms
          subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 9, use:

          subscription-manager repos --enable=rhel-7-server-rpms
          subscription-manager repos --enable=rhel-7-server-rh-common-rpms   
          subscription-manager repos --enable=rhel-7-server-openstack-9-rpms
          subscription-manager repos --enable=rhel-7-server-extras-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 10, use:

         subscription-manager repos --enable=rhel-7-server-rpms
         subscription-manager repos --enable=rhel-7-server-rh-common-rpms
         subscription-manager repos --enable=rhel-7-server-extras-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-10-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-10-devtools-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 11, use:

         subscription-manager repos --enable=rhel-7-server-rpms
         subscription-manager repos --enable=rhel-7-server-rh-common-rpms
         subscription-manager repos --enable=rhel-7-server-extras-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-11-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-11-devtools-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 12, use:

         subscription-manager repos --enable=rhel-7-server-rpms
         subscription-manager repos --enable=rhel-7-server-rh-common-rpms
         subscription-manager repos --enable=rhel-7-server-extras-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-12-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-12-devtools-rpms
      
    • For Red Hat Enterprise Linux OpenStack Platform 13, use:

         subscription-manager repos --enable=rhel-7-server-rpms
         subscription-manager repos --enable=rhel-7-server-rh-common-rpms
         subscription-manager repos --enable=rhel-7-server-extras-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-13-rpms
         subscription-manager repos --enable=rhel-7-server-openstack-13-devtools-rpms
      
  6. Install utility packages:

      yum install yum-utils  
    
  7. Update everything:

      yum update
    

1.2.2. Disable Network Manager

  1. OpenStack networking currently does not work on systems that have the Network Manager (NetworkManager) service enabled. To disable Network Manager, run:

      systemctl disable NetworkManager  
    
  2. Reboot the system:

    #  reboot  
    

1.2.3. Install and Run Packstack to Deploy OpenStack

  1. Install the Packstack package:

      yum install -y openstack-packstack  
    
  2. Run Packstack (requires the machine's root password):

      packstack --allinone  
    
  3. The all-in-one installation creates the 'admin' and 'demo' users. To view passwords for later use, run:

      grep OS_PASSWORD /root/keystonerc_admin    
      grep OS_PASSWORD /root/keystonerc_demo  
    

NOTE: If the packstack command fails or you run into other issues, please contact Red Hat Technical Support with a description of what happened, an sosreport, the full console output, and all packstack and answer files referenced in the console output.

⁠2. Start up

⁠2.1. Launch an Instance (Virtual Machine)

  1. In your browser, sign in to the OpenStack Dashboard with the link: http://HOST_NAME_OR_URL/dashboard/

    Log in to dashboard
    Login Screen

    Use the 'Demo' user name and password (see previous procedure).

  2. Launch the instance:

    1. Click the Compute > Instances menu item.

    2. Click the Launch Instance button. The Launch Instance dialog is
      displayed.

      Launch instance
      Launch Instance: Details Tab

    3. On the Details tab, keep the defaults and:

      • Enter an Instance Name to identify your instance.

      • Select the 'm1.tiny' Flavor for your instance.

      • Select the 'Boot from image' option from the Instance Boot Source drop-down list; a new field for Image Name is displayed.

      • Select the 'cirros (12.5 MB)' image from the drop-down list (this image is provided with your all-in-one installation).

    4. Click the Launch button.

  3. Create a storage volume, and attach it to the new instance:

    1. Click the Compute > Volumes menu item, and click the Create Volume button. The Create Volume dialog is displayed.
      Create Volume Dialog
      Create Volume Dialog

    2. Keep the defaults, and specify the following:

      • Enter a Volume Name to identify your new volume.

      • Enter the Size of your new volume in gigabytes (GB) (for example, '5'). Remember that your new volume will be allocated from the cinder-volumes volume group, so there must be enough free disk space in the group for your new volume to be allocated.

    3. Click the Create Volume button to create the new volume.

    4. Click the More button for the new volume, and select Edit Attachments.

    5. In the Attach To Instance field, select your new instance, and click Attach Volume.

⁠2.2. Log in to your New Instance

You can immediately log in to your new instance using the instance console:

  1. In the Dashboard, click on Compute > Instances.

  2. Click the instance's More button and select Console. The Instance Console is displayed.

    Log in to instance
    Log In Screen

  3. Log in using the CirrOS image's user name and password, which are displayed as a tip in the console (for example, 'cirros'/'cubswin:)').

Table of Contents

No

45 Comments

Is it possible to add another object storage node to this installation?

Hi Satish,
PoC installations using Packstack are only supported for an allinone installation (as shown in this article), or for an installation with a controller node and one or more compute nodes. For PoC environments, object storage should be placed on the controller node. To do environments with separate storage nodes, you'll need to use the RHEL-OSP installer:
Deploying OpenStack: Enterprise Environments (Red Hat Enterprise Linux OpenStack Platform Installer)

cheers, Summer

Hello Summer, How to configure one controller node and one compute node in Packstack installation ?

Hi Rajen, Instead of using 'packstack --allinone':

  1. Run: 'packstack --gen-answer-file=ps.txt' This produces the ps.txt configuration file using the current host's IP.

  2. Update ps.txt to set a different compute node: CONFIG_COMPUTE_HOSTS=NEW_IP Note: I also use this file to specify readable passwords :)

  3. Deploy OpenStack using the file: packstack --answer-file=ps.txt

Hope that helps, Summer

Hello Summer,

Thank you.One more quick doubt: How to uninstall packsack installation so I can reinstall.

Hi again, There is no automated uninstall process for OpenStack because it consists of multiple services, (possibly) running across multiple systems, so identifying and safely uninstalling is difficult.

Since packstack/PoC envs are usually on VMs, the only way to ensure everything is removed is to reinstall the base OS and install OpenStack from scratch. (There are various scripts floating around, but they inevitably miss something. Believe me, you want to start fresh.)

cheers, Summer

Thanks Summer.

I noticed that if you follow this guide, you can't install kvm package (No package kvm available). Will be necessary to use it or is included in the base system?.
Thanks in advance.

Eduardo, package name is qemu-kvm-rhev and is provided on the Red Hat OpenStack channel for your version and installed as dependency during installation.

Thanks Pablo Iranzo.

hi:

did anyone hit this error just like me?
"rhel-7-server-openstack-7.0-rpms is not a valid repository ID. "

[root@localhost ~]# subscription-manager repos --enable=rhel-7-server-rpms
Repository 'rhel-7-server-rpms' is enabled for this system.
[root@localhost ~]# subscription-manager repos --enable=rhel-7-server-rh-common-rpms
Repository 'rhel-7-server-rh-common-rpms' is enabled for this system.
[root@localhost ~]# subscription-manager repos --enable=rhel-7-server-openstack-7.0-rpms
Error: rhel-7-server-openstack-7.0-rpms is not a valid repository ID. Use --list option to see valid repositories.

Hello Yiming Chang,
It could be that automatically subscribing didn't include the OpenStack repo. To see all your subscriptions, use:
[root@localhost ~]# subscription-manager list --available --all

Select the subscription that includes OpenStack, and attach it using its Pool ID:
[root@localhost ~]# sudo subscription-manager attach --pool=POOL_ID

Then try enabling the repo again. Hope this helps,
Summer

got it.
Because my RHEL includes NO OpenStack. it's "Self-Supported Evaluation "
Is there any guide for me to DL an Evaluation version for Openstack (especially TripleO, undercloud)??

[root@undercloud roy]# subscription-manager list --available --all
+-------------------------------------------+
Available Subscriptions
+-------------------------------------------+
Subscription Name: 30 Day Red Hat Enterprise Linux Server Self-Supported Evaluation
Provides: Red Hat Container Images Beta
Red Hat Beta
Oracle Java (for RHEL Server)
Red Hat Enterprise Linux Atomic Host Beta
Red Hat Container Images
Red Hat Enterprise Linux Server
Red Hat Enterprise Linux Atomic Host
SKU: RH00065

Ah, that makes sense. Here's the evaluation link for OpenStack:
https://access.redhat.com/products/red-hat-enterprise-linux-openstack-platform/evaluation

However, using the director (tripleO) is more complicated (because it can do more) than the setup in this article, which uses Packstack. Go here for steps on installing OpenStack using the director: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/html-single/Director_Installation_and_Usage/index.html

cheers, Summer

Thank you Summer!
But it's weird that download page is very similar what I download the "Self-Supported Evaluation" RHEL.
Antway, I'll try this again and report if I can have the OpenStack subscriptions or not.

This "60 Day Self-Supported Red Hat Enterprise Linux OpenStack Platform Preview" has these repos.
But I still can not install an all-in-one undercloud node by the Red HAT Guide, just for ur reference
guide URL:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/7/html-single/Director_Installation_and_Usage/index.html#chap-Installing_the_Undercloud

If the documentation is wrong or misleading, could you please raise a bug? Use: https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20OpenStack&component=Documentation
Otherwise, if there is something that you don't understand, here is the support page for OpenStack.
cheers, Summer

sure I can.
But the Bug I meet is like this:"Bug 1252367 - Deployment with undercloud service certificate failed"
URL: https://bugzilla.redhat.com/show_bug.cgi?id=1252367
I am verifying this solution.....
Why Red HAT didn't fix the document error?
This bug is Reported: 2015-08-11 05:18
And now November 2015...........

Hi, looks like there are two issues in that bug. The first 1) "Unfortunately the documentation for this misses an important point, which is that the Common Name of the generated cert has to match the IP of the undercloud public vip." This has been fixed. In the doc, it says: "The openssl req command asks for several details for the certificate, including the Common Name. Set the Common Name to the undercloud_public_vip address of the provisioning interface. " The second that I'm seeing, 2)
"Also be aware that I'm having trouble with SELinux enforcing on an SSL undercloud. I had to set it to permissive before my undercloud install would complete." Looks like development is still working on that, but for testing, you could set it to 'permissive'. cheers, Summer

Hi:
now I can deploy undercloud node. Thanks Summer!
But when I try to follow "3.8. OBTAINING IMAGES FOR OVERCLOUD NODES" to check the directory "httpboot".
I can not find boot.ipxe and pxelinux.cfg.

Did I miss any step?

Hello,

Did you download all 3 images from https://access.redhat.com/downloads/content/191/ver=7/rhel---7/7/x86_64/product-downloads and uncompress them?

Then in ~images directory run command "openstack overcloud image upload" (This command will verify if images has been uploaded already so don't worry about the duplication)

run "openstack image list" to see if you have 5 images listed.

In my test environment I have below results in /httpboot

[stack@undercloud httpboot]$ ll
total 151608
-rw-r--r--. 1 ironic ironic 258 Nov 16 01:53 boot.ipxe
-rw-r--r--. 1 root root 243 Nov 9 06:40 discoverd.ipxe
-rwxr-xr-x. 1 root root 5027648 Nov 9 07:43 discovery.kernel
-rw-r--r--. 1 root root 150204679 Nov 9 07:43 discovery.ramdisk
drwxr-xr-x. 2 ironic ironic 6 Nov 17 20:58 pxelinux.cfg

Let's add a section for OSP 8:

For Red Hat Enterprise Linux OpenStack Platform 8, use:

# subscription-manager repos --enable=rhel-7-server-rpms

# subscription-manager repos --enable=rhel-7-server-rh-common-rpms

# subscription-manager repos --enable rhel-7-server-optional-rpms

# subscription-manager repos --enable rhel-7-server-extras-rpms

# subscription-manager repos --enable=rhel-7-server-openstack-8-rpms

Hi Andreas, doesn't look like your list matches that of the official release notes (see Deepti's comment), but agree that the article should be updated for RHOS8.

By default, the public network is only routable from the OpenStack host. I have installed osp9 but need to make this all in one installation routable from other host in the same network, any reference? I have followed https://access.redhat.com/articles/1146173 (for osp5) but still cannot access the vm through the floating ip.

For Red Hat OpenStack 10 pack-stack the following repos should be enabled: # subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-rh-common-rpms
# subscription-manager repos --enable=rhel-7-server-extras-rpms # subscription-manager repos --enable=rhel-7-server-openstack-10-rpms # subscription-manager repos --enable=rhel-7-server-openstack-10-devtools-rpms

Hello, Will external provider networking work after applying this procedure ? Or should we execute : https://www.rdoproject.org/networking/neutron-with-existing-external-network/ ? Regards, Cristian

The procedure shown in this article will create a "fake" external network 172.24.4.0/24 wich is only reachable from inside the packstack server. If you want to enable external network you can follow the procedure in the mentioned doc or even do some adjusments depending on your topology. For example if you have an additional NIC (eth1) for external network you wouldn't need to modify ifcfg files and adjust --os-neutron-ovs-bridge-interfaces parameter.

Hello, I can confirm external provider network worked with this installation : packstack --allinone --provision-demo=n --os-neutron-ovs-bridge-mappings=extnet:br-ex --os-neutron-ovs-bridge-interfaces=br-ex: --os-neutron-ml2-type-drivers=vxlan,flat.

Thanks for the help.

There is a page which states how to create external networking https://access.redhat.com/articles/3188582

Hello, I am getting the following error while deploying allinone. ERROR : Error appeared during Puppet run: 172.16.158.73_keystone.pp Error: Could not prefetch keystone_service provider 'openstack': Execution of '/usr/bin/openstack role list --quiet --format csv' returned 1: Bad Gateway (HTTP 502)

While checking some of the forums, this is caused by the http proxy we use. However, how can we deploy without using http proxy and a connection to the internet? I can't have a direct connection to internet.

Thanks Sanjesh

Sanjesh, apparently this can be fixed by configuring your http_proxy inside yum configuration, not exported as shell variable. inside /etc/yum.conf add the following lines

The proxy server - proxy server:port number

proxy=http://mproxy.mydomain.com:XXX

The account details for yum connections

proxy_username=yum-user proxy_password=qwerty Hope that helps.

Hi, For me it has worked exporting only the https_proxy as shell variable in .bashrc . Indeed exporting http_proxy caused the installation to fail, but exporting only https_proxy worked in my case.

This works !! I had tried doing this earlier however I was using "http_proxy=" as the variable in /etc/yum.conf My Bad !!! Silly mistakes when you are doing something in a hurry lol :) Thanks a lot Siggy for your reply cheers Sanjesh

Thanks for this document, I followed the procedures mentioned and have issues related to SSH keys, I have enabled the PasswordAuthentication yes in SSHD file and still the packstack is asking for root password and it fails. can anyone provide some inputs on this as I am not able to go further. ( I am trying to deploy OSP 10 packstack version)

I had all in one installation of OSP10 as described in this tutorial. Offlate it is unstable in the sense when I deleted an instance/network/subnet, Openstack stopped responding yesterday . But after some random hrs it came back again. Now it is not responding again. The only change I could imagine is that I increased the quota of a project in terms of CPUs and RAM . Don't know if that has a connection. Also what is the recommended way of restarting OSP 10 and rebooting the server

How to increase the disk-size in my all-in-one setup which is capped at 49 GB .

[root@localhost ~(keystone_admin)]# nova hypervisor-stats +----------------------+--------+ | Property | Value | +----------------------+--------+ | count | 1 | | current_workload | 0 | | disk_available_least | -1 | | free_disk_gb | 9 | | free_ram_mb | 243917 | | local_gb | 49 | | local_gb_used | 40 | | memory_mb | 260813 | | memory_mb_used | 16896 | | running_vms | 2 | | vcpus | 112 | | vcpus_used | 14 | +----------------------+--------+

How to install heat service in this all in one installation.

Hi, I am attempting POC installation for Openstack Platform 12 on RHEL server 7.4. While executing " packstack --allinone" the following error occured with network manager active..

192.168.1.7_controller.pp: [ ERROR ]
Applying Puppet manifests [ ERROR ]

ERROR : Error appeared during Puppet run: 192.168.1.7_controller.pp Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install openstack-glance' returned 1: Error: Package: python2-boto-2.45.0-3.el6.noarch (epel) You will find full trace in log /var/tmp/packstack/20180629-183300-51IYDP/manifests/192.168.1.7_controller.pp.log

After stopping network manager, the following error occured:

ERROR : Local IP address discovery failed. Please set a default gateway for your system.

Kindly help to resolve this.

Hello,

Packstack is only intended for use for OpenStack Proof of Concepts / Live demos and the installer itself unfortunately is not supported

You can refer to https://access.redhat.com/node/2477851 for more details.

For a fully supported version of the installer, you can use OpenStack Director.

In your case, the error message

ERROR : Error appeared during Puppet run: 192.168.1.7_controller.pp Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install openstack-glance' returned 1: Error: Package: python2-boto-2.45.0-3.el6.noarch (epel) You will find full trace in log /var/tmp/packstack/20180629-183300-51IYDP/manifests/192.168.1.7_controller.pp.log

makes me think that you enabled the epel repository and some packages in there likely conflict with Red Hat's RPMs.

Best regards,

Andreas

I have two node setup using packstack. Installation done successfully but can't able to create instance.

Error log on dashboard:::::::::: Message Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance b29d9575-ae65-438e-b553-05288daf8818. Code 500 Details File "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 581, in build_instances raise exception.MaxRetriesExceeded(reason=msg)

Hi Rajen, 'No hosts' might be a compute or a networking issue, so first take a look at those log files (/var/log/neutron, /var/log/compute). There's a good troubleshooting guide here: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html/logging_monitoring_and_troubleshooting_guide/ Also, support questions can be raised here(https://access.redhat.com/support/cases/#/case/new).

I'm not in support or even docs anymore, just wrote this guide a while back. :) cheers, Summer

Thanks! I have resolved this issue. One more question: why all OpenStack services are not running in container in Redhat version 13 installation using packstack ?

Rajen, Services are only containerized for RHOSP13 when installed using tripleo (which is the official installation method for RHSOP13). If you want to do containers you may need to look into using Director instead of packstack.

Oh okay. I have checked director way of installation and found it very detailed and step by step. Is there any document for quick deployment using director way of setup for POC type of environment with default configuration?

There's no simple way. If you have access to our official documentation i suggest following Director Installation and Usage for OSP13 (https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html-single/director_installation_and_usage/) it contains detailed information and you can effectively get a small simple cloud environment setup in an afternoon.