How to Install single node OpenStack on CentOS 7.6

Post Date: May 15, 2019
Last Updated:
October 22, 2026

Introduction

Cloud computing has become an essential part of modern IT infrastructure, allowing organizations to provision computing resources on demand without managing every physical server individually. OpenStack is one of the widely used open-source platforms for building and managing private and public cloud environments.

OpenStack provides Infrastructure as a Service (IaaS) by managing compute, storage, and networking resources through a collection of interconnected services. It enables administrators to create virtual machines, manage virtual networks, allocate storage, control user access, and automate cloud infrastructure operations.

The OpenStack platform consists of several integrated projects, including Compute, Image Service, Block Storage, Identity, Networking, Object Storage, Telemetry, Orchestration, and Database-related services.

OpenStack can also serve as the infrastructure foundation for database services, big-data platforms such as Hadoop, and container-based workloads. Additional components and integrations are required to provide these capabilities.

Administrators can manage OpenStack through the web-based Horizon dashboard, command-line clients, APIs, and automation tools.

In this tutorial, we will explore OpenStack architecture, understand how its services communicate, and examine how to deploy an all-in-one OpenStack environment.

Important compatibility note: The original procedure uses CentOS 7.6 and OpenStack Stein. Both are legacy releases, and CentOS Linux 7 reached end of life on June 30, 2024. The Packstack commands below are therefore retained as a historical lab procedure, not as a guaranteed working installation for a new server. For new deployments, use a supported operating system and follow the current installation documentation for the selected OpenStack release. CentOS lifecycle reference.

What Is OpenStack?

OpenStack is a collection of open-source software services used to build and operate cloud infrastructure. Instead of managing every server, disk, and network device manually, administrators can use OpenStack APIs and services to allocate and control infrastructure resources.

For example, an organization can use OpenStack to:

  • Create and manage virtual machines.
  • Upload and maintain operating system images.
  • Create private networks and assign IP addresses.
  • Attach persistent storage to virtual machines.
  • Manage users, projects, and access permissions.
  • Monitor resource usage.
  • Automate infrastructure provisioning.

OpenStack is modular, meaning administrators can deploy the services required for their environment and expand the deployment as their requirements grow.

OpenStack Architecture and Core Components

OpenStack consists of several services, each responsible for a specific infrastructure function.

1.Core OpenStack services

ComponentService namePurpose
ComputeNovaCreates and manages virtual machine instances.
Image ServiceGlanceStores and manages virtual machine images.
Block StorageCinderProvides persistent block storage volumes.
IdentityKeystoneHandles authentication, authorization, and service access.
NetworkingNeutronManages virtual networks, routers, IP addresses, and connectivity.
Object StorageSwiftStores data as objects in a distributed storage system.
DashboardHorizonProvides a web interface for managing cloud resources.
PlacementPlacementTracks resource inventories and allocations used for scheduling.
TelemetryTelemetry servicesCollects usage and monitoring data, depending on the deployment.
OrchestrationHeatAutomates infrastructure deployment using templates.
Database serviceTroveProvides database-as-a-service capabilities when deployed and configured.

Not every deployment includes all these services. The selected release, architecture, and deployment method determine which components are installed.

2. How the components work together

Consider a user who wants to create a Linux virtual machine through the Horizon dashboard.

  1. The user signs in through Keystone authentication.
  2. Horizon sends the request to the appropriate OpenStack API.
  3. Nova processes the instance creation request.
  4. Glance provides the requested operating system image.
  5. Placement helps Nova identify a suitable compute resource.
  6. Neutron configures the virtual network and associated connectivity.
  7. Cinder can provide a persistent volume if one is requested.
  8. Nova coordinates the creation and startup of the virtual machine.
  9. The dashboard displays the instance status and connection information.

The exact sequence varies according to the instance configuration, storage type, networking setup, and OpenStack release.

OpenStack Working Flow

The following diagram illustrates the simplified workflow for creating a virtual machine.

OpenStack virtual machine creation workflow showing Horizon, Keystone, Nova, Glance, Placement, Neutron, and Cinder services

Working flow explained

Step 1: User authentication

The user accesses the dashboard or command-line interface and authenticates through Keystone.

Step 2: Resource request

The user specifies the instance name, image, flavor, network, and optional storage.

Step 3: Scheduling

Nova and Placement coordinate resource selection based on available compute capacity and scheduling constraints.

Step 4: Image and compute provisioning

The selected image is retrieved through Glance, and Nova coordinates the creation of the virtual machine on a suitable compute host.

Step 5: Networking and storage

Neutron provides the requested network connectivity. If persistent block storage is required, Cinder provisions and attaches the volume.

Step 6: Instance becomes available

