done on VM with specs (CPU:2 RAM:8G Drive:30G OS: Centos 8 Stream minimal Networking: 2 NIC configured as bridge on VirtualBox)
##install Python build dependencies sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux
sudo dnf install python3-pip
sudo pip3 install -U pip
sudo dnf install ansible
sudo pip3 install 'ansible=2.10'
sudo pip3 install kolla-ansible
sudo mkdir -p /etc/kolla sudo chown $USER:$USER /etc/kolla
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp /usr/local/share/kolla-ansible/ansible/inventory/* .
[defaults] host_key_checking=False pipelining=True forks=100
Kolla passwords: Passwords used in our deployment are stored in /etc/kolla/passwords.yml file. All passwords are blank in this file and have to be filled ##either manually or by running random password generator
kolla-genpwd
Kolla globals.yml, globals.yml is the main configuration file for Kolla Ansible. There are a few options that are required to deploy Kolla Ansible:Image options
User has to specify images that are going to be used for our deployment. In this guide DockerHub provided pre-built images are going to be ##used
CentOS Stream (centos) Ubuntu (ubuntu) Debian (debian) RHEL (rhel, deprecated)
kolla_base_distro: "centos" kolla_install_type: "source"
Networking Kolla Ansible requires a few networking options to be set. We need to set network interfaces used by OpenStack.
First interface to set is “network_interface”. This is the default interface for multiple management-type networks.
network_interface: "enp0s3"
Second interface required is dedicated for Neutron external (or public) networks, can be vlan or flat, depends on how the networks are ##created. This interface should be active without IP address. If not, instances won’t be able to access to the external networks.
neutron_external_interface: "enp0s8"
Next we need to provide floating IP for management traffic. This IP will be managed by keepalived to provide high availability, and should ##be set to be not used address in management network that is connected to our network_interface.
kolla_internal_vip_address: "10.0.0.240" ## note this address should be in the same network of your router or host
By default Kolla Ansible provides a bare compute kit, however it does provide support for a vast selection of additional services. To ##enable them, set enable_* to “yes” For example, to enable Block Storage service:
Kolla now supports many OpenStack services, there is a list of available services. For more information about service configuration, Please ##refer to the Services Reference Guide.
enable_openstack_core: "yes" enable_glance: "{{ enable_openstack_core | bool }}" enable_hacluster: "no" enable_haproxy: "yes" enable_keepalived: "{{ enable_haproxy | bool }}" enable_keystone: "{{ enable_openstack_core | bool }}" enable_mariadb: "yes" enable_memcached: "yes" enable_neutron: "{{ enable_openstack_core | bool }}" enable_nova: "{{ enable_openstack_core | bool }}" enable_rabbitmq: "{{ 'yes' if om_rpc_transport == 'rabbit' or om_notify_transport == 'rabbit' else 'no' }}" #enable_outward_rabbitmq: "{{ enable_murano | bool }}"
The following assumes the use of the multinode inventory. If using a different inventory, such as all-in-one, replace the -i argument ##accordingly.
kolla-ansible -i ./all-in-one bootstrap-servers
kolla-ansible -i ./all-in-one prechecks
kolla-ansible -i ./all-in-one deploy
pip install python3-openstackclient
pip install python-openstackclient
2- OpenStack requires an openrc file where credentials for admin user are set. To generate this file:
kolla-ansible post-deploy . /etc/kolla/admin-openrc.sh
to access horizon after deployment we need to access horizon container then change ServerName to localhost
vi /etc/httpd/conf/httpd.conf ServerName localhost exit
docker container restart
cat /etc/kolla/admin-openrc.sh and use admin as username and get the value of export OS_PASSWORD= and use it on password field