Master OpenStack: Complete Guide to Components and Environment Setup
This article provides a comprehensive overview of OpenStack's architecture, details each core service with its role, and walks through step‑by‑step commands to configure a functional OpenStack Pike environment on CentOS, including networking, database, messaging, and storage components.
Whoever will ultimately shake the world must remain deeply silent for a long time; whoever will ultimately ignite lightning must drift like clouds for a long time. — Nietzsche
About OpenStack
OpenStack consists of a collection of services that work together to provide compute, identity, networking, image, block storage, object storage, telemetry, orchestration, and database capabilities for your cloud.
OpenStack Components and Functions
Dashboard (Horizon): Provides a web-based UI for creating instances and managing resources.
Network (Neutron): Manages virtual network resources for instances.
Compute (Nova): Offers a pool of compute resources via virtualization.
Identity Service (Keystone): Handles authentication, authorization, and service catalog.
Block Service (Cinder): Supplies persistent block storage to instances.
Object Service (Swift): Multi‑tenant object storage for accounts, containers, and objects.
Image Service (Glance): Enables discovery, registration, and retrieval of VM images.
Orchestration Service (Heat): Generates cloud applications by running OpenStack API calls based on templates.
Bare Metal Service (Ironic): Manages and provisions physical machines.
Database Service (Trove): Provides scalable, reliable cloud configuration for relational and NoSQL databases.
Metering & Data Collecting Service (Ceilometer): Offers monitoring, metering, and data collection.
Containers Service (Zun): Manages containers within OpenStack.
Clustering Service (Senlin): Creates and runs clusters of similar objects across OpenStack services.
Shared File Systems Service (Manila): Supplies file storage for VMs, supporting share management and snapshots.
Load‑balancer Service (Octavia): Open‑source, carrier‑grade load balancing solution for OpenStack.
OpenStack Architecture Diagram
OpenStack Logical Architecture
OpenStack Basic Environment Setup
1. Verify environment configuration, set up name resolution, and disable SELinux and the firewall on both controller and compute nodes.
2. Install and configure the time server: yum install chrony Configure chrony to allow other nodes to connect:
sed -i '7a server 173.168.16.224 iburst' /etc/chrony.conf sed -i '8a allow 173.168.16.0/24' /etc/chrony.confEnable and start the service:
systemctl enable chronyd systemctl start chronyd3. Install OpenStack packages on all nodes (using the Pike release):
yum install centos-release-openstack-pike yum upgradeNote: If the yum repository fails, follow the fourth and fifth commands shown in the accompanying image.
Install the OpenStack client and SELinux policy:
yum -y install python-openstackclient yum install openstack-selinux4. Install and configure MariaDB: yum install mariadb mariadb-server python2-PyMySQL Create /etc/my.cnf.d/openstack.cnf with the following content:
[mysqld]
bind-address= 173.168.16.224
default-storage-engine= innodb
innodb_file_per_table= on
max_connections= 4096
collation-server= utf8_general_ci
character-set-server= utf8Enable and start MariaDB:
systemctl enable mariadb systemctl start mariadbSecure the installation: mysql_secure_installation 5. Install the message queue: yum install rabbitmq-server Enable and start the service:
systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.serviceAdd the OpenStack user and set permissions:
rabbitmqctl add_user openstack openstack rabbitmqctl set_permissions openstack ".*" ".*" ".*"Restart the message queue service: systemctl restart rabbitmq-server 6. Install and start Memcached:
yum install memcached python-memcached systemctl enable memcached systemctl start memcached7. Install ETCD (distributed key‑value store): yum install etcd Edit /etc/etcd/etcd.conf and set the following parameters (example values shown):
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS=http://173.168.16.224:2380
ETCD_LISTEN_CLIENT_URLS=http://173.168.16.224:2379
ETCD_NAME="controller"
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://173.168.16.224:2380
ETCD_ADVERTISE_CLIENT_URLS=http://173.168.16.224:2379
ETCD_INITIAL_CLUSTER="controller=http://173.168.16.224:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"Enable and start ETCD:
systemctl enable etcd systemctl start etcdAt this point, the basic OpenStack environment setup is complete. Reply with "OpenStack" to the public account to receive the full Pike installation documentation.
Reference: OpenStack Installation Guide – Environment
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Ops Development Stories
Maintained by a like‑minded team, covering both operations and development. Topics span Linux ops, DevOps toolchain, Kubernetes containerization, monitoring, log collection, network security, and Python or Go development. Team members: Qiao Ke, wanger, Dong Ge, Su Xin, Hua Zai, Zheng Ge, Teacher Xia.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
