0% found this document useful (0 votes)
355 views72 pages

OpenStack Demo Installation Guide

This document provides an installation checklist for OpenStack controller node setup. It includes details on network configuration, operating system installation and configuration, installation of basic OpenStack packages and dependencies like MariaDB, RabbitMQ, Memcached and Etcd. The checklist covers configuring security, enabling network interfaces, installing Linux utilities and setting up NTP for time synchronization.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODS, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
355 views72 pages

OpenStack Demo Installation Guide

This document provides an installation checklist for OpenStack controller node setup. It includes details on network configuration, operating system installation and configuration, installation of basic OpenStack packages and dependencies like MariaDB, RabbitMQ, Memcached and Etcd. The checklist covers configuring security, enabling network interfaces, installing Linux utilities and setting up NTP for time synchronization.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODS, PDF, TXT or read online on Scribd

OpenStack Installation Checklist v

Network Environment

Network Type CIDR Gateway Default Interface


Management Network [Link]/24 [Link] eth0
Provider Network [Link]/24 203.0.113.eth1

Passwords Host Addresses

Description Parameter Value Name


SQL Database 'root' PassworMySQL_root openstack controller
'admin' User Password ADMIN_PASS openstack compute1
Database password for CindCINDER_DBPASS openstack compute2
'cinder' User Password CINDER_PASS openstack block1
Database password for Hori DASH_DBPASS openstack
'demo' User Password DEMO_PASS openstack Host SSH Users
Database password for GlanGLANCE_DBPASSopenstack
'glance' User Password GLANCE_PASS openstack Host
Database password for KeysKEYSTONE_DBPAopenstack controller
Secret for metadata server METADATA_SECRopenstack compute1
Database Password for NeutNEUTRON_DBPASopenstack compute2
'neutron' User Password NEUTRON_PASS openstack block1
Database Password for NovaNOVA_DBPASS openstack
'nova' User Password NOVA_PASS openstack
'placement' User Password PLACEMENT_PASopenstack
RabbitMQ Password for 'openstack
RABBIT_PASS openstack

Firewall and Default Ports

Description Service Port sudo ufw status verbose