After the required resources are configured and the virtual machine starts successfully, the user can access it through the configured network.

Deployment Models

OpenStack can be deployed in several configurations.

All-in-one deployment

An all-in-one deployment runs the required OpenStack control services and compute functionality on a single physical or virtual server.

It is useful for:

  • Learning OpenStack administration.
  • Testing APIs and command-line tools.
  • Demonstrating cloud infrastructure.
  • Development and proof-of-concept environments.

Its primary limitation is that the server becomes a single point of failure and has limited capacity.

Multi-node deployment

A multi-node deployment separates control-plane services, compute hosts, and storage or networking functions across multiple servers.

It is more suitable for larger environments requiring scalability, resource isolation, and improved availability.

Production deployment

Production OpenStack environments require additional planning for redundancy, storage durability, network isolation, monitoring, backups, security, upgrades, and disaster recovery. An all-in-one lab is not a substitute for a production architecture.

Prerequisites for an All-in-One Installation

The following requirements describe the historical CentOS 7 and Packstack lab setup.

RequirementDescription
Operating systemCentOS Linux 7.6, for the historical procedure only
CPU64-bit processor with Intel VT-x or AMD-V support
MemoryMinimum 16 GB RAM for a small lab; more is recommended
StorageSufficient disk space for images, instances, logs, and services
AccessSSH access and administrative privileges
NetworkStable IP address and correctly configured host networking
HostnameA unique, resolvable hostname
VirtualizationHardware virtualization enabled in the BIOS/UEFI
ConnectivityRepository access during installation

For a new deployment, select a supported operating system and verify the CPU, memory, storage, and network requirements against the documentation for your chosen OpenStack release.

1. Verify hardware virtualisation

Run the following command on the Linux server:

egrep -c '(vmx|svm)' /proc/cpuinfo

A nonzero result indicates that the CPU flags for Intel VT-x (vmx) or AMD-V (svm) are visible to the operating system.

For example:

16

This example means the flags were found in 16 processor entries; it does not necessarily mean there are 16 physical CPU cores.

If the result is zero, check the BIOS/UEFI virtualization settings. If the server is itself a virtual machine, verify that nested virtualization is supported and enabled.

2. Verify system resources

hostnamectl
free -h
df -h
lscpu
ip -br addr

These commands display the hostname, available memory, disk usage, CPU information, and network interface addresses.

Prepare the Server

The following commands apply to the legacy CentOS 7 environment. Do not copy them blindly to a modern server.

1. Update the system

sudo yum -y update

On an end-of-life system, repositories may no longer be available through their original locations. A successful package update does not restore vendor security support.

2. Configure the hostname

Set a suitable hostname for the lab:

sudo hostnamectl set-hostname openstack-node
hostnamectl

Ensure that the hostname resolves correctly using DNS or the local host configuration.

3. Review network configuration

Before changing network services, identify the active interfaces and management IP address:

ip -br addr
ip route

Record the existing network configuration and ensure that you have console access in case a remote network change disconnects SSH.

Important: Do not disable NetworkManager or the firewall indiscriminately. NetworkManager may be responsible for the server’s network connectivity, while the firewall provides an important security boundary. Follow the selected deployment guide and configure only the necessary network rules.

4. Review SELinux configuration

Check the current SELinux state:

getenforce
sestatus

Avoid permanently disabling SELinux as a default installation step. For a modern deployment, follow the security requirements of the chosen OpenStack distribution and deployment method.

5. Review existing services

The original guide suggests removing Postfix and NetworkManager. Neither action should be considered universally necessary.

If Postfix is not required, inspect its status before deciding whether to stop or remove it:

systemctl status postfix

Do not remove a network-management service until you have confirmed how the host’s network interfaces are configured.

Historical Installation Procedure: CentOS 7 and OpenStack Stein

Legacy lab procedure — not recommended for a new installation.

OpenStack Stein was released in 2019. Its associated CentOS 7 repository and Packstack installation workflow may no longer be available or compatible with current repositories and package dependencies.

The following commands document the original workflow for historical reference.

Step 1: Install the OpenStack Stein repository package

sudo yum install -y centos-release-openstack-stein

The command attempts to install the repository configuration package for the Stein release.

Step 2: Enable the repository

sudo yum-config-manager --enable openstack-stein

Step 3: Update available packages

sudo yum update -y

Step 4: Install Packstack

sudo yum install -y openstack-packstack

Packstack was used to automate the installation of OpenStack services on RPM-based systems. Availability and compatibility depend on the historical repository and package versions.

Step 5: Run the all-in-one installer

sudo packstack --allinone

Packstack attempts to install and configure the selected OpenStack services on a single node. Depending on the release and configuration, the process may prompt for credentials and network settings.

