kolla-genpwd<\/code> in your virtual environment.<\/p>\n\n\n\nEnsure that your virtual environment is activated<\/p>\n\n\n\n
source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\nNext, generate the passwords;<\/p>\n\n\n\n
kolla-genpwd<\/pre>\n\n\n\nAll generated passwords will be populated to \/etc\/kolla\/passwords.yml<\/strong><\/code> file.<\/p>\n\n\n\nYou now have your deployment inventory in place.<\/p>\n\n\n\n
Since we are running an all-in-one deployment, we will leave all the default options defined on the all-in-one<\/strong><\/code> inventory file as is.<\/p>\n\n\n\ncat all-in-one<\/code><\/pre>\n\n\n\n# These initial groups are the only groups required to be modified. The\n# additional groups are for more control of the environment.\n[control]\nlocalhost ansible_connection=local\n\n[network]\nlocalhost ansible_connection=local\n\n[compute]\nlocalhost ansible_connection=local\n\n[storage]\nlocalhost ansible_connection=local\n\n[monitoring]\nlocalhost ansible_connection=local\n\n[deployment]\nlocalhost ansible_connection=local\n\n# You can explicitly specify which hosts run each project by updating the\n# groups in the sections below. Common services are grouped together.\n\n[common:children]\ncontrol\nnetwork\ncompute\nstorage\nmonitoring\n\n[collectd:children]\ncompute\n\n[baremetal:children]\ncontrol\n\n[tls-backend:children]\ncontrol\n\n[grafana:children]\nmonitoring\n\n[etcd:children]\ncontrol\n\n[kafka:children]\ncontrol\n\n[telegraf:children]\ncompute\ncontrol\nmonitoring\nnetwork\nstorage\n\n[hacluster:children]\ncontrol\n\n[hacluster-remote:children]\ncompute\n\n[loadbalancer:children]\nnetwork\n\n[mariadb:children]\ncontrol\n\n[rabbitmq:children]\ncontrol\n\n[outward-rabbitmq:children]\ncontrol\n\n[monasca-agent:children]\ncompute\ncontrol\nmonitoring\nnetwork\nstorage\n\n[monasca:children]\nmonitoring\n\n[storm:children]\nmonitoring\n\n[keystone:children]\ncontrol\n\n[glance:children]\ncontrol\n\n[nova:children]\ncontrol\n\n[neutron:children]\nnetwork\n\n[openvswitch:children]\nnetwork\ncompute\nmanila-share\n\n[cinder:children]\ncontrol\n\n[cloudkitty:children]\ncontrol\n\n[freezer:children]\ncontrol\n\n[memcached:children]\ncontrol\n\n[horizon:children]\ncontrol\n\n[swift:children]\ncontrol\n\n[barbican:children]\ncontrol\n\n[heat:children]\ncontrol\n\n[murano:children]\ncontrol\n\n[ironic:children]\ncontrol\n\n[influxdb:children]\nmonitoring\n\n[prometheus:children]\nmonitoring\n\n[magnum:children]\ncontrol\n\n[sahara:children]\ncontrol\n\n[solum:children]\ncontrol\n\n[mistral:children]\ncontrol\n\n[manila:children]\ncontrol\n\n[gnocchi:children]\ncontrol\n\n[ceilometer:children]\ncontrol\n\n[aodh:children]\ncontrol\n\n[cyborg:children]\ncontrol\ncompute\n\n[tacker:children]\ncontrol\n\n[vitrage:children]\ncontrol\n\n[senlin:children]\ncontrol\n\n[trove:children]\ncontrol\n\n[watcher:children]\ncontrol\n\n[octavia:children]\ncontrol\n\n[designate:children]\ncontrol\n\n[placement:children]\ncontrol\n\n[bifrost:children]\ndeployment\n\n[zookeeper:children]\ncontrol\n\n[zun:children]\ncontrol\n\n[skyline:children]\ncontrol\n\n[redis:children]\ncontrol\n\n[blazar:children]\ncontrol\n\n[venus:children]\nmonitoring\n\n# Additional control implemented here. These groups allow you to control which\n# services run on which hosts at a per-service level.\n#\n# Word of caution: Some services are required to run on the same host to\n# function appropriately. For example, neutron-metadata-agent must run on the\n# same host as the l3-agent and (depending on configuration) the dhcp-agent.\n\n# Common\n[cron:children]\ncommon\n\n[fluentd:children]\ncommon\n\n[kolla-logs:children]\ncommon\n\n[kolla-toolbox:children]\ncommon\n\n[opensearch:children]\ncontrol\n\n# Opensearch dashboards\n[opensearch-dashboards:children]\nopensearch\n\n# Glance\n[glance-api:children]\nglance\n\n# Nova\n[nova-api:children]\nnova\n\n[nova-conductor:children]\nnova\n\n[nova-super-conductor:children]\nnova\n\n[nova-novncproxy:children]\nnova\n\n[nova-scheduler:children]\nnova\n\n[nova-spicehtml5proxy:children]\nnova\n\n[nova-compute-ironic:children]\nnova\n\n[nova-serialproxy:children]\nnova\n\n# Neutron\n[neutron-server:children]\ncontrol\n\n[neutron-dhcp-agent:children]\nneutron\n\n[neutron-l3-agent:children]\nneutron\n\n[neutron-metadata-agent:children]\nneutron\n\n[neutron-ovn-metadata-agent:children]\ncompute\nnetwork\n\n[neutron-ovn-agent:children]\ncompute\n\n[neutron-bgp-dragent:children]\nneutron\n\n[neutron-infoblox-ipam-agent:children]\nneutron\n\n[neutron-metering-agent:children]\nneutron\n\n[ironic-neutron-agent:children]\nneutron\n\n# Cinder\n[cinder-api:children]\ncinder\n\n[cinder-backup:children]\nstorage\n\n[cinder-scheduler:children]\ncinder\n\n[cinder-volume:children]\nstorage\n\n# Cloudkitty\n[cloudkitty-api:children]\ncloudkitty\n\n[cloudkitty-processor:children]\ncloudkitty\n\n# Freezer\n[freezer-api:children]\nfreezer\n\n[freezer-scheduler:children]\nfreezer\n\n# iSCSI\n[iscsid:children]\ncompute\nstorage\nironic\n\n[tgtd:children]\nstorage\n\n# Manila\n[manila-api:children]\nmanila\n\n[manila-scheduler:children]\nmanila\n\n[manila-share:children]\nnetwork\n\n[manila-data:children]\nmanila\n\n# Swift\n[swift-proxy-server:children]\nswift\n\n[swift-account-server:children]\nstorage\n\n[swift-container-server:children]\nstorage\n\n[swift-object-server:children]\nstorage\n\n# Barbican\n[barbican-api:children]\nbarbican\n\n[barbican-keystone-listener:children]\nbarbican\n\n[barbican-worker:children]\nbarbican\n\n# Trove\n[trove-api:children]\ntrove\n\n[trove-conductor:children]\ntrove\n\n[trove-taskmanager:children]\ntrove\n\n# Heat\n[heat-api:children]\nheat\n\n[heat-api-cfn:children]\nheat\n\n[heat-engine:children]\nheat\n\n# Murano\n[murano-api:children]\nmurano\n\n[murano-engine:children]\nmurano\n\n# Monasca\n[monasca-agent-collector:children]\nmonasca-agent\n\n[monasca-agent-forwarder:children]\nmonasca-agent\n\n[monasca-agent-statsd:children]\nmonasca-agent\n\n[monasca-api:children]\nmonasca\n\n[monasca-log-persister:children]\nmonasca\n\n[monasca-log-metrics:children]\nmonasca\n\n[monasca-thresh:children]\nmonasca\n\n[monasca-notification:children]\nmonasca\n\n[monasca-persister:children]\nmonasca\n\n# Storm\n[storm-worker:children]\nstorm\n\n[storm-nimbus:children]\nstorm\n\n# Ironic\n[ironic-api:children]\nironic\n\n[ironic-conductor:children]\nironic\n\n[ironic-inspector:children]\nironic\n\n[ironic-tftp:children]\nironic\n\n[ironic-http:children]\nironic\n\n# Magnum\n[magnum-api:children]\nmagnum\n\n[magnum-conductor:children]\nmagnum\n\n# Solum\n[solum-api:children]\nsolum\n\n[solum-worker:children]\nsolum\n\n[solum-deployer:children]\nsolum\n\n[solum-conductor:children]\nsolum\n\n[solum-application-deployment:children]\nsolum\n\n[solum-image-builder:children]\nsolum\n\n# Mistral\n[mistral-api:children]\nmistral\n\n[mistral-executor:children]\nmistral\n\n[mistral-engine:children]\nmistral\n\n[mistral-event-engine:children]\nmistral\n\n# Aodh\n[aodh-api:children]\naodh\n\n[aodh-evaluator:children]\naodh\n\n[aodh-listener:children]\naodh\n\n[aodh-notifier:children]\naodh\n\n# Cyborg\n[cyborg-api:children]\ncyborg\n\n[cyborg-agent:children]\ncompute\n\n[cyborg-conductor:children]\ncyborg\n\n# Gnocchi\n[gnocchi-api:children]\ngnocchi\n\n[gnocchi-statsd:children]\ngnocchi\n\n[gnocchi-metricd:children]\ngnocchi\n\n# Sahara\n[sahara-api:children]\nsahara\n\n[sahara-engine:children]\nsahara\n\n# Ceilometer\n[ceilometer-central:children]\nceilometer\n\n[ceilometer-notification:children]\nceilometer\n\n[ceilometer-compute:children]\ncompute\n\n[ceilometer-ipmi:children]\ncompute\n\n# Multipathd\n[multipathd:children]\ncompute\nstorage\n\n# Watcher\n[watcher-api:children]\nwatcher\n\n[watcher-engine:children]\nwatcher\n\n[watcher-applier:children]\nwatcher\n\n# Senlin\n[senlin-api:children]\nsenlin\n\n[senlin-conductor:children]\nsenlin\n\n[senlin-engine:children]\nsenlin\n\n[senlin-health-manager:children]\nsenlin\n\n# Octavia\n[octavia-api:children]\noctavia\n\n[octavia-driver-agent:children]\noctavia\n\n[octavia-health-manager:children]\noctavia\n\n[octavia-housekeeping:children]\noctavia\n\n[octavia-worker:children]\noctavia\n\n# Designate\n[designate-api:children]\ndesignate\n\n[designate-central:children]\ndesignate\n\n[designate-producer:children]\ndesignate\n\n[designate-mdns:children]\nnetwork\n\n[designate-worker:children]\ndesignate\n\n[designate-sink:children]\ndesignate\n\n[designate-backend-bind9:children]\ndesignate\n\n# Placement\n[placement-api:children]\nplacement\n\n# Zun\n[zun-api:children]\nzun\n\n[zun-wsproxy:children]\nzun\n\n[zun-compute:children]\ncompute\n\n[zun-cni-daemon:children]\ncompute\n\n# Skyline\n[skyline-apiserver:children]\nskyline\n\n[skyline-console:children]\nskyline\n\n# Tacker\n[tacker-server:children]\ntacker\n\n[tacker-conductor:children]\ntacker\n\n# Vitrage\n[vitrage-api:children]\nvitrage\n\n[vitrage-notifier:children]\nvitrage\n\n[vitrage-graph:children]\nvitrage\n\n[vitrage-ml:children]\nvitrage\n\n[vitrage-persistor:children]\nvitrage\n\n# Blazar\n[blazar-api:children]\nblazar\n\n[blazar-manager:children]\nblazar\n\n# Prometheus\n[prometheus-node-exporter:children]\nmonitoring\ncontrol\ncompute\nnetwork\nstorage\n\n[prometheus-mysqld-exporter:children]\nmariadb\n\n[prometheus-haproxy-exporter:children]\nloadbalancer\n\n[prometheus-memcached-exporter:children]\nmemcached\n\n[prometheus-cadvisor:children]\nmonitoring\ncontrol\ncompute\nnetwork\nstorage\n\n[prometheus-alertmanager:children]\nmonitoring\n\n[prometheus-openstack-exporter:children]\nmonitoring\n\n[prometheus-elasticsearch-exporter:children]\nopensearch\n\n[prometheus-blackbox-exporter:children]\nmonitoring\n\n[prometheus-libvirt-exporter:children]\ncompute\n\n[prometheus-msteams:children]\nprometheus-alertmanager\n\n[masakari-api:children]\ncontrol\n\n[masakari-engine:children]\ncontrol\n\n[masakari-hostmonitor:children]\ncontrol\n\n[masakari-instancemonitor:children]\ncompute\n\n[ovn-controller:children]\novn-controller-compute\novn-controller-network\n\n[ovn-controller-compute:children]\ncompute\n\n[ovn-controller-network:children]\nnetwork\n\n[ovn-database:children]\ncontrol\n\n[ovn-northd:children]\novn-database\n\n[ovn-nb-db:children]\novn-database\n\n[ovn-sb-db:children]\novn-database\n\n[venus-api:children]\nvenus\n\n[venus-manager:children]\nvenus\n<\/code><\/pre>\n\n\n\nUsing Kolla-Ansible to Deploy All-In-One OpenStack on Ubuntu 22.04<\/h3>\n\n\n\n
Since everything is setup, you can now start to deploy OpenStack using Kolla-ansible playbooks.<\/p>\n\n\n\n
Again, ensure that your virtual environment is activated.<\/strong><\/p>\n\n\n\nsource $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\nInstall Ansible Galaxy requirements<\/h4>\n\n\n\n
The Kolla Ansible Galaxy requirements are a set of Ansible roles and collections that are required to deploy OpenStack using Kolla Ansible.<\/p>\n\n\n\n
To install them, run the command below;<\/p>\n\n\n\n
kolla-ansible install-deps<\/code><\/pre>\n\n\n\nBootstrap Kolla-Ansible Nodes<\/h4>\n\n\n\n
Bootstrap your localhost configuration before deploying containers using bootstrap-servers<\/strong><\/code> sub-command.<\/p>\n\n\n\nThis is what the bootstrap command do;<\/p>\n\n\n\n
\n- Customization of
\/etc\/hosts<\/code><\/li>\n\n\n\n- Creation of user and group<\/li>\n\n\n\n
- Kolla configuration directory<\/li>\n\n\n\n
- Package installation and removal<\/li>\n\n\n\n
- Docker engine installation and configuration<\/li>\n\n\n\n
- Disabling firewalls<\/li>\n\n\n\n
- Creation of Python virtual environment<\/li>\n\n\n\n
- Configuration of Apparmor<\/li>\n\n\n\n
- Configuration of NTP daemon<\/li>\n\n\n\n
- e.t.c<\/li>\n<\/ul>\n\n\n\n
kolla-ansible -i all-in-one bootstrap-servers<\/pre>\n\n\n\nBelow is a sample output of the bootstrapping command;<\/p>\n\n\n\n
Bootstrapping servers : ansible-playbook -e @\/etc\/kolla\/globals.yml -e @\/etc\/kolla\/passwords.yml -e CONFIG_DIR=\/etc\/kolla -e kolla_action=bootstrap-servers \/home\/kifarunix\/kolla-openstack\/share\/kolla-ansible\/ansible\/kolla-host.yml --inventory all-in-one\n[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details\n\nPLAY [Gather facts for all hosts] **************************************************************************************************************************\n\nTASK [Gather facts] ****************************************************************************************************************************************\nok: [localhost]\n\nTASK [Gather package facts] ********************************************************************************************************************************\nskipping: [localhost]\n\nTASK [Group hosts to determine when using --limit] *********************************************************************************************************\nok: [localhost]\n[WARNING]: Could not match supplied host pattern, ignoring: all_using_limit_True\n\nPLAY [Gather facts for all hosts (if using --limit)] *******************************************************************************************************\nskipping: no hosts matched\n\nPLAY [Apply role baremetal] ********************************************************************************************************************************\n\nTASK [openstack.kolla.etc_hosts : Include etc-hosts.yml] ***************************************************************************************************\nincluded: \/home\/kifarunix\/.ansible\/collections\/ansible_collections\/openstack\/kolla\/roles\/etc_hosts\/tasks\/etc-hosts.yml for localhost\n\nTASK [openstack.kolla.etc_hosts : Ensure localhost in \/etc\/hosts] ******************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.etc_hosts : Ensure hostname does not point to 127.0.1.1 in \/etc\/hosts] ***************************************************************\n[WARNING]: Module remote_tmp \/root\/.ansible\/tmp did not exist and was created with a mode of 0700, this may cause issues when running as another user. To\navoid this, create the remote_tmp dir with the correct permissions manually\nchanged: [localhost]\n\nTASK [openstack.kolla.etc_hosts : Generate \/etc\/hosts for all of the nodes] ********************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.etc_hosts : Check whether \/etc\/cloud\/cloud.cfg exists] *******************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.etc_hosts : Disable cloud-init manage_etc_hosts] *************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.baremetal : Ensure unprivileged users can use ping] **********************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.baremetal : Set firewall default policy] *********************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.baremetal : Check if firewalld is installed] *****************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.baremetal : Disable firewalld] *******************************************************************************************************\nskipping: [localhost] => (item=firewalld) \nskipping: [localhost]\n\nTASK [openstack.kolla.packages : Install packages] *********************************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.packages : Remove packages] **********************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : include_tasks] **************************************************************************************************************\nincluded: \/home\/kifarunix\/.ansible\/collections\/ansible_collections\/openstack\/kolla\/roles\/docker\/tasks\/repo-Debian.yml for localhost\n\nTASK [openstack.kolla.docker : Install CA certificates and gnupg packages] *********************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Ensure apt sources list directory exists] ***********************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Ensure apt keyrings directory exists] ***************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Install docker apt gpg key] *************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Install docker apt pin] *****************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Ensure old docker repository absent] ****************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Enable docker apt repository] ***********************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Update the apt cache] *******************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Check which containers are running] *****************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Check if docker systemd unit exists] ****************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Mask the docker systemd unit on Debian\/Ubuntu] ******************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Install packages] ***********************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Start docker] ***************************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Wait for Docker to start] ***************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Ensure containers are running after Docker upgrade] *************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Ensure docker config directory exists] **************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker : Write docker config] ********************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Remove old docker options file] *********************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Ensure docker service directory exists] *************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Configure docker service] ***************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Ensure the path for CA file for private registry exists] ********************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Ensure the CA file for private registry exists] *****************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker : Flush handlers] *************************************************************************************************************\n\nRUNNING HANDLER [openstack.kolla.docker : Reload docker service file] **************************************************************************************\nok: [localhost]\n\nRUNNING HANDLER [openstack.kolla.docker : Restart docker] **************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Start and enable docker] ****************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : include_tasks] **************************************************************************************************************\nincluded: \/home\/kifarunix\/.ansible\/collections\/ansible_collections\/openstack\/kolla\/roles\/docker\/tasks\/configure-containerd-for-zun.yml for localhost\n\nTASK [openstack.kolla.docker : Ensuring CNI config directory exist] ****************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Copying CNI config file] ****************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Ensuring CNI bin directory exist] *******************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Copy zun-cni script] ********************************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.docker : Copying over containerd config] *********************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.kolla_user : Ensure groups are present] **********************************************************************************************\nskipping: [localhost] => (item=docker) \nskipping: [localhost] => (item=sudo) \nskipping: [localhost] => (item=kolla) \nskipping: [localhost]\n\nTASK [openstack.kolla.kolla_user : Create kolla user] ******************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.kolla_user : Add public key to kolla user authorized keys] ***************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.kolla_user : Grant kolla user passwordless sudo] *************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker_sdk : Install packages] *******************************************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.docker_sdk : Install latest pip in the virtualenv] ***********************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.docker_sdk : Install docker SDK for python] ******************************************************************************************\nchanged: [localhost]\n\nTASK [openstack.kolla.baremetal : Ensure node_config_directory directory exists] ***************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.apparmor_libvirt : include_tasks] ****************************************************************************************************\nincluded: \/home\/kifarunix\/.ansible\/collections\/ansible_collections\/openstack\/kolla\/roles\/apparmor_libvirt\/tasks\/remove-profile.yml for localhost\n\nTASK [openstack.kolla.apparmor_libvirt : Get stat of libvirtd apparmor profile] ****************************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.apparmor_libvirt : Get stat of libvirtd apparmor disable profile] ********************************************************************\nok: [localhost]\n\nTASK [openstack.kolla.apparmor_libvirt : Remove apparmor profile for libvirt] ******************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.baremetal : Change state of selinux] *************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.baremetal : Set https proxy for git] *************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.baremetal : Set http proxy for git] **************************************************************************************************\nskipping: [localhost]\n\nTASK [openstack.kolla.baremetal : Configure ceph for zun] **************************************************************************************************\nskipping: [localhost]\n\nRUNNING HANDLER [openstack.kolla.docker : Restart containerd] **********************************************************************************************\nchanged: [localhost]\n\nPLAY RECAP *************************************************************************************************************************************************\nlocalhost : ok=43 changed=21 unreachable=0 failed=0 skipped=21 rescued=0 ignored=0\n<\/code><\/pre>\n\n\n\nDeploy AIO OpenStack with Kolla-Ansible<\/h4>\n\n\n\n
Run pre-deployment checks for host;<\/p>\n\n\n\n
kolla-ansible -i all-in-one prechecks<\/pre>\n\n\n\nIf everything is fine, proceed to deploy all-in-one OpenStack with Kolla-ansible;<\/p>\n\n\n\n
kolla-ansible -i all-in-one deploy<\/pre>\n\n\n\nThe process might take a while as it involves building containers for different OpenStack services.<\/p>\n\n\n\n
If all ends well, you should get 0 failed tasks;<\/p>\n\n\n\n
...\nPLAY RECAP *************************************************************************************************************************************************************************\nlocalhost : ok=495 changed=343 unreachable=0 failed=0 skipped=223 rescued=0 ignored=1\n<\/code><\/pre>\n\n\n\nAll-in-one OpenStack Post Deployment Tasks<\/h3>\n\n\n\nAdd Kolla-Ansible Deployment User to Docker Group<\/h4>\n\n\n\n
You can optionally add your Kolla-ansible deployment user to Docker group to as to manage Docker without necessarily using sudo;<\/p>\n\n\n\n
sudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\nTo activate the new group membership, the user generally needs to log out and then log back in. This is because group memberships are set during the user's login session;<\/p>\n\n\n\n
So just press ctrl+d<\/strong> or just type exit<\/strong> on the terminal to exit and re-login.<\/p>\n\n\n\nList Running OpenStack Docker Containers<\/h4>\n\n\n\n
Once the deployment is done, you can list running OpenStack docker containers.<\/p>\n\n\n\n
docker ps<\/pre>\n\n\n\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n1666f0cab74f quay.io\/openstack.kolla\/zun-cni-daemon:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 6 minutes ago Up 6 minutes (healthy) zun_cni_daemon\n0b8bf41fbdd7 quay.io\/openstack.kolla\/zun-compute:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 7 minutes ago Up 7 minutes (healthy) zun_compute\nc2aa3d1e0ae1 quay.io\/openstack.kolla\/zun-wsproxy:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 7 minutes ago Up 7 minutes (healthy) zun_wsproxy\n5b7d8620964b quay.io\/openstack.kolla\/zun-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 7 minutes ago Up 7 minutes (healthy) zun_api\n5a7bdb8a46d7 quay.io\/openstack.kolla\/grafana:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 8 minutes ago Up 8 minutes grafana\n58aca553a8fa quay.io\/openstack.kolla\/watcher-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 8 minutes ago Up 8 minutes (healthy) watcher_api\nafeb5361011c quay.io\/openstack.kolla\/watcher-engine:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 8 minutes ago Up 8 minutes (healthy) watcher_engine\n17b5e3f629a6 quay.io\/openstack.kolla\/watcher-applier:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 8 minutes ago Up 8 minutes (healthy) watcher_applier\n14984dc3b62f quay.io\/openstack.kolla\/aodh-notifier:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 9 minutes ago Up 9 minutes (healthy) aodh_notifier\n27c3282ff23f quay.io\/openstack.kolla\/aodh-listener:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 9 minutes ago Up 9 minutes (healthy) aodh_listener\n5dd9d00c4348 quay.io\/openstack.kolla\/aodh-evaluator:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 9 minutes ago Up 9 minutes (healthy) aodh_evaluator\nedcfc8c84d26 quay.io\/openstack.kolla\/aodh-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 9 minutes ago Up 9 minutes (healthy) aodh_api\ne9a0df30d8c0 quay.io\/openstack.kolla\/ceilometer-compute:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 10 minutes ago Up 10 minutes (unhealthy) ceilometer_compute\n7083a166c6dd quay.io\/openstack.kolla\/ceilometer-central:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 10 minutes ago Up 10 minutes (unhealthy) ceilometer_central\n769464caed39 quay.io\/openstack.kolla\/ceilometer-notification:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 10 minutes ago Up 10 minutes (healthy) ceilometer_notification\n3eb3b22f4930 quay.io\/openstack.kolla\/gnocchi-statsd:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 10 minutes ago Up 10 minutes (healthy) gnocchi_statsd\n0cb5186bf98a quay.io\/openstack.kolla\/gnocchi-metricd:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 10 minutes ago Up 10 minutes (healthy) gnocchi_metricd\n5a7690c07e8a quay.io\/openstack.kolla\/gnocchi-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 10 minutes ago Up 10 minutes (healthy) gnocchi_api\n6939d98ab1f0 quay.io\/openstack.kolla\/horizon:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 11 minutes ago Up 11 minutes (healthy) horizon\n4e6f18607d48 quay.io\/openstack.kolla\/heat-engine:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 11 minutes ago Up 11 minutes (healthy) heat_engine\n146354aa7efd quay.io\/openstack.kolla\/heat-api-cfn:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 11 minutes ago Up 11 minutes (healthy) heat_api_cfn\nb6cdd6f2cf57 quay.io\/openstack.kolla\/heat-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 11 minutes ago Up 11 minutes (healthy) heat_api\nc96acf1c3bc2 quay.io\/openstack.kolla\/kuryr-libnetwork:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 12 minutes ago Up 12 minutes (healthy) kuryr\nd1f7da93b507 quay.io\/openstack.kolla\/neutron-metadata-agent:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 12 minutes ago Up 12 minutes (healthy) neutron_metadata_agent\n7d3a842e01a9 quay.io\/openstack.kolla\/neutron-l3-agent:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 12 minutes ago Up 12 minutes (healthy) neutron_l3_agent\nea2e8686a4e2 quay.io\/openstack.kolla\/neutron-dhcp-agent:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 12 minutes ago Up 12 minutes (healthy) neutron_dhcp_agent\nec3e4965b0cb quay.io\/openstack.kolla\/neutron-openvswitch-agent:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 13 minutes ago Up 13 minutes (healthy) neutron_openvswitch_agent\n49dd083263c9 quay.io\/openstack.kolla\/neutron-server:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 13 minutes ago Up 13 minutes (healthy) neutron_server\n85491203cf51 quay.io\/openstack.kolla\/openvswitch-vswitchd:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 14 minutes ago Up 14 minutes (healthy) openvswitch_vswitchd\n6c7fd09238f5 quay.io\/openstack.kolla\/openvswitch-db-server:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 14 minutes ago Up 14 minutes (healthy) openvswitch_db\n0ff28d2ad5d6 quay.io\/openstack.kolla\/nova-compute:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 14 minutes (healthy) nova_compute\n5d1ccb0851c5 quay.io\/openstack.kolla\/nova-libvirt:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 15 minutes (healthy) nova_libvirt\n5d0a56ecfc4f quay.io\/openstack.kolla\/nova-ssh:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 15 minutes (healthy) nova_ssh\nf52a916cac14 quay.io\/openstack.kolla\/nova-novncproxy:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 15 minutes (healthy) nova_novncproxy\ndc534c99812f quay.io\/openstack.kolla\/nova-conductor:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 15 minutes (healthy) nova_conductor\nf24693235a73 quay.io\/openstack.kolla\/nova-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 15 minutes (healthy) nova_api\naa0ae6d121e2 quay.io\/openstack.kolla\/nova-scheduler:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 15 minutes ago Up 15 minutes (healthy) nova_scheduler\n5e5932a8ba53 quay.io\/openstack.kolla\/placement-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 17 minutes ago Up 17 minutes (healthy) placement_api\n8ea6dd3c7ffc quay.io\/openstack.kolla\/cinder-backup:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 17 minutes ago Up 17 minutes (healthy) cinder_backup\naeff561998b3 quay.io\/openstack.kolla\/cinder-volume:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 17 minutes ago Up 17 minutes (healthy) cinder_volume\n906347ee7f0c quay.io\/openstack.kolla\/cinder-scheduler:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 17 minutes ago Up 17 minutes (healthy) cinder_scheduler\n0d84c269ecb4 quay.io\/openstack.kolla\/cinder-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 17 minutes ago Up 17 minutes (healthy) cinder_api\na3063a6e1b19 quay.io\/openstack.kolla\/glance-api:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 18 minutes ago Up 18 minutes (healthy) glance_api\n451d37977f14 quay.io\/openstack.kolla\/opensearch-dashboards:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 19 minutes ago Up 19 minutes (healthy) opensearch_dashboards\n239035f5d061 quay.io\/openstack.kolla\/opensearch:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 19 minutes ago Up 19 minutes (healthy) opensearch\nae31a24b20ae quay.io\/openstack.kolla\/keystone:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 20 minutes ago Up 20 minutes (healthy) keystone\n48109c73c9cd quay.io\/openstack.kolla\/keystone-fernet:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 20 minutes ago Up 20 minutes (healthy) keystone_fernet\ndcc91ca2150f quay.io\/openstack.kolla\/keystone-ssh:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 20 minutes ago Up 20 minutes (healthy) keystone_ssh\n35ebf2f58597 quay.io\/openstack.kolla\/rabbitmq:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 21 minutes ago Up 21 minutes (healthy) rabbitmq\n27c6c02eff6a quay.io\/openstack.kolla\/tgtd:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 21 minutes ago Up 21 minutes tgtd\nb271df549afe quay.io\/openstack.kolla\/iscsid:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 21 minutes ago Up 21 minutes iscsid\n68628da82f6c quay.io\/openstack.kolla\/prometheus-libvirt-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 21 minutes ago Up 21 minutes prometheus_libvirt_exporter\n4b79c161d358 quay.io\/openstack.kolla\/prometheus-blackbox-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_blackbox_exporter\n0484f64b42da quay.io\/openstack.kolla\/prometheus-elasticsearch-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_elasticsearch_exporter\ne3ed7a46a019 quay.io\/openstack.kolla\/prometheus-openstack-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 21 minutes prometheus_openstack_exporter\ncfdf5ac0edea quay.io\/openstack.kolla\/prometheus-alertmanager:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_alertmanager\na67a412ea8c7 quay.io\/openstack.kolla\/prometheus-cadvisor:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_cadvisor\n54595e972919 quay.io\/openstack.kolla\/prometheus-memcached-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_memcached_exporter\n2a377176ae19 quay.io\/openstack.kolla\/prometheus-mysqld-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_mysqld_exporter\nd8c110235c50 quay.io\/openstack.kolla\/prometheus-node-exporter:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_node_exporter\ndfb8df0027ca quay.io\/openstack.kolla\/prometheus-v2-server:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 22 minutes ago Up 22 minutes prometheus_server\n59dd03617231 quay.io\/openstack.kolla\/memcached:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 23 minutes ago Up 23 minutes (healthy) memcached\nd61c0633fd97 quay.io\/openstack.kolla\/mariadb-server:2024.1-ubuntu-jammy \"dumb-init -- kolla_\u2026\" 23 minutes ago Up 23 minutes (healthy) mariadb\nc278078bdb08 quay.io\/openstack.kolla\/cron:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 23 minutes ago Up 23 minutes cron\nc0fcd3dbea37 quay.io\/openstack.kolla\/kolla-toolbox:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 23 minutes ago Up 23 minutes kolla_toolbox\n07c45d306e56 quay.io\/openstack.kolla\/fluentd:2024.1-ubuntu-jammy \"dumb-init --single-\u2026\" 24 minutes ago Up 24 minutes fluentd\n<\/code><\/pre>\n\n\n\nAll-in-one OpenStack is now up and running.<\/p>\n\n\n\n
Install OpenStack command line administration tools. You can do this from the virtual environment.<\/p>\n\n\n\n
source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\npip install python-openstackclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\npip install python-neutronclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\npip install python-glanceclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\npip install python-heatclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\nGenerate OpenStack Admin Credentials<\/h4>\n\n\n\n
Generate OpenStack admin user credentials file (openrc<\/code>) using the command below<\/p>\n\n\n\nkolla-ansible post-deploy<\/pre>\n\n\n\nThis command generates the admin credentials file, \/etc\/kolla\/admin-openrc.sh<\/code>.<\/p>\n\n\n\nTo be able to use OpenStack command line tools, you need to activate the credentials using the command below;<\/p>\n\n\n\n
source \/etc\/kolla\/admin-openrc.sh<\/pre>\n\n\n\nYou can now administer OpenStack from cli. For example, to list the currently enabled services;<\/p>\n\n\n\n
openstack service list<\/pre>\n\n\n\n+----------------------------------+-----------+----------------+\n| ID | Name | Type |\n+----------------------------------+-----------+----------------+\n| 0f263a1ae9434366b99e426c1c8abbe9 | glance | image |\n| 33f79492fb1e43db867a1da30b871f58 | gnocchi | metric |\n| 734aec8dcb2a4a0aa05de6a2c1a122df | heat-cfn | cloudformation |\n| 85b2d1bf703148889c0bd5a4f8092d5b | nova | compute |\n| 88f54f6b8d95430a947eb77a2b5df010 | heat | orchestration |\n| 8b583e0f6658454882e39364f71c61ae | aodh | alarming |\n| a8ce69c985664a7fbaebb0207c8db850 | neutron | network |\n| de1ac58938bc41b19ddf3cc7c60020af | cinderv3 | volumev3 |\n| efeb82a116174c94a84402795b1896db | keystone | identity |\n| f03b2a2915094d61a7458681c5d54a97 | placement | placement |\n+----------------------------------+-----------+----------------+\n<\/code><\/pre>\n\n\n\nInitialize OpenStack [Optional]<\/h4>\n\n\n\n
There is an OPTIONAL<\/strong> script that you can execute to initialize OpenStack by creating example networks, images, nova keys using init-runonce<\/code> script. The script downloads a cirros image and registers it. Then it configures networking and nova quotas to allow 40 m1.small instances to be created.<\/p>\n\n\n\nIf you want to use this script, then update your networking by editing the init-runonce<\/code> script and configure your public network,that you want to connect to the internet via.<\/p>\n\n\n\nvim kolla-openstack\/share\/kolla-ansible\/init-runonce<\/pre>\n\n\n\n...\nENABLE_EXT_NET=${ENABLE_EXT_NET:-1}\nEXT_NET_CIDR=${EXT_NET_CIDR:-'192.168.122.0\/24<\/strong>'}\nEXT_NET_RANGE=${EXT_NET_RANGE:-'start=192.168.122.50,end=192.168.122.80<\/strong>'}\nEXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'192.168.122.1<\/strong>'}\n<\/code><\/pre>\n\n\n\nWhere:<\/p>\n\n\n\n
\nENABLE_EXT_NET<\/code>: This variable controls whether or not the external network is enabled. If this variable is set to 0, the external network will not be enabled.<\/li>\n\n\n\nEXT_NET_CIDR<\/code>: This variable specifies the CIDR block for the external network. The CIDR block is a way of specifying a range of IP addresses.<\/li>\n\n\n\nEXT_NET_RANGE<\/code>: This variable specifies the range of IP addresses that are available for the external network. The range of IP addresses is specified using the start<\/code> and