Horizon Dashboard unencry HTTP 80 sudo ufw disable
SSL Enabled Services HTTPS 443
Block Storage iSCSI target iSCSI Target 3260
Common SQL Database MariaDB 3306
Message Broker (AMPQ traffRabbitMQ 5672
Block Storage Endpoints Cinder 8776
Compute Endpoints Nova 8774
Compute API Nova 8775
Compute API Nova 8773
Compute VM consoles Nova 5900-5999
Compute VNC Proxy (browseNova 6080
Compute VNC Proxy (clients)Nova 6081
Compute HTML5 console Nova 6082
Identity Service admin endpKeystone 35357
Identity Service public endp Keystone 5000
Image Service API Glance 9292
Image Service Registry Glance 9191
Networking Service Neutron 9696
ation Checklist vGeneral Parameters
Host Systems Operating System

Name Ubuntu Server 16.04 LTS


Download Lin[Link]

ost Addresses

IPv4 AddresNetmask DNS Nameserver


[Link] 255.255.2558.8.8.8
[Link] 255.255.2558.8.8.8
[Link] 255.255.2558.8.8.8
[Link] 255.255.2558.8.8.8

ost SSH Users

Username Password
kris openstack
kris openstack
kris openstack
kris openstack

do ufw status verbose


do ufw disable
Controller Installation Checklist
Set-up 1 - VM

HW Config

Virtual RecommendActual
VCPU (core1-2+ 2
RAM 4+ GB 6
Primary Dis10+ GB 20

VirtualBox Host-Only Network Ethernet Adapter #2


Configure Adapter ManIPv4 Addr10.0.0.1 IPv4 Net Ma255.255.255.0 DHCP Disabled

NAT Network ProviderNetwork1


CIDR [Link]/24 DHCP Disabled

NAT Network NatNetwork1


CIDR [Link]/24 DHCP Enabled

Network Interfaces

Interface Network OS NameConfig Type IP Addr Netmask Gateway


Adapter 1 Managemeneth0 static [Link] [Link] [Link]
Adapter 2 Provider eth1 manual --- --- ---
Adapter 3 Internet wlan0 NetworkManaDHCP DHCP DHCP

Operating System

Name Ubuntu Server 16.04 LTS


Link [Link]

Operating System Installation Options


Recommended Actual
1. Language English English
2. Hit F4 to choose 'Modes' Install a Minimal Virtual Install a Minimal Virtual Machine
3. Press Enter to 'Install Ubuntu Server'
4. Choose Language English-English English-English
5. Select your location United States United States
6. Detect keyboard layout? No No
7. Keyboard layout English (US) English (US)
8. Primary network interface enp0s3 enp0s3
9. Network configration methodConfigure network manuaConfigure Network manualy
10. IP address [Link] [Link]
11. Netmask [Link] [Link]
12. Gateway <nothing> <nothing>
13. Name server address [Link] [Link]
14. Hostname controller controller
15. Domain name
16. Full name of the new user kris
17. Username for your account kris
18. Choose password for the new user openstack
19. Encrypt your home directory? no
20. Select your time zone Eastern
21. Partitioning method use entire disk and set up use entire disk and set up LVM
22. HTTP Proxy none
23. How to manage upgrades? No automatic updates No automatic updates
24. Choose software to install OpenSSH Server OpenSSH Server
25. Install GRUB? Yes Yes

Configure Security, Networking, Install Linux Utilities


Configure 'sudo' accesskris
sudo su
visudo
add following line at the bottom of the file:
kris ALL=(ALL) NOPASSWD:ALL
save, exit and run sudo su again to test

Edit /etc/hosts
Remove [Link] controller, if present
Make sure following lines are present:
[Link] controller
[Link] compute1
[Link] block1

Edit /etc/default/grub to include:


GRUB_CMDLINE_LINUX="[Link]=0 biosdevname=0"
Run command:
update-grub
reboot

Enable Network Interfaces


sudo su
Edit /etc/network/interfaces
Make sure following Interfaces definitions are present:

auto eth0
iface eth0 inet static
address [Link]
netmask [Link]
dns-nameservers [Link]
auto eth1
iface eth1 inet manual
up ip link set dev eth1 up
down ip link set dev eth1 down
auto eth2
iface eth2 inet dhcp

Reboot the system


Run 'ifconfig' as superuser to verify settings.
Verify connectivity to other hosts, once configured
ping -c 3 [Link]
ping -c 3 compute1
ping -c 3 block1

Install basic Linux Utilities


Run following commands:
sudo su
apt update
apt install vim glances curl
apt upgrade -y

Install and Configure Network Time Protocol


Install and Configure Components

sudo su
apt install chrony

Edit /etc/chrony/[Link]:
set server to your Orgaznization's NTP Server, if you have one
set allow to [Link]/24
save and quit
Restart chrony service:
service chrony restart

Verify:
chronyc sources
Install Basic OpenStack Packages
sudo su
apt install software-properties-common
add-apt-repository cloud-archive:pike
apt update && apt dist-upgrade
reboot
apt install python-openstackclient

SQL Database - MariaDB


Install and Configure Packages
sudo su
apt install mariadb-server python-pymysql

Create and edit MariaDB configuration file: /etc/mysql/[Link].d/[Link]


Put following 7 lines in the file:
[mysqld]
bind-address = [Link]
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

Restart MariaDB service:


service mysql restart

Secure the Database Service:


mysql_secure_installation

Message Queue - RabbitMQ


Install and Configure Packages:
sudo su
apt install rabbitmq-server

Add openstack user:


rabbitmqctl add_user openstack openstack

Configure permissions for openstack user:


rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Memcached
Install and Configure Packages:
sudo su
apt install memcached python-memcache

Edit /etc/[Link] to define IP address:


-l [Link]

Restart Memcached Service:


service memcached restart

Etcd
Create etcd User and directories:
sudo su
groupadd --system etcd
useradd --home-dir "/var/lib/etcd" --system --shell /bin/false -g etcd etcd
mkdir -p /etc/etcd
chown etcd:etcd /etc/etcd
mkdir -p /var/lib/etcd
chown etcd:etcd /var/lib/etcd

Download and install etcd tarball


ETCD_VER=v3.2.7
rm -rf /tmp/etcd && mkdir -p /tmp/etcd
curl -L [Link]
tar xzvf /tmp/etcd-${ETCD_VER}-[Link] -C /tmp/etcd --strip-components=1
cp /tmp/etcd/etcd /usr/bin/etcd
cp /tmp/etcd/etcdctl /usr/bin/etcdctl

Create and edit the /etc/etcd/[Link] file


vim /etc/etcd/[Link]
and put following 9 lines in it:
name: controller
data-dir: /var/lib/etcd
initial-cluster-state: 'new'
initial-cluster-token: 'etcd-cluster-01'
initial-cluster: controller=[Link]
initial-advertise-peer-urls: [Link]
advertise-client-urls: [Link]
listen-peer-urls: [Link]
listen-client-urls: [Link]

Create and edit /lib/systemd/system/[Link] file


vim /lib/systemd/system/[Link]
and put following 13 lines in it:
[Unit]
After=[Link]
Description=etcd - highly-available key value store

[Service]
LimitNOFILE=65536
Restart=on-failure
Type=notify
ExecStart=/usr/bin/etcd --config-file /etc/etcd/[Link]
User=etcd

[Install]
WantedBy=[Link]

Enable and start etcd Service:


systemctl enable etcd
systemctl start etcd

Install Keystone - Identity Management


Configure SQL Database for Keystone:
Run these commands:
sudo su
mysql
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'openstack
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'openstack';
EXIT;

Install and Configure Packages:


Run these commands:
sudo su
# Install required packages + crudini to edit .conf files
apt install keystone apache2 libapache2-mod-wsgi crudini -y
# Configure Keystone database access, as set above
crudini --set /etc/keystone/[Link] database connection mysql+pymysql://keystone:openstack@
# Set Fernet Token Provider
crudini --set /etc/keystone/[Link] token provider fernet
# Populate Identity Service Database
su -s /bin/sh -c "keystone-manage db_sync" keystone
# Initialize Fernet Repositories
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
# Bootstrap Identity Service
keystone-manage bootstrap --bootstrap-password openstack --bootstrap-admin-url [Link]

Configure Apache Server:


Edit /etc/apache2/[Link] and add following line:
ServerName controller

Restart the apache2 service


service apache2 restart

Configure OpenStack Client Environment Scripts


Create admin-openrc Script (in Primary User's Home Directory, for example)
Insert following lines:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=openstack
export OS_AUTH_URL=[Link]
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

Create demo-openrc Script


Insert following lines:
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=openstack
export OS_AUTH_URL=[Link]
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

Verify Keystone operation


Run following commands:

. admin-openrc
openstack token issue

Create Projects, Users and Roles


Run following commands:

. admin-openrc
# Create a service Project
openstack project create --domain default --description "Service Project" service
# Create a demo Project
openstack project create --domain default --description "Demo Project" demo
# Create a demo User
openstack user create --domain default --password openstack demo
# Create a user Role
openstack role create user
# Add the user role to User demo in Project demo
openstack role add --project demo --user demo user

Verify User demo


Run following commands:
. demo-openrc
openstack token issue

Install Glance - Image Service


Configure SQL Database for Glance
Run following commands:

sudo su
mysql
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';
EXIT;

Create glance User


. admin-openrc
openstack user create --domain default --password openstack glance

Add admin role to User glance in Project service


openstack role add --project service --user glance admin

Create glance Service


openstack service create --name glance --description "OpenStack Image" image

Create glance Service Endpoints


openstack endpoint create --region RegionOne image public [Link]
openstack endpoint create --region RegionOne image internal [Link]
openstack endpoint create --region RegionOne image admin [Link]

Install and Configure Packages


Run following commands:
apt update -y
apt install glance -y

Configure /etc/glance/[Link] Parameters


Run following commands:
# Configure database access for glance
crudini --set /etc/glance/[Link] database connection mysql+pymysql://glance:openstack@con
# Configure Identity Service access
crudini --set /etc/glance/[Link] keystone_authtoken auth_uri [Link]
crudini --set /etc/glance/[Link] keystone_authtoken auth_url [Link]
crudini --set /etc/glance/[Link] keystone_authtoken memcached_servers controller:11211
crudini --set /etc/glance/[Link] keystone_authtoken auth_type password
crudini --set /etc/glance/[Link] keystone_authtoken project_domain_name default
crudini --set /etc/glance/[Link] keystone_authtoken user_domain_name default
crudini --set /etc/glance/[Link] keystone_authtoken project_name service
crudini --set /etc/glance/[Link] keystone_authtoken username glance
crudini --set /etc/glance/[Link] keystone_authtoken password openstack
crudini --set /etc/glance/[Link] paste_deploy flavor keystone
# Configure Glance to store Images on Local Filesystem
crudini --set /etc/glance/[Link] glance_store stores "file,http"
crudini --set /etc/glance/[Link] glance_store default_store file
crudini --set /etc/glance/[Link] glance_store filesystem_store_datadir /var/lib/glance/images/

Configure /etc/glance/[Link] Parameters


Run following commands:
# Configure database access for glance
crudini --set /etc/glance/[Link] database connection mysql+pymysql://glance:openstack@
# Configure Identity Service access
crudini --set /etc/glance/[Link] keystone_authtoken auth_uri [Link]
crudini --set /etc/glance/[Link] keystone_authtoken auth_url [Link]
crudini --set /etc/glance/[Link] keystone_authtoken memcached_servers controller:1121
crudini --set /etc/glance/[Link] keystone_authtoken auth_type password
crudini --set /etc/glance/[Link] keystone_authtoken project_domain_name default
crudini --set /etc/glance/[Link] keystone_authtoken user_domain_name default
crudini --set /etc/glance/[Link] keystone_authtoken project_name service
crudini --set /etc/glance/[Link] keystone_authtoken username glance
crudini --set /etc/glance/[Link] keystone_authtoken password openstack
crudini --set /etc/glance/[Link] paste_deploy flavor keystone

Populate the Image Service Database


Run following commands:
su -s /bin/sh -c "glance-manage db_sync" glance

Restart glance Services


service glance-registry restart
service glance-api restart

Verify Glance Operation


Run following commands:

. admin-openrc
wget [Link]
openstack image create cirros3.5 --file cirros-0.3.5-x86_64-[Link] --disk-format qcow2 --container-f
openstack image list

Download Cloud Image[Link]

Install & Configure Nova (Compute Service) Controller


Configure SQL Databases for Nova
Run following commands:

sudo su
mysql
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'openstac
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'open
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'openst

Create Compute Service User and add admin role in service Project
Run following commands:

. admin-openrc
openstack user create --domain default --password openstack nova
openstack role add --project service --user nova admin

Create Compute Service & Endpoints


Run following commands:

. admin-openrc
openstack service create --name nova --description "OpenStack Compute" c
openstack endpoint create --region RegionOne compute public [Link]
openstack endpoint create --region RegionOne compute internal [Link]
openstack endpoint create --region RegionOne compute admin [Link]
Create Placement Service User and add admin role in service Project
Run following commands:

. admin-openrc
openstack user create --domain default --password openstack placement
openstack role add --project service --user placement admin

Create Placement Service & Endpoints


Run following commands:

. admin-openrc
openstack service create --name placement --description "Placement API"
openstack endpoint create --region RegionOne placement public [Link]
openstack endpoint create --region RegionOne placement internal [Link]
openstack endpoint create --region RegionOne placement admin [Link]

Install Nova Controller Packages


Run following commands:

sudo su
apt install -y nova-api nova-conductor nova-consoleauth nova-novncproxy

Configure MySQL & RabbitMQ parameters in /etc/nova/[Link]


Run following commands:

crudini --set /etc/nova/[Link] api_database connection mysql+pymysql:


crudini --set /etc/nova/[Link] database connection mysql+pymysql://no
crudini --set /etc/nova/[Link] DEFAULT transport_url rabbit://opensta

Configure Identity Service access


Run following commands:

crudini --set /etc/nova/[Link] api auth_strategy keystone


crudini --set /etc/nova/[Link] keystone_authtoken auth_uri [Link]
crudini --set /etc/nova/[Link] keystone_authtoken auth_url [Link]
crudini --set /etc/nova/[Link] keystone_authtoken memcached_servers c
crudini --set /etc/nova/[Link] keystone_authtoken auth_type password
crudini --set /etc/nova/[Link] keystone_authtoken project_domain_name
crudini --set /etc/nova/[Link] keystone_authtoken user_domain_name de
crudini --set /etc/nova/[Link] keystone_authtoken project_name servic
crudini --set /etc/nova/[Link] keystone_authtoken username nova
crudini --set /etc/nova/[Link] keystone_authtoken password openstack

Configure support for Networking Service


Run following commands:

crudini --set /etc/nova/[Link] DEFAULT my_ip [Link]


crudini --set /etc/nova/[Link] DEFAULT use _neutron True
crudini --set /etc/nova/[Link] DEFAULT firewall_driver [Link]

Configure vnc proxy on Controller Node


Run following commands:

crudini --set /etc/nova/[Link] vnc enabled True


crudini --set /etc/nova/[Link] vnc vncserver_listen [Link]
crudini --set /etc/nova/[Link] vnc vncserver_proxyclient_address 10.0

Configure Glance location


Run following command:

crudini --set /etc/nova/[Link] glance api_servers [Link]

Configure Lock Path for Oslo Concurrency


Run following command:

crudini --set /etc/nova/[Link] oslo_concurrency lock_path /var/lib/no

Configure Placement API


Run following commands:

crudini --set /etc/nova/[Link] placement os_region_name RegionOne


crudini --set /etc/nova/[Link] placement project_domain_name Default
crudini --set /etc/nova/[Link] placement project_name service
crudini --set /etc/nova/[Link] placement auth_type password
crudini --set /etc/nova/[Link] placement user_domain_name Default
crudini --set /etc/nova/[Link] placement auth_url [Link]
crudini --set /etc/nova/[Link] placement username placement
crudini --set /etc/nova/[Link] placement password openstack

Remove log_dir parameter in DEFAULT section


Run following command:

crudini --del /etc/nova/[Link] DEFAULT log_dir

Populate nova_api Database


Run following commands:

sudo su
su -s /bin/sh -c "nova-manage api_db sync" nova
Register cell0 Database
Run following command:

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

Create cell1 Cell


Run following command:

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose

Populate nova Database


Run following command:

su -s /bin/sh -c "nova-manage db sync" nova

Verify configuration of Cells


Run following command:

nova-manage cell_v2 list_cells

Restart Services
Run following commands:

service nova-api restart


service nova-consoleauth restart
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart

Install and Configure Nova on Compute Node(s)

Discover Compute Nodes


Run following command:

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

Verify Compute Service Installation


Run following commands:

. admin-openrc
openstack compute service list
openstack catalog list
openstack image list
nova-status upgrade check
Install Neutron (Network Service) on Controller Node
Create Neutron SQL Database
Run following commands:

sudo su
mysql
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'openst
EXIT;

Create neutron User and add admin Role in service Project


Run following commands:

. admin-openrc
openstack user create --domain default --password openstack neutron
openstack role add --project service --user neutron admin

Create Neutron Service and Endpoints


Run following commands:

openstack service create --name neutron --description "OpenStack Network


openstack endpoint create --region RegionOne network public [Link]
openstack endpoint create --region RegionOne network internal [Link]
openstack endpoint create --region RegionOne network admin [Link]

Install Neutron Packages


Run following commands:

sudo su
apt install -y neutron-server neutron-plugin-ml2 neutron-linuxbridge-age

Configure SQL Database and RabbitMQ access for Neutron


Run following commands:

crudini --set /etc/neutron/[Link] database connection mysql+pymysq


crudini --set /etc/neutron/[Link] DEFAULT transport_url rabbit://o

Enable the Modular Layer 2 (ML2) plug-in, router service, and overlapping IP addresses
Run following commands:

crudini --set /etc/neutron/[Link] DEFAULT core_plugin ml2


crudini --set /etc/neutron/[Link] DEFAULT service_plugins router
crudini --set /etc/neutron/[Link] DEFAULT allow_overlapping_ips tr

Configure Identity Service access


Run following commands:

crudini --set /etc/neutron/[Link] api auth_strategy keystone


crudini --set /etc/neutron/[Link] keystone_authtoken auth_uri http
crudini --set /etc/neutron/[Link] keystone_authtoken auth_url http
crudini --set /etc/neutron/[Link] keystone_authtoken memcached_ser
crudini --set /etc/neutron/[Link] keystone_authtoken auth_type pas
crudini --set /etc/neutron/[Link] keystone_authtoken project_domai
crudini --set /etc/neutron/[Link] keystone_authtoken user_domain_n
crudini --set /etc/neutron/[Link] keystone_authtoken project_name
crudini --set /etc/neutron/[Link] keystone_authtoken username neut
crudini --set /etc/neutron/[Link] keystone_authtoken password open

Configure Networking to notify Compute of network topology changes

Run following commands:

crudini --set /etc/neutron/[Link] DEFAULT notify_nova_on_port_status_changes true


crudini --set /etc/neutron/[Link] DEFAULT notify_nova_on_port_data_changes true

Configure Nova access


Run following commands:

crudini --set /etc/neutron/[Link] nova auth_url [Link]


crudini --set /etc/neutron/[Link] nova auth_type password
crudini --set /etc/neutron/[Link] nova project_domain_name default
crudini --set /etc/neutron/[Link] nova user_domain_name default
crudini --set /etc/neutron/[Link] nova region_name RegionOne
crudini --set /etc/neutron/[Link] nova project_name service
crudini --set /etc/neutron/[Link] nova username nova
crudini --set /etc/neutron/[Link] nova password openstack

Configure ML2 Plugin


Run following commands:

# Enable flat, VLAN and VXLAN Networks


crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan,vxlan
# Enable VXLAN Self-service Networks
crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vxlan
# Enable Linux Bridge and L2Population mechanisms
crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers linuxbridge,l2population
# Enable Port Security Extenstion Driver
crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security
# Configure provider Virtual Network as flat Network
crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks provider
# Configure VXLAN Network Identifier Range for Self-service Networks
crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vxlan vni_ranges 1:1000
# Enable ipset to increase efficiency of Security Group Rules
crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset true

Configure the Linux Bridge Agent


Run following commands:

# Configure provider Virtual Network mapping to Physical Interface


crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mapping
# Enable VXLAN for Self-service Networks, configure IP address of the Management Interface handling V
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan true
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip [Link]
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
# Enable security groups and configure the Linux bridge iptables firewall driver
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group tru
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver [Link]

Configure the Layer-3 Agent


Run following command:

crudini --set /etc/neutron/l3_agent.ini DEFAULT interface_driver linuxbridge

Configure the DHCP Agent


Run following commands:

crudini --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver linuxbridge


crudini --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver [Link]
crudini --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata true

Configure Metadata Agent


Run following commands:

crudini --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_host controller


crudini --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret openstack

Configure Compute Service to use Neutron


Run following commands:

crudini --set /etc/nova/[Link] neutron url [Link]


crudini --set /etc/nova/[Link] neutron auth_url [Link]
crudini --set /etc/nova/[Link] neutron auth_type password
crudini --set /etc/nova/[Link] neutron project_domain_name default
crudini --set /etc/nova/[Link] neutron user_domain_name default
crudini --set /etc/nova/[Link] neutron region_name RegionOne
crudini --set /etc/nova/[Link] neutron project_name service
crudini --set /etc/nova/[Link] neutron username neutron
crudini --set /etc/nova/[Link] neutron password openstack
crudini --set /etc/nova/[Link] neutron service_metadata_proxy true
crudini --set /etc/nova/[Link] neutron metadata_proxy_shared_secret openstack

Populate Neutron Database


Run following Command:

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/[Link] --config-file /etc/neutron/p

Restart the Compute API Service


Run following command:

service nova-api restart

Restart Networking Services


Run following Commands:

service neutron-server restart


service neutron-linuxbridge-agent restart
service neutron-dhcp-agent restart
service neutron-metadata-agent restart
service neutron-l3-agent restart

Install Neutron on Compute Nodes

Verify Installation
Run following commands:

. admin-openrc
openstack network agent list

Install Cinder - Block Storage Service on block1 Node

Install Cinder Block Storage Service on Controller Node


Create Cinder Database
Run following commands:

sudo su
mysql
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'openstack';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'openstack';
EXIT;

Create cinder User and Add admin Role in service Project


Run following commands:

. admin-openrc
openstack user create --domain default --password openstack cinder
openstack role add --project service --user cinder admin

Create cinderv2 and cinderv3 Services and their Endpoints


Run following commands:

openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3
openstack endpoint create --region RegionOne volumev2 public [Link]
openstack endpoint create --region RegionOne volumev2 internal [Link]
openstack endpoint create --region RegionOne volumev2 admin [Link]
openstack endpoint create --region RegionOne volumev3 public [Link]
openstack endpoint create --region RegionOne volumev3 internal [Link]
openstack endpoint create --region RegionOne volumev3 admin [Link]

Install Packages
Run following command:

apt install -y cinder-api cinder-scheduler

Configure Database and RabbitMQ Access


Run following commands:

crudini --set /etc/cinder/[Link] database connection mysql+pymysql://cinder:openstack@control


crudini --set /etc/cinder/[Link] DEFAULT transport_url rabbit://openstack:openstack@controll

Configure Identity Service Access


Run following commands:

crudini --set /etc/cinder/[Link] DEFAULT auth_strategy keystone


crudini --set /etc/cinder/[Link] keystone_authtoken auth_uri [Link]
crudini --set /etc/cinder/[Link] keystone_authtoken auth_url [Link]
crudini --set /etc/cinder/[Link] keystone_authtoken memcached_servers controller:11211
crudini --set /etc/cinder/[Link] keystone_authtoken auth_type password
crudini --set /etc/cinder/[Link] keystone_authtoken project_domain_name default
crudini --set /etc/cinder/[Link] keystone_authtoken user_domain_name default
crudini --set /etc/cinder/[Link] keystone_authtoken project_name service
crudini --set /etc/cinder/[Link] keystone_authtoken username cinder
crudini --set /etc/cinder/[Link] keystone_authtoken password openstack

Configure my_ip Parameter and Lock Path


Run following commands:

crudini --set /etc/cinder/[Link] DEFAULT my_ip [Link]


crudini --set /etc/cinder/[Link] oslo_concurrency lock_path /var/lib/cinder/tmp

Populate Block Storage Database


Run following command:

su -s /bin/sh -c "cinder-manage db sync" cinder

Configure Compute Service to use Cinder


Run following command:

crudini --set /etc/nova/[Link] cinder os_region_name RegionOne

Restart Services
Run following commands:

service nova-api restart


service cinder-scheduler restart
service apache2 restart

Verify Cinder Operation


Run following commands:

. admin-openrc
openstack volume service list

Install Horizon Dashboard


Install Packages
Run following commands:

sudo su
apt install -y openstack-dashboard
Edit /etc/openstack-dashboard/local_settings.py to include following settings:

OPENSTACK_HOST = "controller"

SESSION_ENGINE = '[Link]'

CACHES = {
'default': {
'BACKEND': '[Link]',
'LOCATION': 'controller:11211',
}
}

OPENSTACK_KEYSTONE_URL = "[Link] % OPENSTACK_HOST

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

Edit /etc/apache2/conf-available/[Link] to include following line:

WSGIApplicationGroup %{GLOBAL}

Reload Web Server Configuration


Run following command:

service apache2 reload

Verify Horizon Operation by pointing Web Browser to

[Link]
Set-up 2 - Bare Metal Server

Bare MetaRecommended Actual


CPU 1+ 4
RAM 16+ 32
Primary D128+ GB, SSD preff 512GB

DHCP Disabled

DNS ServeVirtualBox Network Name


[Link] Host Only Adapter #2
--- NAT Network ProviderNetwoPromiscuous Mode: Allow All
DHCP NAT Network NatNetwork1
{ETCD_VER}-[Link] -o /tmp/etcd-${ETCD_VER}-[Link]
FIED BY 'openstack';
BY 'openstack';

keystone:openstack@controller/keystone
url [Link] --bootstrap-internal-url [Link] --bootstrap-public-url [Link]
D BY 'openstack';
openstack';
lance:openstack@controller/glance

troller:5000
troller:35357
s controller:11211

me default

ar/lib/glance/images/

ql://glance:openstack@controller/glance

/controller:5000
/controller:35357
rvers controller:11211

n_name default
name default
at qcow2 --container-format bare --public

IDENTIFIED BY 'openstack';
IED BY 'openstack';
NTIFIED BY 'openstack';
BY 'openstack';
t' IDENTIFIED BY 'openstack';
IFIED BY 'openstack';

ack nova

Stack Compute" compute


lic [Link]
ernal [Link]
in [Link]
ack placement

"Placement API" placement


ublic [Link]
nternal [Link]
dmin [Link]

nova-novncproxy nova-scheduler nova-placement-api

n mysql+pymysql://nova:openstack@controller/nova_api
sql+pymysql://nova:openstack@controller/nova
rabbit://openstack:openstack@controller

h_uri [Link]
h_url [Link]
cached_servers controller:11211
h_type password
ject_domain_name default
r_domain_name default
ject_name service
rname nova
sword openstack
r [Link]

[Link]
ent_address [Link]

p://controller:9292

path /var/lib/nova/tmp

me RegionOne
in_name Default
service

name Default
p://controller:35357/v3
=cell1 --verbose" nova

erbose" nova
t' IDENTIFIED BY 'openstack';
IFIED BY 'openstack';

ack neutron

penStack Networking" network


lic [Link]
ernal [Link]
in [Link]

-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent

ion mysql+pymysql://neutron:openstack@controller/neutron
t_url rabbit://openstack:openstack@controller
plugins router
erlapping_ips true

y keystone
en auth_uri [Link]
en auth_url [Link]
en memcached_servers controller:11211
en auth_type password
en project_domain_name default
en user_domain_name default
en project_name service
en username neutron
en password openstack

changes true
hanges true

xbridge,l2population
al_interface_mappings provider:eth1
nt Interface handling VXLAN traffic

e_security_group true
all_driver [Link].iptables_firewall.IptablesFirewallDriver

.[Link]

d_secret openstack
fig-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
D BY 'openstack';
openstack';

ge" volumev2
ge" volumev3
r:8776/v2/%\(project_id\)s
er:8776/v2/%\(project_id\)s
r:8776/v2/%\(project_id\)s
r:8776/v3/%\(project_id\)s
er:8776/v3/%\(project_id\)s
r:8776/v3/%\(project_id\)s

r:openstack@controller/cinder
:openstack@controller
ntroller:11211
public-url [Link] --bootstrap-region-id RegionOne
tadata-agent
Compute1 Installation Checklist
Set-up 1 - VM

HW Config

Virtual RecommendActual
VCPU (core1-2+ 1
RAM 4+ GB 4
Primary Dis10+ GB 10

VirtualBox Host-Only Network Ethernet Adapter #2


Configure Adapter ManIPv4 Addr10.0.0.1 IPv4 Net Ma255.255.255.0

NAT Network ProviderNetwork1


CIDR [Link]/24 DHCP Disabled

NAT Network NatNetwork1


CIDR [Link]/24 DHCP Enabled

Network Interfaces

Interface Network OS NameConfig Type IP Addr Netmask


Adapter 1 Managemeneth0 static [Link] [Link]
Adapter 2 Provider eth1 manual --- ---
Adapter 3 Internet wlan0 NetworkManaDHCP DHCP

Operating System

Name Ubuntu Server 16.04 LTS


Link [Link]

Operating System Installation Options


Recommended Actual
1. Language English English
2. Hit F4 to choose 'Modes' Install a Minimal Virtual Install a Minimal Virtual Machine
3. Press Enter to 'Install Ubuntu Server'
4. Choose Language English-English English-English
5. Select your location United States United States
6. Detect keyboard layout? No No
7. Keyboard layout English (US) English (US)
8. Primary network interface enp0s3 enp0s3
9. Network configration methodConfigure network manuaConfigure Network manualy
10. IP address [Link] [Link]
11. Netmask [Link] [Link]
12. Gateway [Link] [Link]
13. Name server address [Link] [Link]
14. Hostname compute1 compute1
15. Domain name
16. Full name of the new user kris
17. Username for your account kris
18. Choose password for the new user openstack
19. Encrypt your home directory? no
20. Select your time zone Eastern
21. Partitioning method use entire disk and set up use entire disk and set up LVM
22. HTTP Proxy none
23. How to manage upgrades? No automatic updates No automatic updates
24. Choose software to install OpenSSH Server OpenSSH Server
25. Install GRUB? Yes Yes

Configure Security, Networking, Install Linux Utilities


Configure 'sudo' accesskris
sudo su
visudo
add following line at the bottom of the file:
kris ALL=(ALL) NOPASSWD:ALL
save, exit and run sudo su again to test

Edit /etc/hosts
Remove [Link] compute1, if present
Make sure following lines are present:
[Link] controller
[Link] compute1
[Link] block1

Edit /etc/default/grub to include:


GRUB_CMDLINE_LINUX="[Link]=0 biosdevname=0"
Run command:
update-grub
reboot

Enable Network Interfaces


sudo su
Edit /etc/network/interfaces
Make sure following Interfaces definitions are present:
auto eth0
iface eth0 inet static
address [Link]
netmask [Link]
dns-nameservers [Link]
auto eth1
iface eth1 inet manual
up ip link set dev eth1 up
down ip link set dev eth1 down
auto eth2
iface eth2 inet dhcp

Reboot the system


Run 'ifconfig' as superuser to verify settings.
Verify connectivity to other hosts, once configured
ping -c 3 [Link]
ping -c 3 controller
ping -c 3 block1

Install basic Linux Utilities


Run following commands:
sudo su
apt update
apt install vim glances curl
apt upgrade -y

Install and Configure Network Time Protocol


Install and Configure Components

sudo su
apt install chrony

Edit /etc/chrony/[Link]:
set server to controller
server controller iburst
comment out pool [Link] offline iburst line.
save and quit
Restart chrony service:
service chrony restart

Verify:
chronyc sources
Install Basic OpenStack Packages
sudo su
apt install software-properties-common
add-apt-repository cloud-archive:pike
apt update && apt dist-upgrade
reboot
apt install python-openstackclient

Install Keystone Identity Service on Controller Node

Install Glance Image Service on Controller Node

Install Compute Service on Compute Node


Install Nova Compute Package
Run following commands:

sudo su
apt update
apt install -y nova-compute crudini

Configure RabbitMQ access


Run following command:

crudini --set /etc/nova/[Link] DEFAULT transport_url rabbit://opensta

Configure Identity Service access


Run following commands:

crudini --set /etc/nova/[Link] api auth_strategy keystone


crudini --set /etc/nova/[Link] keystone_auth auth_uri [Link]
crudini --set /etc/nova/[Link] keystone_auth auth_url [Link]
crudini --set /etc/nova/[Link] keystone_auth memcached_servers contro
crudini --set /etc/nova/[Link] keystone_auth auth_type password
crudini --set /etc/nova/[Link] keystone_auth project_domain_name defa
crudini --set /etc/nova/[Link] keystone_auth user_domain_name default
crudini --set /etc/nova/[Link] keystone_auth project_name service
crudini --set /etc/nova/[Link] keystone_auth username nova
crudini --set /etc/nova/[Link] keystone_auth password openstack
Configure support for Networking Service
Run following commands:

crudini --set /etc/nova/[Link] DEFAULT my_ip [Link]


crudini --set /etc/nova/[Link] DEFAULT use_neutron True
crudini --set /etc/nova/[Link] DEFAULT firewall_driver [Link]

Configure vnc Remote Console access on Compute Node


Run following commands:

crudini --set /etc/nova/[Link] vnc enabled True


crudini --set /etc/nova/[Link] vnc vncserver_listen [Link]
crudini --set /etc/nova/[Link] vnc vncserver_proxyclient_address 10.0
crudini --set /etc/nova/[Link] vnc novncproxy_base_url [Link]

Configure Glance location


Run following command:

crudini --set /etc/nova/[Link] glance api_servers [Link]

Configure Lock Path for Oslo Concurrency


Run following command:

crudini --set /etc/nova/[Link] oslo_concurrency lock_path /var/lib/no

Configure Placement API


Run following commands:

crudini --set /etc/nova/[Link] placement os_region_name RegionOne


crudini --set /etc/nova/[Link] placement project_domain_name Default
crudini --set /etc/nova/[Link] placement project_name service
crudini --set /etc/nova/[Link] placement auth_type password
crudini --set /etc/nova/[Link] placement user_domain_name Default
crudini --set /etc/nova/[Link] placement auth_url [Link]
crudini --set /etc/nova/[Link] placement username placement
crudini --set /etc/nova/[Link] placement password openstack

Remove log_dir parameter in DEFAULT section


Run following command:

crudini --del /etc/nova/[Link] DEFAULT log_dir

` Set-up #1 - Virtual Machines: use QEMU Emulator

Run following command:


crudini --set /etc/nova/[Link] libvirt virt_type qemu

Set-up #2 - Bare Metal Hosts: use KVM

Verify Compute Host Capabilities


Run following commands:

sudo su
kvm-ok
uname -m

Install KVM & Utilities


Run following command:

apt-get install -y qemu-kvm libvirt-bin bridge-utils

Verify KVM Installation


Run following command:

virsh list --all

Run following command:

crudini --set /etc/nova/[Link] libvirt virt_type kvm

Restart Nova Compute service


Run following command:

service nova-compute restart

Discover Compute Node on Controller Node

Install Neutron on Controller Node

Install Neutron on Compute Node


Install Packages
Run following commands:

sudo su
apt update
apt install -y neutron-linuxbridge-agent

Configure RabbitMQ access


Run following command:

crudini --set /etc/neutron/[Link] DEFAULT transport_url rabbit://openstack:openstack@cont

Configure Indetity Service Accesss


Run following commands:

crudini --set /etc/neutron/[Link] DEFAULT auth_strategy keystone


crudini --set /etc/neutron/[Link] keystone_authtoken auth_uri [Link]
crudini --set /etc/neutron/[Link] keystone_authtoken auth_url [Link]
crudini --set /etc/neutron/[Link] keystone_authtoken memcached_servers controller:11211
crudini --set /etc/neutron/[Link] keystone_authtoken auth_type password
crudini --set /etc/neutron/[Link] keystone_authtoken project_domain_name default
crudini --set /etc/neutron/[Link] keystone_authtoken user_domain_name default
crudini --set /etc/neutron/[Link] keystone_authtoken project_name service
crudini --set /etc/neutron/[Link] keystone_authtoken username neutron
crudini --set /etc/neutron/[Link] keystone_authtoken password openstack

Configure the Linux Bridge Agent


Run following commands:

# Configure provider Virtual Network mapping to Physical Interface


crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mapping
# Enable VXLAN for Self-service Networks, configure IP address of the Management Interface handling V
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan true
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan local_ip [Link]
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan l2_population true
# Enable security groups and configure the Linux bridge iptables firewall driver
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group tru
crudini --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver [Link]

Configure Compute Service to use Neutron


Run following commands:

crudini --set /etc/nova/[Link] neutron url [Link]


crudini --set /etc/nova/[Link] neutron auth_url [Link]
crudini --set /etc/nova/[Link] neutron auth_type password
crudini --set /etc/nova/[Link] neutron project_domain_name default
crudini --set /etc/nova/[Link] neutron user_domain_name default
crudini --set /etc/nova/[Link] neutron region_name RegionOne
crudini --set /etc/nova/[Link] neutron project_name service
crudini --set /etc/nova/[Link] neutron username neutron
crudini --set /etc/nova/[Link] neutron password openstack

Restart Services
Run following commands:

service nova-compute restart


service neutron-linuxbridge-agent restart
Set-up 2 - Bare Metal Server

Bare MetaRecommended Actual


CPU 1+ 8
RAM 16+ 32
Primary D128+ GB, SSD preff 512

DHCP Disabled

Gateway DNS ServeVirtualBox Network Name


[Link] [Link] Host Only Adapter #2
--- --- NAT Network ProviderNetwoPromiscuous Mode: Allow All
DHCP DHCP NAT Network NatNetwork1

Virtual Machine
ork manualy

nd set up LVM
t_url rabbit://openstack:openstack@controller

y keystone
th_uri [Link]
th_url [Link]
mcached_servers controller:11211
th_type password
oject_domain_name default
er_domain_name default
oject_name service
ername nova
ssword openstack
ron True
_driver [Link]

sten [Link]
oxyclient_address [Link]
ase_url [Link]

rs [Link]

lock_path /var/lib/nova/tmp

ion_name RegionOne
t_domain_name Default
t_name service
ype password
omain_name Default
rl [Link]
me placement
rd openstack
ibvirt virt_type qemu

dge-utils

ibvirt virt_type kvm


://openstack:openstack@controller

tp://controller:5000
tp://controller:35357
_servers controller:11211

main_name default
n_name default

ge physical_interface_mappings provider:eth1
anagement Interface handling VXLAN traffic
e_vxlan true
_ip [Link]
pulation true

up enable_security_group true
up firewall_driver [Link].iptables_firewall.IptablesFirewallDriver
Block1 Installation Checklist
Set-up 1 - VM

HW Config

Virtual RecommendActual
VCPU (core1-2+ 1
RAM 4+ GB 4
Primary Dis10+ GB 20

VirtualBox Host-Only Network Ethernet Adapter #2


Configure Adapter ManIPv4 Addr10.0.0.1 IPv4 Net Ma255.255.255.0

NAT Network ProviderNetwork1


CIDR [Link]/24 DHCP Disabled

NAT Network NatNetwork1


CIDR [Link]/24 DHCP Enabled

Network Interfaces

Interface Network OS NameConfig Type IP Addr Netmask


Adapter 1 Managemeneth0 static [Link] [Link]
Adapter 2 Provider eth1 manual --- ---
Adapter 3 Internet wlan0 NetworkManaDHCP DHCP

Operating System

Name Ubuntu Server 16.04 LTS


Link [Link]

Operating System Installation Options


Recommended Actual
1. Language English English
2. Hit F4 to choose 'Modes' Install a Minimal Virtual Install a Minimal Virtual Machine
3. Press Enter to 'Install Ubuntu Server'
4. Choose Language English-English English-English
5. Select your location United States United States
6. Detect keyboard layout? No No
7. Keyboard layout English (US) English (US)
8. Primary network interface enp0s3 enp0s3
9. Network configration methodConfigure network manuaConfigure Network manualy
10. IP address [Link] [Link]
11. Netmask [Link] [Link]
12. Gateway [Link] [Link]
13. Name server address [Link] [Link]
14. Hostname block1 compute1
15. Domain name
16. Full name of the new user kris
17. Username for your account kris
18. Choose password for the new user openstack
19. Encrypt your home directory? no
20. Select your time zone Eastern
21. Partitioning method use entire disk and set up use entire disk and set up LVM
22. HTTP Proxy none
23. How to manage upgrades? No automatic updates No automatic updates
24. Choose software to install OpenSSH Server OpenSSH Server
25. Install GRUB? Yes Yes

Configure Security, Networking, Install Linux Utilities


Configure 'sudo' accesskris
sudo su
visudo
add following line at the bottom of the file:
kris ALL=(ALL) NOPASSWD:ALL
save, exit and run sudo su again to test

Edit /etc/hosts
Remove [Link] block1, if present
Make sure following lines are present:
[Link] controller
[Link] compute1
[Link] block1

Edit /etc/default/grub to include:


GRUB_CMDLINE_LINUX="[Link]=0 biosdevname=0"
Run command:
update-grub
reboot

Enable Network Interfaces


sudo su
Edit /etc/network/interfaces
Make sure following Interfaces definitions are present:
auto eth0
iface eth0 inet static
address [Link]
netmask [Link]
dns-nameservers [Link]
auto eth2
iface eth2 inet dhcp

Reboot the system


Run 'ifconfig' as superuser to verify settings.
Verify connectivity to other hosts, once configured
ping -c 3 [Link]
ping -c 3 controller
ping -c 3 compute1

Install basic Linux Utilities


Run following commands:
sudo su
apt update
apt install vim glances curl
apt upgrade -y
reboot

Install and Configure Network Time Protocol


Install and Configure Components

sudo su
apt install chrony

Edit /etc/chrony/[Link]:
set server to controller
server controller iburst
comment out pool [Link] offline iburst line.
save and quit
Restart chrony service:
service chrony restart

Verify:
chronyc sources

Install Basic OpenStack Packages


sudo su
apt install software-properties-common
add-apt-repository cloud-archive:pike
apt update && apt dist-upgrade
reboot
apt install python-openstackclient

Install Keystone Identity Service on Controller Node

Install Glance Image Service on Controller Node

Install Compute Service on Controller Node

Install Compute Service on Compute Node

Install Network Service on Controller Node

Install Network Service on Compute Node

Install Block Storage Service on Storage Node


Install Supporting Packages
Run following commands:

sudo su
apt update
apt install -y lvm2 thin-provisioning-tools crudini

Verify sdb Disk


Run following command:

fdisk -l

Create LVM Physical Volume /dev/sdb


Run following command:

pvcreate /dev/sdb
Create LVM Volume Group "cinder-volumes"
Run following command:

vgcreate cinder-volumes /dev/sdb

Edit LVM Configuration File /etc/lvm/[Link] to include following line in devices section

filter = [ "a/sda/", "a/sdb/", "r/.*/"]

Install Cinder Packages


Run following command:

apt install -y cinder-volume

Configure Database and RabbitMQ Access


Run following commands:

crudini --set /etc/cinder/[Link] database connection mysql+pymysql://cinder:openstack@control


crudini --set /etc/cinder/[Link] DEFAULT transport_url rabbit://openstack:openstack@controll

Configure Identity Service Access


Run following commands:

crudini --set /etc/cinder/[Link] DEFAULT auth_strategy keystone


crudini --set /etc/cinder/[Link] keystone_authtoken auth_uri = [Link]
crudini --set /etc/cinder/[Link] keystone_authtoken auth_url [Link]
crudini --set /etc/cinder/[Link] keystone_authtoken memcached_servers controller:11211
crudini --set /etc/cinder/[Link] keystone_authtoken auth_type password
crudini --set /etc/cinder/[Link] keystone_authtoken project_domain_name default
crudini --set /etc/cinder/[Link] keystone_authtoken user_domain_name default
crudini --set /etc/cinder/[Link] keystone_authtoken project_name service
crudini --set /etc/cinder/[Link] keystone_authtoken username cinder
crudini --set /etc/cinder/[Link] keystone_authtoken password openstack

Configure my_ip Parameter


Run following command:

crudini --set /etc/cinder/[Link] DEFAULT my_ip [Link]

Configure LVM Backend


Run following commands:

crudini --set /etc/cinder/[Link] lvm volume_driver [Link]


crudini --set /etc/cinder/[Link] lvm volume_group cinder-volumes
crudini --set /etc/cinder/[Link] lvm iscsi_protocol iscsi
crudini --set /etc/cinder/[Link] lvm iscsi_helper tgtadm

Enable LVM Backend


Run following command:

crudini --set /etc/cinder/[Link] DEFAULT enabled_backends lvm

Configure Location of Image Service and Lock Path


Run following commands:

crudini --set /etc/cinder/[Link] DEFAULT glance_api_servers [Link]


crudini --set /etc/cinder/[Link] oslo_concurrency lock_path /var/lib/cinder/tmp

Restart Services
Run following commands:

service tgt restart


service cinder-volume restart
Set-up 2 - Bare Metal Server

Bare MetaRecommended Actual


CPU 1+ 4
RAM 16+ 24
Primary D128+ GB, SSD preff 256GB + 2TB

DHCP Disabled

Gateway DNS ServeVirtualBox Network Name


[Link] [Link] Host Only Adapter #2
--- --- NAT Network ProviderNetwoPromiscuous Mode: Allow All
DHCP DHCP NAT Network NatNetwork1

Virtual Machine
ork manualy

nd set up LVM
devices section

ql://cinder:openstack@controller/cinder
penstack:openstack@controller

p://controller:5000
/controller:35357
rvers controller:11211

n_name default
name default

[Link]
://controller:9292
b/cinder/tmp

You might also like