Aller au contenu

Installation de l'OpenStack Client

L'OpenStack Client (OSC) est un client en ligne de commande pour OpenStack qui unifie les jeux de commandes des API Compute, Identity, Image, Object Storage et Block Storage, et, via des clients supplémentaires, Network, Orchestration, DNS, Key Management, Telemetry et Placement, dans un seul shell doté d'une structure de commandes cohérente.

Cette page décrit comment installer et configurer l'OSC.

Prérequis

  • Connaissances de base du système d'exploitation Linux (shell)
  • Accès à une VM Linux en fonctionnement (Ubuntu dans notre exemple) avec un accès HTTPS sortant (TCP 443) vers l'API OpenStack
  • Des Application Credentials et un fichier clouds.yaml correspondant

Les deux régions

Cette séquence de commandes s'applique aux deux régions ; la région est sélectionnée à l'étape 6 (région 1 ch-zh1, région 2 ch-ge1). Les versions sont figées via le fichier upper-constraints.txt d'OpenStack 2025.1 (Epoxy).

1. Installer uv

Installez uv avec le script officiel d'installation de uv :

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

Redémarrez votre shell pour que la nouvelle entrée PATH soit prise en compte, ou appliquez-la à la session en cours avec export PATH="$HOME/.local/bin:$PATH", puis vérifiez :

uv --version

2. Charger le fichier de contraintes

La version est OpenStack 2025.1 (Epoxy) : consultez la présentation de la version Epoxy.

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

Tip

Pour des mises à niveau répétées, conservez le fichier à un emplacement permanent (par exemple ~/.config/openstack/upper-constraints-2025.1.txt) et utilisez ce chemin dans les commandes ci-dessous.

3. Installer le client et les plugins

Installations existantes

Si openstack existe déjà (pipx, pip install --user), supprimez-le d'abord (pipx uninstall python-openstackclient) ou laissez uv installer avec --force. Démarrez ensuite un nouveau shell pour que la commande pointe vers le nouveau binaire.

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 est utilisé parce qu'OpenStack 2025.1 est testé avec Python 3.9 à 3.12 et ne prend pas encore en charge Python 3.13.

Les paquets passés via --with-executables-from fournissent les sous-commandes pour Barbican, Cinder, CloudKitty, Designate, Glance, Heat, Keystone, Mistral, Neutron, Nova, Octavia, Swift, Gnocchi et Placement.

Tous les clients finissent dans un environnement d'outil uv isolé : rien n'est installé dans le Python du système.

Aucune wheel personnalisée nécessaire

Le transfert de port est inclus dans le client 2025.1.

4. Configurer la complétion bash

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

Redémarrez votre shell. La complétion est chargée par utilisateur, donc aucun sudo n'est nécessaire.

Note

Cette complétion concerne bash et nécessite le paquet bash-completion (Ubuntu/Debian : sudo apt install bash-completion). zsh et fish ne sont pas couverts : ignorez cette étape dans ce cas.

5. Vérifier l'installation

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

6. Configurer les 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

Région 2

Pour ch-ge1, utilisez export OS_REGION_NAME=ch-ge1, ou sélectionnez l'entrée openstack-ge1 avec OS_CLOUD=openstack-ge1 (voir l'exemple clouds.yaml). OS_REGION_NAME remplace le region_name du fichier.

Pour rendre la sélection persistante entre les shells, ajoutez-la à votre ~/.bashrc :

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

Note

OS_CLOUD=openstack fait référence au bloc de configuration de votre fichier clouds.yaml ; vous pouvez avoir plusieurs blocs. Si vous n'exportez pas la variable OS_CLOUD, vous pouvez spécifier le bloc de configuration cloud directement sur la ligne de commande. Par exemple, openstack --os-cloud=openstack image list

Exemple : clouds.yaml

7. Tester la configuration et la connectivité

openstack image list --public

Vous devriez voir un tableau avec les colonnes ID, Name et Status. La liste dépend de la région et du projet, elle n'est donc pas affichée ici.

Votre client OpenStack est opérationnel !

Mises à jour

L'environnement de l'outil est figé via le fichier de contraintes. Pour le niveau de correctif actuel de la version, exécutez à nouveau la commande d'installation de l'étape 3 avec le même fichier de contraintes. N'utilisez un nouveau fichier de contraintes qu'après une mise à niveau de version.

uv tool upgrade n'est pas nécessaire pour cela et n'est pas lié au fichier de contraintes ; uv tool upgrade --all mettrait à niveau tous les outils installés avec uv.

Références