Vai al contenuto

Installazione di OpenStack Client

Il OpenStack Client (OSC) è un client a riga di comando per OpenStack che unifica i set di comandi per le API Compute, Identity, Image, Object Storage e Block Storage, e, tramite client aggiuntivi, Network, Orchestration, DNS, Key Management, Telemetry e Placement, in un'unica shell con una struttura di comandi coerente.

Questa pagina descrive come installare e configurare l'OSC.

Prerequisiti

  • Conoscenze di base del sistema operativo Linux (shell)
  • Accesso a una VM Linux in esecuzione (Ubuntu nel nostro esempio) con accesso HTTPS in uscita (TCP 443) verso l'API OpenStack
  • Application Credentials e un file clouds.yaml corrispondente

Entrambe le regioni

Questa sequenza di comandi si applica a entrambe le regioni; la regione viene selezionata al punto 6 (regione 1 ch-zh1, regione 2 ch-ge1). Le versioni sono bloccate tramite il file upper-constraints.txt di OpenStack 2025.1 (Epoxy).

1. Installare uv

Installi uv con lo script ufficiale di installazione di uv:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool update-shell

Riavvii la shell affinché la nuova voce PATH venga rilevata, oppure la applichi alla sessione corrente con export PATH="$HOME/.local/bin:$PATH", quindi verifichi:

uv --version

2. Caricare il file dei vincoli

La release è OpenStack 2025.1 (Epoxy): consulti la panoramica della release Epoxy.

curl -fsSL https://opendev.org/openstack/requirements/raw/branch/stable/2025.1/upper-constraints.txt -o /tmp/upper-constraints-2025.1.txt

Tip

Per aggiornamenti ripetuti, conservi il file in una posizione permanente (ad esempio ~/.config/openstack/upper-constraints-2025.1.txt) e utilizzi quel percorso nei comandi seguenti.

3. Installare il client e i plugin

Installazioni esistenti

Se openstack esiste già (pipx, pip install --user), lo rimuova prima (pipx uninstall python-openstackclient) oppure lasci che uv installi con --force. Avvii quindi una nuova shell affinché il comando punti al nuovo binario.

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 viene utilizzato perché OpenStack 2025.1 è testato con Python dalla 3.9 alla 3.12 e non supporta ancora Python 3.13.

I pacchetti passati tramite --with-executables-from forniscono i sottocomandi per Barbican, Cinder, CloudKitty, Designate, Glance, Heat, Keystone, Mistral, Neutron, Nova, Octavia, Swift, Gnocchi e Placement.

Tutti i client finiscono in un unico ambiente tool uv isolato: nulla viene installato nel Python di sistema.

Nessuna wheel personalizzata necessaria

Il port forwarding è incluso nel client 2025.1.

4. Configurare il completamento bash

mkdir -p ~/.local/share/bash-completion/completions
openstack complete > ~/.local/share/bash-completion/completions/openstack

Riavvii la shell. Il completamento viene caricato per utente, quindi non è necessario sudo.

Note

Questo completamento è per bash e richiede il pacchetto bash-completion (Ubuntu/Debian: sudo apt install bash-completion). zsh e fish non sono coperti: salti questo passaggio in tal caso.

5. Verificare l'installazione

openstack --version  # prints the client version (7.x series for 2025.1)
uv tool list         # lists python-openstackclient with its service clients

6. Configurare Application Credentials

mkdir -p ~/.config/openstack

# Paste your clouds.yaml content here, or create the file with:
vim ~/.config/openstack/clouds.yaml

# Only the owner may read the file, it contains the secret
chmod 600 ~/.config/openstack/clouds.yaml

# Define default connection and region
export OS_CLOUD=openstack
export OS_REGION_NAME=ch-zh1

Regione 2

Per ch-ge1 utilizzi export OS_REGION_NAME=ch-ge1, oppure selezioni la voce openstack-ge1 con OS_CLOUD=openstack-ge1 (veda l'esempio clouds.yaml). OS_REGION_NAME ha la precedenza sul region_name del file.

Per rendere la selezione persistente tra le shell, la aggiunga al Suo ~/.bashrc:

echo 'export OS_CLOUD=openstack' >> ~/.bashrc
echo 'export OS_REGION_NAME=ch-zh1' >> ~/.bashrc
source ~/.bashrc

Note

OS_CLOUD=openstack fa riferimento al blocco di configurazione nel Suo file clouds.yaml; può avere più blocchi. Se non esporta la variabile OS_CLOUD, può specificare il blocco di configurazione cloud direttamente nella riga di comando. Ad esempio, openstack --os-cloud=openstack image list

Esempio: clouds.yaml

7. Testare la configurazione e la connettività

openstack image list --public

Dovrebbe vedere una tabella con le colonne ID, Name e Status. L'elenco dipende dalla regione e dal progetto, quindi non viene mostrato qui.

Il Suo client OpenStack è operativo!

Aggiornamenti

L'ambiente degli strumenti è bloccato tramite il file dei vincoli. Per il livello di patch corrente della release, esegua di nuovo il comando di installazione del punto 3 con lo stesso file dei vincoli. Utilizzi un nuovo file dei vincoli solo dopo un aggiornamento di release.

uv tool upgrade non è necessario per questo e non è vincolato al file dei vincoli; uv tool upgrade --all aggiornerebbe tutti gli strumenti installati con uv.

Riferimenti