On completion, Packstack may generate an answer file containing deployment settings and a credentials file such as keystonerc_admin.

If the installation fails because the Stein repository is unavailable or dependencies cannot be resolved, do not assume that repeatedly running the same commands will fix the problem. Use a supported operating system and deployment procedure instead.

For a new installation, use the current official deployment documentation rather than the legacy Packstack workflow.

One option is Kolla-Ansible, which deploys OpenStack services using containers and Ansible. Its supported operating systems and configuration requirements vary by release. Consult its current support matrix and installation documentation.

A second option is OpenStack-Ansible, which uses Ansible playbooks to deploy and configure OpenStack services. See the OpenStack-Ansible deployment guide.

Before selecting a deployment method:

  1. Choose the OpenStack release.
  2. Confirm that the host operating system is supported.
  3. Review the documented minimum hardware requirements.
  4. Plan the management and provider networks.
  5. Configure name resolution, time synchronization, and administrative access.
  6. Follow the complete installation guide for that release.
  7. Validate the deployment before creating workloads.

Do not combine package commands from different OpenStack releases or distributions unless the relevant documentation explicitly supports that combination.

Access the OpenStack Dashboard

After a successful installation that includes Horizon, the dashboard is normally accessed through a URL configured by the deployment.

For example:

http://<OPENSTACK_NODE_IP>/dashboard

Replace <OPENSTACK_NODE_IP> with the server’s actual IP address. The URL path, protocol, and port can vary according to the deployment configuration.

The historical Packstack deployment commonly provided an administrator account named admin. Its credentials may be recorded in a file such as:

/root/keystonerc_admin

On the legacy deployment, inspect the file securely:

sudo less /root/keystonerc_admin

Treat this file as sensitive because it may contain administrative credentials or environment variables. Do not publish its contents, commit them to source control, or include passwords in screenshots.

For a current deployment, use the authentication method and dashboard URL provided by its deployment configuration.

Verify the OpenStack Services

After deployment, verify the environment before attempting to launch instances.

1. Load administrator credentials

For a deployment that provides an OpenStack RC file, load the appropriate file into the current shell. For example, on the legacy Packstack installation:

source /root/keystonerc_admin

The file may configure environment variables required by the OpenStack CLI.

2. Check authentication

openstack token issue

A successful response indicates that the CLI can authenticate and obtain a token.

3. List available services

openstack service list

This command displays the services registered in Keystone.

4. Check compute resources

openstack compute service list
openstack hypervisor list

These commands help verify that the compute services and hypervisors are registered and visible to the CLI.

5. Check images, networks, and flavors

openstack image list
openstack network list
openstack flavor list

These commands list the resources needed for instance creation. An empty list does not automatically indicate a failed installation; the resources may not yet have been created.

6. Check block storage

openstack volume service list
openstack volume list

Block Storage commands require the relevant service to be installed and configured.

Note: CLI availability, command syntax, service names, and returned fields can differ across OpenStack releases. Consult the documentation for the installed release when a command is not recognized.

Create Your First Virtual Machine

Once authentication and the required services are working, create a small test instance.

The following commands illustrate the general process. They assume that a usable image, flavor, and network already exist.

Step 1: Select an image

openstack image list

Record the ID or name of an available image.

Step 2: Select a flavor

openstack flavor list

Choose a flavor that fits the image and available host resources.

Step 3: Select a network

openstack network list

Choose a network that is configured for the intended instance connectivity.

Step 4: Launch an instance

Replace the example values with actual resources from your deployment:

openstack server create \
  --image <IMAGE_NAME_OR_ID> \
  --flavor <FLAVOR_NAME_OR_ID> \
  --network <NETWORK_NAME_OR_ID> \
  test-instance

Step 5: Verify instance status

openstack server list
openstack server show test-instance

Wait for the instance to reach the ACTIVE state. If it remains in ERROR, inspect the instance details and relevant Nova and Neutron logs.

An ACTIVE instance does not automatically guarantee external connectivity. Security groups, IP assignment, routing, provider network configuration, and guest operating-system settings must also be correct.

Troubleshooting Common Issues

Issue 1: OpenStack repository cannot be found

Possible causes:

  • The historical repository has been retired.
  • The operating system has reached end of life.
  • Repository configuration or network connectivity is incorrect.

Recommended action: Verify the OS release, repository configuration, and network connectivity. For a new deployment, switch to a supported operating system and a documented release-specific installation procedure.

Issue 2: Hardware virtualization is unavailable

Possible causes:

  • Virtualization is disabled in BIOS/UEFI.
  • Nested virtualization is not enabled by the hypervisor.
  • The CPU does not expose the required flags.

Recommended action: Check the BIOS/UEFI settings or the parent hypervisor configuration, then repeat the virtualization checks.

