[ 1 /9 : Pre-requisites ] [ Next: Keystone (2/9) ]
Install Ubuntu 20.04 as detailed here. (We will remove snapd, netplan, motd and enable legacy networking)
Two interfaces are used, one for the node management and the second one for the provider network.
In my case, the interfaces are eno1 and en02. Update /etc/network/interfaces with following contents
source-directory /etc/network/interfaces.d
auto eno1
iface eno1 inet static
address 10.0.3.1/16
gateway 10.0.0.1
auto eno2
iface eno2 inet manual
Create /etc/systemd/network/eno2 with following contents
[Match]
Name=eno2
[Network]
LinkLocalAddressing=no
IPv6AcceptRA=no
Stop, disable and mask apparmor
systemctl stop apparmor
systemctl disable apparmor
systemctl mask apparmor
Install chrony for NTP requirements
apt install -y chrony
Update /etc/chrony/chrony.conf – Comment out the pool configurations and add only one NTP server to sync with – my preference
#pool ntp.ubuntu.com iburst maxsources 4#pool 0.ubuntu.pool.ntp.org iburst maxsources 1#pool 1.ubuntu.pool.ntp.org iburst maxsources 1#pool 2.ubuntu.pool.ntp.org iburst maxsources 2
server 10.0.0.5
Restart chrony and verify NTP synch
service chrony restart
chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 10.0.0.5 1 6 1 7 -17us[-17us] +/- 2ms
Add OpenStack repository and install OpenStack-client
apt -y install software-properties-common
add-apt-repository cloud-archive:xena
apt update
apt upgrade -y
apt install -y python3-openstackclient
Install MariaDB
apt install -y mariadb-server python3-pymysql
Create /etc/mysql/mariadb.conf.d/99-openstack.cnf with following contents (Do not cut and paste from here, some white spaces cause problems)
[mysqld]
bind-address = 10.0.3.1
default-storage-engine = innodb
innodb_buffer_pool_size = 4294967296
max_connections = 4096
skip-name-resolve
max_allowed_packet = 256M
collation-server = utf8_general_ci
character-set-server = utf8
Restart MariaDB
service mariadb restart
Secure the installation
root@controller:~# mysql_secure_installation
Set root password? [Y/n] n
… skipping.
Remove anonymous users? [Y/n] y
… Success!
Disallow root login remotely? [Y/n] y
… Success!
Remove test database and access to it? [Y/n] y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reload privilege tables now? [Y/n] y
… Success!
Install RabbitMQ server and add a user account for use with OpenStack.
apt install -y rabbitmq-server
rabbitmqctl add_user openstack password
Adding user "openstack" ...
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/" ...
Install Memcached
apt install -y memcached python3-memcache
Edit /etc/memcached.conf and update binding address with 10.0.3.1
-l 10.0.3.1
Install etcd
apt install -y etcd
Update configurations in /etc/default/etcd as shown below
ETCD_NAME="controller"
ETCD_DATA_DIR="/var/lib/etcd/default"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://10.0.3.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.3.1:2380"
ETCD_INITIAL_CLUSTER="controller=http://10.0.3.1:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.3.1:2379"
Restart memcached and etcd
systemctl restart memcached etcd
The following packages were required to be installed without which I was not able to use the OpenStack cli client.
apt install -y python3-gi gobject-introspection gir1.2-gtk-3.0
[ 1 /9 : Pre-requisites ] [ Next: Keystone (2 / 9) ]