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.yamlcorrispondente
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.