How to Install Single Node OpenStack on CentOS 7

  1. Hostname = openstack.example.com
  2. IP address = 192.168.1.40
  3. netmask = 255.255.255.0
  4. Gateway = 192.168.1.1
  5. DNS = 192.168.1.254

Prerequisites

  1. You must have Alibaba Cloud Elastic Compute Service (ECS) activated and verified your valid payment method. If you are a new user, you can get a free account in your Alibaba Cloud account. If you don’t know about how to setup your ECS instance, you can refer to this tutorial or quick-start guide.
  2. You should set up your server’s hostname.
  3. Access to VNC console in your Alibaba Cloud or SSH client installed in your PC.
egrep --color 'vmx|svm' /proc/cpuinfo | wc –l
2

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. Make sure your machine has the latest version of CentOS 7 on the machine.
  • yum -y update
  1. Next, issue the ss -tulpn command to list all running services.
  • Ss -tulpn
# systemctl stop postfix firewalld NetworkManager
# systemctl disable postfix firewalld NetworkManager
# systemctl mask NetworkManager
# yum remove postfix NetworkManager NetworkManager-libnm
# setenforce 0
# getenforce
# vi /etc/selinux/config
# hostnamectl set-hostname cloud.centos.lan
# yum install ntpdate

Install OpenStack in CentOS and RHEL

# yum install https://www.rdoproject.org/repos/rdo-release.rpm
# yum install -y centos-release-openstack-mitaka
# yum update –y
# yum install  openstack-packstack
# packstack --gen-answer-file='date +"%d.%m.%y"'.conf
# ls
vi 26.07.18.conf
CONFIG_NTP_SERVERS=0.ro.pool.ntp.org
CONFIG_PROVISION_DEMO=n
CONFIG_KEYSTONE_ADMIN_PW=your_password  for Admin user
CONFIG_HORIZON_SSL=y
CONFIG_MARIADB_PW=mypassword1234
# vi /etc/ssh/sshd_config
# systemctl restart sshd

Start Openstack Installation Using Packstack Answer File

# packstack --answer-file 13.04.16.conf
#Listen 443 https
# systemctl restart httpd.service
# packstack --answer-file /root/26.07.18.conf

Remotely Access OpenStack Dashboard

https://192.168.1.40/dashboard
https://192.168.1.40/nagios

Configuration

  1. Bare Metal service
  2. Block Storage service
  3. Compute service
  4. Dashboard
  5. Database service
  6. Data Processing service
  7. Identity service
  8. Image service
  9. Message service
  10. Networking service
  11. Object Storage service
  12. Orchestration service
  13. Shared File Systems service
  14. Telemetry service
[DEFAULT]
# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
debug = true
[database]
# The SQLAlchemy connection string used to connect to the
# database (string value)
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
# Enable the experimental use of database reconnect on
# connection lost (boolean value)
use_db_reconnect = false
# Sleep time in seconds for polling an ongoing async task
# (floating point value)
task_poll_interval = 0.5
# The port which the OpenStack Compute service listens on.
# (integer value)
compute_port = 8774
# Address to bind the server. Useful when selecting a particular network
# interface. (ip address value)
bind_host = 0.0.0.0
# Parameter for l2_l3 workflow setup. (dict value)
l2_l3_setup_params = data_ip_address:192.168.200.99, \
data_ip_mask:255.255.255.0,data_port:1,gateway:192.168.200.1,ha_port:2
# Modules of exceptions that are permitted to be recreated
# upon receiving exception data from an rpc call. (list value)
allowed_rpc_exception_modules = oslo.messaging.exceptions,nova.exception
# Driver or drivers to handle sending notifications. (multi valued)
notification_driver = nova.openstack.common.notifier.rpc_notifier
notification_driver = ceilometer.compute.nova_notifier
# Port to which the UDP socket is bound. (port value)
# Minimum value: 1
# Maximum value: 65535
udp_port = 4952
# Enables or disables publication of error events. (boolean value)
publish_errors = false
# The format for an instance that is passed with the log message.
# (string value)
instance_format = "[instance: %(uuid)s] "

Sections

Substitution

# The RabbitMQ broker address where a single node is used.
# (string value)
rabbit_host = controller
# The RabbitMQ broker port where a single node is used.
# (integer value)
rabbit_port = 5672
# RabbitMQ HA cluster host:port pairs. (list value)
rabbit_hosts = $rabbit_host:$rabbit_port
ldap_dns_password = 
$$
xkj432

Whitespace

ldap_dns_passsword='a password with spaces'

Define an Alternate Location for a Config File

Conclusion

--

--

--

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Loot: Driving NFT Paradigm With Collective Imagination

Flutter: Detect a new day

Make Taxi Dispatch app in 5 Simple Steps

#CodingTrends — Moving Gradient Background & Outlined text in CSS

Maximum in Subarrays of length K

Setting Up a VPN Connection between Alibaba Cloud and GCP Using VPN Gateway

Healthy Practices for Designing a Web API for Drupal 8

Crossing MS Graph API and Golang — part 1 — working with schema extensions

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alibaba Cloud

Alibaba Cloud

Follow me to keep abreast with the latest technology news, industry insights, and developer trends. Alibaba Cloud website:https://www.alibabacloud.com

More from Medium

How to deploy micro-services on kbernetes, hands on tutorial !

Docker: Basic understanding and terminology

LEARN TO DEPLOY POSTGRES HA ON KUBERNETES IN 60 MINUTES

Relational Database working in 5 minutes