OpenStack Deployment on CentOS

Cloud Computing Fundamentals

Cloud computing delivers on-demand resources via network access with pay-as-you-go pricing. Deplyoment models include public, private, and hybrid clouds.

Pre-Installation Requirements

For production environments:

  • Synchronize system clocks across all nodes
  • Confgiure hostnames in advance
  • Disable firewalls

Repository Configuration

yum install centos-release-openstack-newton -y
yum install python-openstackclient openstack-selinux -y

Controller Node Setup

Database Installation (MariaDB)

yum install mariadb mariadb-server python2-PyMySQL -y

Configure /etc/my.cnf.d/openstack.cnf:

[mysqld]
bind-address = 192.168.1.102
default-storage-engine = innodb
innodb_file_per_table
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation

Message Queue (RabbitMQ)

yum install rabbitmq-server -y
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rabbitmqctl add_user openstack openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
rabbitmq-plugins enable rabbitmq_management

Core Services Installation

yum install openstack-keystone httpd mod_wsgi \
openstack-glance \
openstack-nova-api openstack-nova-conductor \
openstack-nova-console openstack-nova-novncproxy \
openstack-nova-scheduler \
openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables -y

Database Configuration

CREATE DATABASE keystone;
CREATE DATABASE glance;
CREATE DATABASE nova;
CREATE DATABASE neutron;
CREATE DATABASE cinder;

GRANT ALL ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone_pass';
GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone_pass';
GRANT ALL ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance_pass';
GRANT ALL ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance_pass';
GRANT ALL ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova_pass';
GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova_pass';
GRANT ALL ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron_pass';
GRANT ALL ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron_pass';
GRANT ALL ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder_pass';
GRANT ALL ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder_pass';

Keystone Configuration

vim /etc/keystone/keystone.conf

Update database connection:

[database]
connection = mysql+pymysql://keystone:keystone_pass@192.168.1.102/keystone

Tags: openstack centos MariaDB RabbitMQ Keystone

Posted on Wed, 02 Sep 2026 16:51:44 +0000 by Nukeum66