{"id":18682,"date":"2023-09-07T20:11:01","date_gmt":"2023-09-07T17:11:01","guid":{"rendered":"https:\/\/kifarunix.com\/?p=18682"},"modified":"2024-07-28T11:28:47","modified_gmt":"2024-07-28T08:28:47","slug":"deploy-all-in-one-openstack-with-kolla-ansible-on-ubuntu-22-04","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/deploy-all-in-one-openstack-with-kolla-ansible-on-ubuntu-22-04\/","title":{"rendered":"Deploy All-in-One OpenStack with Kolla-Ansible on Ubuntu 22.04"},"content":{"rendered":"\n<p>In this guide, you will to learn how to deploy all-in-one OpenStack with <a href=\"https:\/\/opendev.org\/openstack\/kolla-ansible\" target=\"_blank\" rel=\"noreferrer noopener\">Kolla-Ansible<\/a> on Ubuntu 22.04. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default td_pull_quote td_pull_center is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Kolla provides Docker containers and Ansible playbooks to meet Kolla\u2019s mission. Kolla\u2019s mission is to provide production-ready containers and deployment tools for operating OpenStack clouds. It allows the operators with minimal experience to deploy OpenStack quickly and as experience grows modify the OpenStack configuration to suit the operator\u2019s exact requirements.<\/p>\n<\/blockquote>\n\n\n\n<p>The current Kolla-Ansible <a href=\"https:\/\/docs.openstack.org\/releasenotes\/kolla-ansible\/\" target=\"_blank\" rel=\"noopener\">release<\/a> as of this guide update is <strong>2024.1<\/strong>. Kolla Ansible releases basically matches the <a href=\"https:\/\/releases.openstack.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenStack releases<\/a>. We will therefore install the current stable release version of OpenStack, <a href=\"https:\/\/releases.openstack.org\/caracal\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">2024.1 Caracal<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li class=\"\"><a href=\"#using-kolla-ansible-to-deploy-all-in-one-open-stack\">Using Kolla-Ansible to Deploy All-In-One OpenStack<\/a><ul><li class=\"\"><a href=\"#system-requirements\">System Requirements<\/a><\/li><li class=\"\"><a href=\"#install-required-packages-on-ubuntu-22-04\">Install Required Packages on Ubuntu 22.04<\/a><\/li><li class=\"\"><a href=\"#create-a-virtual-environment-for-deploying-kolla-ansible\">Create a virtual environment for deploying Kolla-ansible<\/a><\/li><li class=\"\"><a href=\"#upgrade-python-pip\">Upgrade Python PIP<\/a><\/li><li class=\"\"><a href=\"#install-ansible-on-ubuntu-22-04\">Install Ansible on Ubuntu 22.04<\/a><\/li><li class=\"\"><a href=\"#create-ansible-configuration-file\">Create Ansible Configuration file<\/a><\/li><li class=\"\"><a href=\"#install-kolla-ansible-on-ubuntu-22-04\">Install Kolla-ansible on Ubuntu 22.04<\/a><\/li><li class=\"\"><a href=\"#configure-kolla-ansible-for-all-in-one-open-stack-deployment\">Configure Kolla-ansible for All-in-one OpenStack Deployment<\/a><\/li><li class=\"\"><a href=\"#define-kolla-ansible-global-deployment-options\">Define Kolla-Ansible Global Deployment Options<\/a><\/li><li class=\"\"><a href=\"#generate-kolla-passwords\">Generate Kolla Passwords<\/a><\/li><li class=\"\"><a href=\"#configure-all-in-one-open-stack-deployment-inventory\">Configure All-in-one OpenStack deployment Inventory<\/a><\/li><li class=\"\"><a href=\"#using-kolla-ansible-to-deploy-all-in-one-open-stack-on-ubuntu-22-04\">Using Kolla-Ansible to Deploy All-In-One OpenStack on Ubuntu 22.04<\/a><ul><li class=\"\"><a href=\"#install-ansible-galaxy-requirements\">Install Ansible Galaxy requirements<\/a><\/li><li class=\"\"><a href=\"#bootstrap-kolla-ansible-nodes\">Bootstrap Kolla-Ansible Nodes<\/a><\/li><li class=\"\"><a href=\"#deploy-aio-open-stack-with-kolla-ansible\">Deploy AIO OpenStack with Kolla-Ansible<\/a><\/li><\/ul><\/li><li class=\"\"><a href=\"#all-in-one-open-stack-post-deployment-tasks\">All-in-one OpenStack Post Deployment Tasks<\/a><ul><li class=\"\"><a href=\"#add-kolla-ansible-deployment-user-to-docker-group\">Add Kolla-Ansible Deployment User to Docker Group<\/a><\/li><li class=\"\"><a href=\"#list-running-open-stack-docker-containers\">List Running OpenStack Docker Containers<\/a><\/li><li class=\"\"><a href=\"#install-open-stack-command-line-tools\">Install OpenStack Command Line tools<\/a><\/li><li class=\"\"><a href=\"#generate-open-stack-admin-credentials\">Generate OpenStack Admin Credentials<\/a><\/li><li class=\"\"><a href=\"#initialize-open-stack-optional\">Initialize OpenStack [Optional]<\/a><\/li><\/ul><\/li><li class=\"\"><a href=\"#re-configuring-the-stack\">Re-configuring the Stack<\/a><\/li><\/ul><\/li><li class=\"\"><a href=\"#accessing-open-stack-web-interface-horizon\">Accessing OpenStack Web Interface (Horizon)<\/a><ul><li class=\"\"><a href=\"#open-stack-images\">OpenStack Images<\/a><\/li><li class=\"\"><a href=\"#open-stack-image-flavors\">OpenStack Image Flavors<\/a><\/li><li class=\"\"><a href=\"#open-stack-networks\">OpenStack Networks<\/a><\/li><li class=\"\"><a href=\"#launch-open-stack-instance\">Launch OpenStack Instance<\/a><\/li><li class=\"\"><a href=\"#further-reading\">Further Reading<\/a><\/li><li class=\"\"><a href=\"#reference\">Reference<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"using-kolla-ansible-to-deploy-all-in-one-open-stack\">Using Kolla-Ansible to Deploy All-In-One OpenStack<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"system-requirements\">System Requirements<\/h3>\n\n\n\n<p>Below are the recommended minimum requirements for deploying AIO OpenStack with Kolla-Ansible:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2 (or more) network interfaces.<\/li>\n\n\n\n<li>At least 8gb main memory<\/li>\n\n\n\n<li>At least 40gb disk space (We will use 150G in this guide)<\/li>\n<\/ul>\n\n\n\n<p>Below are our deployment system specifics;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Interfaces<\/strong><\/td><td>2 network interfaces:<br><strong>enp1s0<\/strong>: 192.168.122.100\/24<br><strong>enp2s0<\/strong>: no assigned IP address<\/td><\/tr><tr><td><strong>RAM<\/strong><\/td><td>16 GB<\/td><\/tr><tr><td><strong>vCPUs<\/strong><\/td><td>4<\/td><\/tr><tr><td><strong>Storage<\/strong><\/td><td>\/dev\/vda (root filesystem, \/): 100 GB<br>\/dev\/vdb (Volume group, cinder): 100 GB<\/td><\/tr><tr><td><strong>Virtualization Platform<\/strong><\/td><td>KVM<\/td><\/tr><tr><td><strong>Operating System<\/strong><\/td><td>Ubuntu 22.04 LTS<\/td><\/tr><tr><td><strong>User<\/strong><\/td><td>non root user with passwordless sudo rights<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>You can provide as much resources since the more resources you have the better the performance of the stack.<\/p>\n\n\n\n<p><strong>NOTE: We are running the installation as non root user with sudo privileges.<\/strong><\/p>\n\n\n\n<p>We are running Kolla-ansible deployment using the <strong>kifarunix<\/strong> user with <strong>passwordless<\/strong> sudo rights;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/etc\/sudoers.d\/kifarunix<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kifarunix ALL = NOPASSWD: ALL<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-required-packages-on-ubuntu-22-04\">Install Required Packages on Ubuntu 22.04<\/h3>\n\n\n\n<p>Before you can proceed, there are a number of required packages that needs to be installed.<\/p>\n\n\n\n<p>Update and upgrade your system packages<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt update<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt upgrade<\/pre>\n\n\n\n<p>Reboot the system if required;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91; -f \/var\/run\/reboot-required ] &amp;&amp; sudo systemctl reboot<\/code><\/pre>\n\n\n\n<p>Install the required packages;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install git python3-dev libffi-dev python3-venv gcc libssl-dev git python3-pip python3-full<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-a-virtual-environment-for-deploying-kolla-ansible\">Create a virtual environment for deploying Kolla-ansible<\/h3>\n\n\n\n<p>To avoid conflict between system packages and Kolla-ansible packages, it is recommended that Kolla-ansible be installed in a python virtual environment (virtualenv).<\/p>\n\n\n\n<p>You can create a python virtual environment by executing the command below. Be sure to replace the path to your virtual environment.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">python3 -m venv $HOME\/kolla-openstack<\/pre>\n\n\n\n<p>Next, activate your virtual environment;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\n<p>Once you activate the Kolla-ansible virtual environment, you shell prompt should change. See my shell prompt;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>(kolla-openstack)<\/strong> kifarunix@kolla-ansible:~$<\/pre>\n\n\n\n<p>To exit the virtual environment, run;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>deactivate<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"upgrade-python-pip\">Upgrade Python PIP<\/h3>\n\n\n\n<p>Upgrade pip;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source $HOME\/kolla-openstack\/bin\/activate<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">pip install -U pip<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-ansible-on-ubuntu-22-04\">Install Ansible on Ubuntu 22.04<\/h3>\n\n\n\n<p>Install Ansible from the virtual environment. If you ever log out of the virtual environment, you can always source the path to activate it;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\n<p>Next, install Ansible. As of this guide update, Kolla Ansible 2024.1 requires at least Ansible 8 (or ansible-core 2.15) and supports up to 9 (or ansible-core 2.16).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip install 'ansible>=8,&lt;9'<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-ansible-configuration-file\">Create Ansible Configuration file<\/h3>\n\n\n\n<p>Create an Ansible configuration file on your home directory with the following tunables;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vim $HOME\/ansible.cfg<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;defaults]\nhost_key_checking=False\npipelining=True\nforks=100<\/code><\/pre>\n\n\n\n<p>This defines the default settings to apply to Ansible.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code><strong>host_key_checking=False<\/strong><\/code>: This setting disables host key checking for SSH connections. When <code>host_key_checking<\/code> is set to <code>False<\/code>, Ansible will not prompt for confirmation when connecting to new SSH hosts for the first time. You may want to enable this though!<\/li>\n\n\n\n<li><code><strong>pipelining=True<\/strong><\/code>: Enabling pipelining allows Ansible to execute tasks in a more efficient way. When pipelining is enabled, Ansible sends multiple commands to a target host in a single SSH session, reducing the overhead of opening and closing SSH connections for each task. This can improve playbook execution performance.<\/li>\n\n\n\n<li><code><strong>forks=100<\/strong><\/code>: This setting specifies the maximum number of parallel processes or &#8220;forks&#8221; that Ansible can use when executing tasks across multiple hosts. In this case, it&#8217;s set to 100, meaning that Ansible can run up to 100 tasks concurrently. The appropriate value for <code>forks<\/code> depends on your system&#8217;s resources and the scale of your infrastructure. It&#8217;s crucial to choose a value that balances performance and resource utilization. Setting it too high can strain your system, while setting it too low may slow down playbook execution.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-kolla-ansible-on-ubuntu-22-04\">Install Kolla-ansible on Ubuntu 22.04<\/h3>\n\n\n\n<p>Install Kolla-ansible, along side all required dependencies on Ubuntu 22.04 using pip from the virtual environment above;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\n<p>The command below installs current stable version of Kolla-Ansible, as of this guide update. Be sure to update the command accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pip install git+https:\/\/opendev.org\/openstack\/kolla-ansible@stable\/2024.1<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-kolla-ansible-for-all-in-one-open-stack-deployment\">Configure Kolla-ansible for All-in-one OpenStack Deployment<\/h3>\n\n\n\n<p>Next, create Kolla configuration directory;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo mkdir \/etc\/kolla<\/pre>\n\n\n\n<p>Update the ownership of the Kolla configuration directory to the user with which you activated Kolla-ansible deployment virtual environment as.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo chown $USER:$USER \/etc\/kolla<\/pre>\n\n\n\n<p>Copy the main Kolla configuration file, <code><strong>globals.yml<\/strong><\/code> and the OpenStack services passwords file, <code><strong>passwords.yml<\/strong><\/code> into the Kolla configuration directory above from the <strong>virtual environment<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp $HOME\/kolla-openstack\/share\/kolla-ansible\/etc_examples\/kolla\/* \/etc\/kolla\/<\/pre>\n\n\n\n<p>Copy Kolla-ansible deployment inventory to the current working directory. In this tutorial, we are deploying <strong>all-in-one<\/strong> OpenStack with Kolla-ansible. Hence, copy the all-in-one ansible inventory file.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp $HOME\/kolla-openstack\/share\/kolla-ansible\/ansible\/inventory\/all-in-one .<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"define-kolla-ansible-global-deployment-options\">Define Kolla-Ansible Global Deployment Options<\/h3>\n\n\n\n<p>Open the<code> globals.yml<\/code> configuration file and define the AIO Kolla global deployment options;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vim \/etc\/kolla\/globals.yml<\/pre>\n\n\n\n<p>Update the configuration as per your environment setup. Some of the services we enabled are not actually necessary. Be sure to enable what you really need!<\/p>\n\n\n\n<p>Below are the  basic options that we enabled for our AIO OpenStack deployment.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/etc\/kolla\/globals.yml<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>---\n###################\n# Ansible options\n###################\nworkaround_ansible_issue_8743: yes\n\n###############\n# Kolla options\n###############\nconfig_strategy: \"COPY_ALWAYS\"\nkolla_base_distro: \"ubuntu\"\nopenstack_release: \"2024.1\"\nkolla_internal_vip_address: \"192.168.122.100\"\nkolla_internal_fqdn: \"{{ kolla_internal_vip_address }}\"\nkolla_external_vip_address: \"{{ kolla_internal_vip_address }}\"\nkolla_external_fqdn: \"{{ kolla_external_vip_address }}\"\n##################\n# Container engine\n##################\n\n# Valid options are [ docker, podman ]\nkolla_container_engine: docker\n\n################\n# Docker options\n################\ndocker_configure_for_zun: \"yes\"\ncontainerd_configure_for_zun: \"yes\"\n\n##############################\n# Neutron - Networking Options\n##############################\nnetwork_interface: \"enp1s0\"\nneutron_external_interface: \"enp2s0\"\nneutron_plugin_agent: \"openvswitch\"\nneutron_enable_rolling_upgrade: \"yes\"\n\n###################\n# OpenStack options\n###################\nenable_openstack_core: \"yes\"\nenable_glance: \"{{ enable_openstack_core | bool }}\"\nenable_hacluster: \"no\"\nenable_haproxy: \"no\"\nenable_keystone: \"{{ enable_openstack_core | bool }}\"\nenable_mariadb: \"yes\"\nenable_memcached: \"yes\"\nenable_neutron: \"{{ enable_openstack_core | bool }}\"\nenable_nova: \"{{ enable_openstack_core | bool }}\"\nenable_aodh: \"yes\"\nenable_ceilometer: \"yes\"\nenable_cinder: \"yes\"\nenable_cinder_backend_lvm: \"yes\"\nenable_gnocchi: \"yes\"\nenable_gnocchi_statsd: \"yes\"\nenable_grafana: \"yes\"\nenable_heat: \"{{ enable_openstack_core | bool }}\"\nenable_horizon: \"{{ enable_openstack_core | bool }}\"\nenable_horizon_heat: \"{{ enable_heat | bool }}\"\nenable_horizon_watcher: \"{{ enable_watcher | bool }}\"\nenable_horizon_zun: \"{{ enable_zun | bool }}\"\nenable_kuryr: \"yes\"\nenable_nova_ssh: \"yes\"\nenable_opensearch: \"{{ enable_central_logging | bool or enable_osprofiler | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'elasticsearch') }}\"\nenable_opensearch_dashboards: \"{{ enable_opensearch | bool }}\"\nenable_osprofiler: \"yes\"\nenable_placement: \"{{ enable_nova | bool or enable_zun | bool }}\"\nenable_prometheus: \"yes\"\nenable_watcher: \"yes\"\nenable_zun: \"yes\"\n################################\n# Cinder - Block Storage Options\n################################\ncinder_volume_group: \"cinder\"\n<\/code><\/pre>\n\n\n\n<p><strong>Note that we enabled cinder block storage for OpenStack and defined the name of the existing volume group.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo vgs<\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>  VG        #PV #LV #SN Attr   VSize    VFree   \n  <strong>cinder<\/strong>      1   0   0 wz--n- <100.00g <100.00g\n  ubuntu-vg   1   1   0 wz--n-  <98.00g\n<\/code><\/pre>\n\n\n\n<p>Refer to <a href=\"https:\/\/docs.openstack.org\/\/kolla-ansible\/latest\/doc-kolla-ansible.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Kolla-ansible documentation guide<\/a> to learn more about the global options used above. The configuration is also highly commented. Go through the comments for each option to learn what it is about a specific option.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"generate-kolla-passwords\">Generate Kolla Passwords<\/h3>\n\n\n\n<p>Kolla <code><strong>passwords.yml<\/strong><\/code> configuration file stores various OpenStack services passwords. You can automatically generate the password using the Kolla-ansible <code>kolla-genpwd<\/code> in your virtual environment.<\/p>\n\n\n\n<p>Ensure that your virtual environment is activated<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\n<p>Next, generate the passwords;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-genpwd<\/pre>\n\n\n\n<p>All generated passwords will be populated to <code><strong>\/etc\/kolla\/passwords.yml<\/strong><\/code> file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-all-in-one-open-stack-deployment-inventory\">Configure All-in-one OpenStack deployment Inventory<\/h3>\n\n\n\n<p>You now have your deployment inventory in place.<\/p>\n\n\n\n<p>Since we are running an all-in-one deployment, we will leave all the default options defined on the <code><strong>all-in-one<\/strong><\/code> inventory file as is.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat all-in-one<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code># 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\n<h3 class=\"wp-block-heading\" id=\"using-kolla-ansible-to-deploy-all-in-one-open-stack-on-ubuntu-22-04\">Using Kolla-Ansible to Deploy All-In-One OpenStack on Ubuntu 22.04<\/h3>\n\n\n\n<p>Since everything is setup, you can now start to deploy OpenStack using Kolla-ansible playbooks.<\/p>\n\n\n\n<p><strong>Again, ensure that your virtual environment is activated.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-ansible-galaxy-requirements\">Install Ansible Galaxy requirements<\/h4>\n\n\n\n<p>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<p>To install them, run the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kolla-ansible install-deps<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"bootstrap-kolla-ansible-nodes\">Bootstrap Kolla-Ansible Nodes<\/h4>\n\n\n\n<p>Bootstrap your localhost configuration before deploying containers using <code><strong>bootstrap-servers<\/strong><\/code> sub-command.<\/p>\n\n\n\n<p>This is what the bootstrap command do;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Customization of&nbsp;<code>\/etc\/hosts<\/code><\/li>\n\n\n\n<li>Creation of user and group<\/li>\n\n\n\n<li>Kolla configuration directory<\/li>\n\n\n\n<li>Package installation and removal<\/li>\n\n\n\n<li>Docker engine installation and configuration<\/li>\n\n\n\n<li>Disabling firewalls<\/li>\n\n\n\n<li>Creation of Python virtual environment<\/li>\n\n\n\n<li>Configuration of Apparmor<\/li>\n\n\n\n<li>Configuration of NTP daemon<\/li>\n\n\n\n<li>e.t.c<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-ansible -i all-in-one bootstrap-servers<\/pre>\n\n\n\n<p>Below is a sample output of the bootstrapping command;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>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\n<h4 class=\"wp-block-heading\" id=\"deploy-aio-open-stack-with-kolla-ansible\">Deploy AIO OpenStack with Kolla-Ansible<\/h4>\n\n\n\n<p>Run pre-deployment checks for host;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-ansible -i all-in-one prechecks<\/pre>\n\n\n\n<p>If everything is fine, proceed to deploy all-in-one OpenStack with Kolla-ansible;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-ansible -i all-in-one deploy<\/pre>\n\n\n\n<p>The process might take a while as it involves building containers for different OpenStack services.<\/p>\n\n\n\n<p>If all ends well, you should get 0 failed tasks;<\/p>\n\n\n\n<pre class=\"scroll-sz\"><code>...\nPLAY RECAP *************************************************************************************************************************************************************************\nlocalhost                  : ok=495  changed=343  unreachable=0    failed=0    skipped=223  rescued=0    ignored=1\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"all-in-one-open-stack-post-deployment-tasks\">All-in-one OpenStack Post Deployment Tasks<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"add-kolla-ansible-deployment-user-to-docker-group\">Add Kolla-Ansible Deployment User to Docker Group<\/h4>\n\n\n\n<p>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<pre class=\"wp-block-code\"><code>sudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<p>To 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<p>So just press <strong>ctrl+d<\/strong> or just type <strong>exit<\/strong> on the terminal to exit and re-login.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"list-running-open-stack-docker-containers\">List Running OpenStack Docker Containers<\/h4>\n\n\n\n<p>Once the deployment is done, you can list running OpenStack docker containers.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>CONTAINER 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\n<p>All-in-one OpenStack is now up and running.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-open-stack-command-line-tools\">Install OpenStack Command Line tools<\/h4>\n\n\n\n<p>Install OpenStack command line administration tools. You can do this from the virtual environment.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source $HOME\/kolla-openstack\/bin\/activate<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install python-openstackclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install python-neutronclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install python-glanceclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install python-heatclient -c https:\/\/releases.openstack.org\/constraints\/upper\/2024.1<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"generate-open-stack-admin-credentials\">Generate OpenStack Admin Credentials<\/h4>\n\n\n\n<p>Generate OpenStack admin user credentials file (<code>openrc<\/code>) using the command below<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-ansible post-deploy<\/pre>\n\n\n\n<p>This command generates the admin credentials file, <code>\/etc\/kolla\/admin-openrc.sh<\/code>.<\/p>\n\n\n\n<p>To be able to use OpenStack command line tools, you need to activate the credentials using the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source \/etc\/kolla\/admin-openrc.sh<\/pre>\n\n\n\n<p>You can now administer OpenStack from cli. For example, to list the currently enabled services;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">openstack service list<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>+----------------------------------+-----------+----------------+\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\n<h4 class=\"wp-block-heading\" id=\"initialize-open-stack-optional\">Initialize OpenStack [Optional]<\/h4>\n\n\n\n<p>There is an <strong>OPTIONAL<\/strong> script that you can execute to initialize OpenStack by creating example networks, images, nova keys using <code>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\n<p>If you want to use this script, then update your networking by editing the <code>init-runonce<\/code> script and configure your public network,that you want to connect to the internet via.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">vim kolla-openstack\/share\/kolla-ansible\/init-runonce<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>...\nENABLE_EXT_NET=${ENABLE_EXT_NET:-1}\nEXT_NET_CIDR=${EXT_NET_CIDR:-'<strong>192.168.122.0\/24<\/strong>'}\nEXT_NET_RANGE=${EXT_NET_RANGE:-'start=<strong>192.168.122.50,end=192.168.122.80<\/strong>'}\nEXT_NET_GATEWAY=${EXT_NET_GATEWAY:-'<strong>192.168.122.1<\/strong>'}\n<\/code><\/pre>\n\n\n\n<p>Where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>ENABLE_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\n<li><code>EXT_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\n<li><code>EXT_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&nbsp;<code>start<\/code>&nbsp;and&nbsp;<code>end<\/code>&nbsp;parameters.<\/li>\n\n\n\n<li><code>EXT_NET_GATEWAY<\/code>: This variable specifies the gateway for the external network. The gateway is the IP address of the router that connects the external network to the internet.<\/li>\n<\/ul>\n\n\n\n<p>Next, run the script from the virtual environment.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source $HOME\/kolla-openstack\/bin\/activate<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-openstack\/share\/kolla-ansible\/init-runonce<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>...\n+----------------------------+----------+\n| Field                      | Value    |\n+----------------------------+----------+\n| OS-FLV-DISABLED:disabled   | False    |\n| OS-FLV-EXT-DATA:ephemeral  | 0        |\n| description                | None     |\n| disk                       | 80       |\n| id                         | 4        |\n| name                       | m1.large |\n| os-flavor-access:is_public | True     |\n| properties                 |          |\n| ram                        | 8192     |\n| rxtx_factor                | 1.0      |\n| swap                       |          |\n| vcpus                      | 4        |\n+----------------------------+----------+\n+----------------------------+-----------+\n| Field                      | Value     |\n+----------------------------+-----------+\n| OS-FLV-DISABLED:disabled   | False     |\n| OS-FLV-EXT-DATA:ephemeral  | 0         |\n| description                | None      |\n| disk                       | 160       |\n| id                         | 5         |\n| name                       | m1.xlarge |\n| os-flavor-access:is_public | True      |\n| properties                 |           |\n| ram                        | 16384     |\n| rxtx_factor                | 1.0       |\n| swap                       |           |\n| vcpus                      | 8         |\n+----------------------------+-----------+\n\nDone.\n\nTo deploy a demo instance, run:\n\nopenstack --os-cloud=kolla-admin server create \\\n    --image cirros \\\n    --flavor m1.tiny \\\n    --key-name mykey \\\n    --network demo-net \\\n    demo1\n<\/code><\/pre>\n\n\n\n<p>Once done, you can confirm some of the things,e.g list networks created so far;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source \/etc\/kolla\/admin-openrc.sh<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>openstack network list<\/code><\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>+--------------------------------------+----------+--------------------------------------+\n| ID                                   | Name     | Subnets                              |\n+--------------------------------------+----------+--------------------------------------+\n| 709e152e-88b5-4283-9697-43c004a8db52 | public1  | 14b9dffb-e424-4e41-ac12-6ea91a1939f9 |\n| 75b0cb7e-eeec-4dce-b855-169db18dcb7d | demo-net | b27c2a65-1e52-4c55-808a-09b5fa17965e |\n+--------------------------------------+----------+--------------------------------------+\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"re-configuring-the-stack\">Re-configuring the Stack<\/h3>\n\n\n\n<p>If you want to reconfigure the stack by adding or removing services, edit the globals.yml configuration file and re-deploy the changes from the virtual environment.<\/p>\n\n\n\n<p>For example, after making changes on the globals.yaml config file, reconfigure the stack;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">source \/path\/to\/virtual-environment\/bin\/activate<\/pre>\n\n\n\n<p>The redeploy the changes;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">kolla-ansible -i all-in-one&nbsp;reconfigure<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"accessing-open-stack-web-interface-horizon\">Accessing OpenStack Web Interface (Horizon)<\/h2>\n\n\n\n<p>So far so good! OpenStack is up and running. It is time we login to the web interface.<\/p>\n\n\n\n<p>First, check the OpenStack IP address (the Kolla VIP address, we set it before to our node ).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ip add show enp1s0<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link\/ether 52:54:00:fd:a1:24 brd ff:ff:ff:ff:ff:ff\n    inet <strong>192.168.122.100\/24<\/strong> brd 192.168.122.255 scope global enp1s0\n       valid_lft forever preferred_lft forever\n    inet6 fe80::5054:ff:fefd:a124\/64 scope link \n       valid_lft forever preferred_lft forever\n<\/code><\/pre>\n\n\n\n<p>So, <strong>192.168.122.100<\/strong>, is the IP address with which we access OpenStack from the external browser.<\/p>\n\n\n\n<p>Therefore, to access the OpenStack Horizon from the browser, use the address, <code><strong>http:\/\/192.168.122.100<\/strong><\/code>.<\/p>\n\n\n\n<p>.This should take you to OpenStack web interface login page;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1409\" height=\"718\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-horizon-login-page.png\" alt=\"Deploy All-In-One OpenStack with Kolla-Ansible on Ubuntu 22.04\" class=\"wp-image-18690\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-horizon-login-page.png?v=1694080032 1409w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-horizon-login-page-768x391.png?v=1694080032 768w\" sizes=\"(max-width: 1409px) 100vw, 1409px\" \/><\/figure>\n\n\n\n<p>Login using <code><strong>admin<\/strong><\/code> as the username.<\/p>\n\n\n\n<p>You can obtain the admin credentials from the Kolla passwords file, <code>\/etc\/kolla\/passwords.yml<\/code>. For the Horizon authentication, you need to the Keystone admin password.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">grep keystone_admin_password \/etc\/kolla\/passwords.yml<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">keystone_admin_password: NWKXF22j9DvXq3HCtBijGcjw8pjUfWtIqWpoM7LV<\/pre>\n\n\n\n<p>When you successfully log in, you land on OpenStack horizon dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1457\" height=\"1149\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/Instance-Overview-OpenStack-Dashboard.png\" alt=\"\" class=\"wp-image-18691\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/Instance-Overview-OpenStack-Dashboard.png?v=1694080443 1457w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/Instance-Overview-OpenStack-Dashboard-768x606.png?v=1694080443 768w\" sizes=\"(max-width: 1457px) 100vw, 1457px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"open-stack-images\">OpenStack Images<\/h3>\n\n\n\n<p>We already have cirros image registered (<strong><code>Admin &gt; Compute &gt; Images<\/code><\/strong>). You can also check from Project section.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1473\" height=\"644\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-images.png\" alt=\"\" class=\"wp-image-18694\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-images.png?v=1694103028 1473w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-images-768x336.png?v=1694103028 768w\" sizes=\"(max-width: 1473px) 100vw, 1473px\" \/><\/figure>\n\n\n\n<p>You can list images in the command line using the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source $HOME\/kolla-openstack\/bin\/activate<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>source \/etc\/kolla\/admin-openrc.sh<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>openstack image list<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>+--------------------------------------+--------+--------+\n| ID                                   | Name   | Status |\n+--------------------------------------+--------+--------+\n| 65fbea4f-821e-4f18-a6cc-4b46fcdcf1a6 | cirros | active |\n+--------------------------------------+--------+--------+\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"open-stack-image-flavors\">OpenStack Image Flavors<\/h3>\n\n\n\n<p>We also have different flavors of the cirros image created;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1473\" height=\"619\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-image-flavors.png\" alt=\"\" class=\"wp-image-18695\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-image-flavors.png?v=1694103036 1473w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-image-flavors-768x323.png?v=1694103036 768w\" sizes=\"(max-width: 1473px) 100vw, 1473px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"open-stack-networks\">OpenStack Networks<\/h3>\n\n\n\n<p>Example networks (<strong><code>Admin &gt; Network &gt; Networks<\/code><\/strong>) created. You can also check from Project section.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1474\" height=\"520\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-networks.png\" alt=\"\" class=\"wp-image-18696\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-networks.png?v=1694103046 1474w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-networks-768x271.png?v=1694103046 768w\" sizes=\"(max-width: 1474px) 100vw, 1474px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"launch-open-stack-instance\">Launch OpenStack Instance<\/h3>\n\n\n\n<p>To create and launch an instance, navigate to <strong>Project &gt; Compute &gt; Instances<\/strong>. Click <strong>Launch Instance<\/strong>.<\/p>\n\n\n\n<p>Set the details of the instance, set the source image, the flavor, the networks and other settings.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1476\" height=\"775\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/launch-openstack-instance-details.png\" alt=\"\" class=\"wp-image-18697\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/launch-openstack-instance-details.png?v=1694103053 1476w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/launch-openstack-instance-details-768x403.png?v=1694103053 768w\" sizes=\"(max-width: 1476px) 100vw, 1476px\" \/><\/figure><\/div>\n\n\n<p>Click <strong>Launch Instance<\/strong> when done.<\/p>\n\n\n\n<p>The instance takes a few mins to create.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1470\" height=\"659\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/launching-openstack-instance.png\" alt=\"\" class=\"wp-image-18699\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/launching-openstack-instance.png?v=1694103182 1470w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/launching-openstack-instance-768x344.png?v=1694103182 768w\" sizes=\"(max-width: 1470px) 100vw, 1470px\" \/><\/figure>\n\n\n\n<p>When the instance fully launches, click on its name to see more details including logs, access to console...<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1469\" height=\"836\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-instance-details.png\" alt=\"\" class=\"wp-image-18700\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-instance-details.png?v=1694103483 1469w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/openstack-instance-details-768x437.png?v=1694103483 768w\" sizes=\"(max-width: 1469px) 100vw, 1469px\" \/><\/figure>\n\n\n\n<p>The console;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1465\" height=\"912\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/cirros-console.png\" alt=\"\" class=\"wp-image-18702\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/cirros-console.png?v=1694105436 1465w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/09\/cirros-console-768x478.png?v=1694105436 768w\" sizes=\"(max-width: 1465px) 100vw, 1465px\" \/><\/figure>\n\n\n\n<p>You can as well deploy an instance using OpenStack CLI client;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openstack server create \\\n    --image cirros \\\n    --flavor m1.tiny \\\n    --key-name mykey \\\n    --network demo-net \\\n    inst002<\/code><\/pre>\n\n\n\n<p>You can list key pairs using the command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openstack keys list<\/code><\/pre>\n\n\n\n<p>Check the status of the OpenStack instances;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">openstack server list<\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>+--------------------------------------+-----------------+--------+--------------------+--------------------------+---------+\n| ID                                   | Name            | Status | Networks           | Image                    | Flavor  |\n+--------------------------------------+-----------------+--------+--------------------+--------------------------+---------+\n| 5b8cdb51-44d8-4291-86e1-66729a9ce5ad | cirros-instance | ACTIVE | demo-net=10.0.0.37 | N\/A (booted from volume) | m1.tiny |\n+--------------------------------------+-----------------+--------+--------------------+--------------------------+---------+\n<\/code><\/pre>\n\n\n\n<p>For more OpenStack commands, refer to;<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.openstack.org\/ocata\/user-guide\/cli-cheat-sheet.html\" target=\"_blank\" rel=\"noreferrer noopener\">OpenStack command-line interface cheat sheet<\/a><\/p>\n\n\n\n<p>And that marks the end of our guide on how to use Kolla-Ansible to deploy all-in-one OpenStack on Ubuntu 22.04.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"further-reading\">Further Reading<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/create-and-upload-custom-linux-image-into-openstack\/\">Create and Upload Custom Linux Image into OpenStack<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.openstack.org\/ussuri\/admin\/\" target=\"_blank\" rel=\"noreferrer noopener\">OpenStack Administration guides<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.docker.com\/get-started\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Docker<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reference\">Reference<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.openstack.org\/project-deploy-guide\/kolla-ansible\/latest\/quickstart.html\" target=\"_blank\" rel=\"noreferrer noopener\">OpenStack Kolla-Ansible Quick Start Guide<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this guide, you will to learn how to deploy all-in-one OpenStack with Kolla-Ansible on Ubuntu 22.04. Kolla provides Docker containers and Ansible playbooks to<\/p>\n","protected":false},"author":10,"featured_media":18710,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[1886,1884,992,1885,1076,1077,121,36],"tags":[7234,7232,7233],"class_list":["post-18682","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-openstack","category-ansible","category-automation","category-cloud-compute","category-containers","category-docker","category-howtos","category-virtualization","tag-deploy-single-node-openstack-using-koll-ansible","tag-install-openstack-using-kolla-ansible","tag-kolla-ansible-openstack-all-in-one","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/18682"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=18682"}],"version-history":[{"count":17,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/18682\/revisions"}],"predecessor-version":[{"id":23225,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/18682\/revisions\/23225"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/18710"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=18682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=18682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=18682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}