OpenStack Client Installation
OpenStack Client (OSC) ist ein Befehlszeilen-Client für OpenStack, der den Befehlssatz für Compute, Identity, Image, Object Storage und Block Storage APIs — und über zusätzliche Clients auch Network, Orchestration, DNS, Key Management, Telemetry und Placement — in einer einzigen Shell mit einer einheitlichen Befehlsstruktur zusammenführt.
Diese Seite beschreibt, wie der OSC installiert und konfiguriert wird.
Voraussetzungen
- Grundkenntnisse des Linux Betriebssystems (shell)
- Zugriff auf laufende Linux-VM (In unserem Beispiel Ubuntu) mit ausgehendem HTTPS-Zugriff (TCP 443) auf die OpenStack-API
- Application Credentials und eine passende
clouds.yaml
Beide Regionen
Diese Befehlsfolge gilt für beide Regionen; die Region wird in Schritt 6 gewählt (Region 1 ch-zh1, Region 2 ch-ge1). Die Versionen werden über die upper-constraints.txt aus OpenStack 2025.1 (Epoxy) gepinnt.
1. uv installieren
Installieren Sie uv mit dem offiziellen Skript aus der uv-Installation:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool update-shell
Starten Sie die Shell neu, damit der neue PATH-Eintrag greift — oder übernehmen Sie ihn für die aktuelle Sitzung mit export PATH="$HOME/.local/bin:$PATH" — und prüfen Sie:
uv --version
2. Constraints-Datei laden
Das Release ist OpenStack 2025.1 (Epoxy) — siehe Epoxy Release-Übersicht.
curl -fsSL https://opendev.org/openstack/requirements/raw/branch/stable/2025.1/upper-constraints.txt -o /tmp/upper-constraints-2025.1.txt
Tip
Für wiederholte Upgrades legen Sie die Datei an einem dauerhaften Ort ab (zum Beispiel ~/.config/openstack/upper-constraints-2025.1.txt) und verwenden diesen Pfad in den folgenden Befehlen.
3. Client und Plugins installieren
Bestehende Installationen
Existiert openstack bereits (pipx, pip install --user), entfernen Sie es zuerst (pipx uninstall python-openstackclient) oder lassen Sie uv mit --force installieren. Starten Sie danach eine neue Shell, damit der Befehl auf das neue Binary zeigt.
uv tool install --python 3.12 \
python-openstackclient \
-c "/tmp/upper-constraints-2025.1.txt" \
--with-executables-from gnocchiclient \
--with-executables-from osc-placement \
--with-executables-from python-barbicanclient \
--with-executables-from python-cinderclient \
--with-executables-from python-cloudkittyclient \
--with-executables-from python-designateclient \
--with-executables-from python-glanceclient \
--with-executables-from python-heatclient \
--with-executables-from python-keystoneclient \
--with-executables-from python-mistralclient \
--with-executables-from python-neutronclient \
--with-executables-from python-novaclient \
--with-executables-from python-octaviaclient \
--with-executables-from python-swiftclient
Python 3.12 wird verwendet, weil OpenStack 2025.1 gegen Python 3.9 bis 3.12 getestet ist und Python 3.13 noch nicht unterstützt.
Die über --with-executables-from übergebenen Pakete liefern die Unterbefehle für Barbican, Cinder, CloudKitty, Designate, Glance, Heat, Keystone, Mistral, Neutron, Nova, Octavia, Swift, Gnocchi und Placement.
Alle Clients landen in einem isolierten uv-Tool-Environment — ins System-Python wird nichts installiert.
Kein Custom-Wheel nötig
Port Forwarding ist im 2025.1-Client enthalten.
4. Bash-Completion einrichten
mkdir -p ~/.local/share/bash-completion/completions
openstack complete > ~/.local/share/bash-completion/completions/openstack
Starten Sie die Shell neu. Die Completion wird pro Benutzer geladen, sudo ist dafür nicht nötig.
Note
Diese Completion ist für bash und setzt das Paket bash-completion voraus (Ubuntu/Debian: sudo apt install bash-completion). zsh und fish werden nicht abgedeckt — überspringen Sie den Schritt dort.
5. Installation prüfen
openstack --version # gibt die Client-Version aus (für 2025.1 die 7.x-Reihe)
uv tool list # listet python-openstackclient samt Service-Clients
6. Application Credentials konfigurieren
mkdir -p ~/.config/openstack
# Inhalt der clouds.yaml hier einfügen oder die Datei anlegen mit:
vim ~/.config/openstack/clouds.yaml
# Nur der Eigentümer darf die Datei lesen, sie enthält das Secret
chmod 600 ~/.config/openstack/clouds.yaml
# Standardverbindung und Region festlegen
export OS_CLOUD=openstack
export OS_REGION_NAME=ch-zh1
Region 2
Für ch-ge1 verwenden Sie export OS_REGION_NAME=ch-ge1 oder wählen den Eintrag openstack-ge1 über OS_CLOUD=openstack-ge1 (siehe clouds.yaml-Beispiel). OS_REGION_NAME überschreibt region_name aus der Datei.
Damit die Auswahl in jeder neuen Shell gilt, hängen Sie sie an Ihre ~/.bashrc an:
echo 'export OS_CLOUD=openstack' >> ~/.bashrc
echo 'export OS_REGION_NAME=ch-zh1' >> ~/.bashrc
source ~/.bashrc
Note
OS_CLOUD=openstack bezieht sich auf den Konfigurationsblock in Ihrer Datei clouds.yaml, wobei Sie auch mehrere Blöcke haben können! Falls Sie die Variable OS_CLOUD nicht exportieren, können Sie auch in der Command Line den Cloud Konfigurationsblock mitgeben. Zum Beispiel openstack --os-cloud=openstack image list
Beispiel: clouds.yaml
7. Test der Konfiguration und Konnektivität
openstack image list --public
Sie sehen eine Tabelle mit den Spalten ID, Name und Status. Die Liste hängt von Region und Projekt ab und ist deshalb hier nicht abgedruckt.
Ihr OpenStack-Client funktioniert!
Updates
Das Tool-Environment ist über die Constraints-Datei gepinnt. Für den aktuellen Patch-Stand des Release führen Sie den Installationsbefehl aus Schritt 3 erneut mit derselben Constraints-Datei aus. Erst nach einem Release-Upgrade verwenden Sie eine neue Constraints-Datei.
uv tool upgrade ist dafür nicht nötig und nicht an die Constraints-Datei gebunden; uv tool upgrade --all würde alle mit uv installierten Tools aktualisieren.