Please prepare a server or a virtual box with at least 2 interfaces and ubuntu 18.04 LTS.  You need minimum 20 GB of free space to just run the services, and will leave around 2GB free to test other stuff. To deploy any instances, prepare at least 40gb or more.  Your 1st interface will be the API/Management interface and the 2nd interface will be what neutron will use for its north-south networking.

Prepare the server

apt-get install python-dev libffi-dev gcc libssl-dev python-selinux python-setuptools  python-pip ansible

pip install kolla-ansible docker
mkdir /etc/kolla

cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
cp /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/

kolla-genpwd

vi /etc/kolla/globals.yml 

## in my test case, the virtualbox has  enp0s3 with ip address: 192.168.88.80 and enp0s8 in the 2nd interface with IP address:

(default) config file /etc/kolla/globals.yml   before the edit

---
kolla_internal_vip_address: "10.10.10.254"
glance_enable_rolling_upgrade: "no"
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:

Config file /etc/kolla/globals.yml  after my edit

---
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "rocky"
kolla_internal_vip_address: "192.168.88.80"
network_interface: "enp0s3"
neutron_external_interface: "enp0s8"
neutron_plugin_agent: "openvswitch"
enable_central_logging: "yes"
enable_cinder: "yes"
enable_designate: "yes"
enable_grafana: "yes"
enable_haproxy: "no"
enable_heat: "yes"
enable_horizon: "yes"
enable_magnum: "yes"
enable_manila: "yes"
glance_enable_rolling_upgrade: "no"
osprofiler_backend: "elasticsearch"
cinder_backend_ceph: "{{ enable_ceph }}"
cinder_volume_group: "cinder-volumes"
designate_backend: "bind9"
designate_ns_record: "cloud.openstackfaq.com"
nova_compute_virt_type: "qemu"
ironic_dnsmasq_dhcp_range:
tempest_image_id:
tempest_flavor_ref_id:
tempest_public_network_id:
tempest_floating_network_name:

 

Deploy Openstack Kolla

KAOPTS=" -i /etc/kolla/all-in-one" 
kolla-ansible $KAOPTS bootstrap-servers 
kolla-ansible $KAOPTS prechecks
kolla-ansible $KAOPTS deploy 
kolla-ansible $KAOPTS post-deploy 
kolla-ansible $KAOPTS check 

After the steps are done, docker ps will show that the services are running. You can visit the IP address of the enp0s3 (1st interface, 192.168.88.80  in my case) and get the horizon login prompt. The username is admin and the password can be viewed in /etc/kolla/admin-openrc.sh or in /etc/kolla/passwords (keystone_admin)

After login, click Admin >> System >> System Information to see an overview of all the services.

Kolla provides kolla_toolbox container to run quick commands

docker cp /etc/kolla/admin-openrc.sh kolla_toolbox:/opt/
docker exec -it kolla_toolbox bash

 

(kolla-toolbox)[ansible@aio /]$ source /opt/admin-openrc.sh
(kolla-toolbox)[ansible@aio /]$ openstack service list
+----------------------------------+-------------+-----------------+
| ID                               | Name        | Type            |
+----------------------------------+-------------+-----------------+
| 08ef9f89539c4d77ac9ac358ba256266 | cinder      | volume          |
| 107eccf9fe7f4990a0eab45d7e5effed | heat-cfn    | cloudformation  |
| 128f8aa1c2f7460b9b337062e8615252 | neutron     | network         |
| 296ed800d9f3494f9c16a4d6b6dac2db | placement   | placement       |
| 2cc020c4511c438eaa4f6150867ce0f2 | heat        | orchestration   |
| 3d52c9f9e40c4c678be629f66cf1db1c | manila      | share           |
| 418f41699e244556add40134d434e13a | magnum      | container-infra |
| 4422c6516fb34cfea33b2951bb52fb4a | nova        | compute         |
| 579e98f31dcb465faefb34cdd42dd811 | manilav2    | sharev2         |
| 661abe3695564b1792ad7bd8168e9a21 | designate   | dns             |
| 83518f5628b642e28f751e2b62887c07 | cinderv2    | volumev2        |
| a039e9f53d3548bc97ce91c06e0114d3 | nova_legacy | compute_legacy  |
| bf19002b4d02463aa98cbef75ed5a127 | glance      | image           |
| c98da5cad0e74e8f863a63ecfafa4658 | cinderv3    | volumev3        |
| f2af827aebff48b284ba67d87c7e1a69 | keystone    | identity        |
+----------------------------------+-------------+-----------------+

 

Add/Remove Services.

To add/remove servies, please edit the  /etc/kolla/globals.yml and run
kolla-ansible -i /opt/kolla/all-in-one  reconfigure

 

Test Deployment

apt install virtualenv

cd /opt/
virtualenv oscli
source oscli/bin/activate

pip install python-openstackclient python-heatclient

source /etc/kolla/admin-openrc.sh


/usr/local/share/kolla-ansible/init-runonce

openstack server create --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1

This will launch a server which you can console from the GUI.

 

Reference:
https://docs.openstack.org/kolla-ansible/latest/user/quickstart.html

Help  =>  #openstack-kolla on Freenode IRC

 

 

 

About The Author