Architecture
Architecture​
OpenStack is a bit difficult to understand at first...
First, it's necessary to understand what each component does

It's also possible to observe that creating resources in OpenStack can be done in various ways: via graphical interface, SDK, Terraform, Kubernetes manifests, etc., just like in a cloud.
To communicate with OpenStack we have a CLI (just like AWS CLI and Azure CLI), Horizon which is a graphical component that isn't mandatory in the installation, providers and SDKs used for development.
OpenStack CLI​
Obviously, the OpenStack CLI will need to communicate and point to the OpenStack server to log in and create resources.
To install the CLI, you need to have Python installed. The documentation shows exactly how to do it.
# If you don't have Python
https://pypi.org/project/python-openstackclient/
curl https://pyenv.run | bash
# If using bash change .zshrc to .bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
Using pyenv you can find the most recent Python versions.
pyenv install --list
# To get the latest version
pyenv install --list | grep -v - | grep -v -b | tail -1
# To directly install the latest version
pyenv install $(pyenv install --list | grep -v - | grep -v b | tail -1)
python3 -V
Python 3.10.12
#sudo apt-get install python3-pip
python3 -m pip install --upgrade pip
# Installing the CLI
pip install python-openstackclient
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
openstack --version
openstack 6.4.0