Issue 3: Horizon dashboard is inaccessible

Possible causes:

  • The dashboard service is not running.
  • The web server is not listening on the expected port.
  • DNS, routing, or firewall configuration is incorrect.

Recommended action: Check the service status, web-server logs, network configuration, and deployment-specific dashboard URL.

Issue 4: Authentication fails

Possible causes:

  • Incorrect credentials.
  • An incorrect OpenStack RC file.
  • An incorrect Keystone endpoint.
  • A service configuration or time synchronization issue.

Recommended action: Verify the credential source and endpoint configuration, then test authentication using openstack token issue.

Issue 5: Virtual machine creation fails

Possible causes:

  • Insufficient compute resources.
  • An unavailable or invalid image.
  • Incorrect network configuration.
  • Compute service or hypervisor problems.

Recommended action: Review openstack server show <INSTANCE_NAME>, compute service status, available resources, and relevant service logs.

Issue 6: Virtual machine starts but cannot reach the internet

Possible causes:

  • The instance has no appropriate route.
  • The network lacks an external gateway.
  • Security groups block traffic.
  • Provider network or NAT configuration is incomplete.

Recommended action: Verify the instance IP, router and gateway configuration, security group rules, and upstream network connectivity. Avoid opening all ports to the internet as a troubleshooting shortcut.

OpenStack Security Best Practices

A cloud infrastructure platform controls sensitive compute, storage, and networking resources. Security must be considered during installation and throughout the platform’s lifecycle.

Follow these practices:

  • Deploy on a supported operating system and OpenStack release.
  • Keep packages and services updated according to the vendor’s maintenance guidance.
  • Restrict dashboard and API access to authorized networks.
  • Use HTTPS and appropriate TLS certificates.
  • Apply least-privilege permissions to users and projects.
  • Use secure passwords and rotate credentials when required.
  • Protect administrator credential files.
  • Configure firewall rules deliberately instead of disabling network protection.
  • Separate management traffic from tenant and provider traffic where appropriate.
  • Back up configuration data and critical cloud resources.
  • Monitor authentication events, service health, and system logs.
  • Test recovery procedures before relying on the environment for important workloads.

For production deployments, design for high availability, resilient storage, capacity management, and disaster recovery.

Conclusion

OpenStack provides a flexible foundation for building and managing cloud infrastructure. Its modular architecture brings together compute, networking, storage, identity, and other services to automate the provisioning and management of virtualized resources.

In this tutorial, we covered the core OpenStack components, the virtual machine creation workflow, all-in-one deployment concepts, the historical CentOS 7 and Packstack installation procedure, basic verification commands, instance creation, troubleshooting, and security best practices.

For beginners, an all-in-one lab is a useful way to understand OpenStack APIs, the Horizon dashboard, and the relationship between its core services. For new environments, however, a supported operating system and a current, documented deployment method should be used instead of the obsolete CentOS 7 and Stein combination.

With proper planning and configuration, OpenStack can serve as a foundation for scalable private cloud infrastructure, automated resource provisioning, and a wide range of cloud-based workloads.

Frequently Asked Questions (FAQs)

1: What is OpenStack, and why is it used?

OpenStack is an open-source cloud infrastructure platform that provides services for managing virtual machines, networking, images, and storage. Organizations use it to build private or public clouds and automate infrastructure provisioning through APIs, a dashboard, and command-line tools.

2: Can OpenStack be installed on a single server?

Yes. An all-in-one deployment can run the required control and compute services on a single server. This configuration is suitable for learning, development, and testing. Production environments generally need a more resilient architecture.

3: Is CentOS 7 with OpenStack Stein suitable for a new deployment?

No. CentOS Linux 7 reached end of life in June 2024, and OpenStack Stein is a legacy release. This combination should be treated as a historical lab environment. For new deployments, select a supported operating system and follow the current documentation for a compatible OpenStack release.

Failed to connect to server VNC console in Openstack

How to install openstack-utils package On CentOS 7.6

Talk to Our Technology Experts

Running or migrating an OpenStack cloud? Our team can help with OpenStack deployment, service monitoring and troubleshooting, and ongoing cloud infrastructure support.

Connect with our technology experts.

admin

Our team has expertise across software and web development, WordPress, e-commerce, mobile applications, UI/UX, cloud and infrastructure, DevOps, CI/CD, API integration, security, testing, automation, and technical support. The team also works with AI-based software solutions, LLMs, AI workflows, AI agents, and intelligent application development to help businesses automate processes and build smarter digital solutions. We focus on developing, deploying, maintaining, and optimising secure, scalable, and reliable technology solutions while helping businesses adopt modern technologies and drive digital transformation.

Leave a Comment

Scroll to Top