
OAPI CLI vous permet de gérer vos ressources Outscale depuis le terminal. En 3 commandes, vous saurez si tout fonctionne : installer, se connecter, lister vos ressources. Ce guide vous accompagne pas à pas, du premier oapi-cli --help jusqu’à l’automatisation de vos tâches quotidiennes.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »Niveau : Débutant · Prérequis : savoir utiliser un terminal
À la fin de ce guide, vous saurez :
- Installer OAPI CLI et configurer vos identifiants
- Vérifier votre identité
- Éviter les erreurs de débutant (mauvaise région, mauvais profil)
- Lister vos ressources : VMs, volumes, images, …
- Filtrer les résultats pour n’afficher que l’essentiel
TL;DR — Votre première session OAPI CLI
Section intitulée « TL;DR — Votre première session OAPI CLI »- Installer FUSE (Linux) :
sudo apt-get install -y libfuse2(Ubuntu/Debian) - Installer OAPI CLI : télécharger dans
~/.local/binet rendre exécutable - Configurer : créer
~/.osc/config.jsonavec vos clés d’accès - Vérifier :
oapi-cli CheckAuthentication --colorpour confirmer la connexion - Lister :
oapi-cli ReadVms --colorpour voir vos machines virtuelles - Explorer :
oapi-cli ReadRegions --colorpour découvrir les régions disponibles
Étape 1 — Installer OAPI CLI
Section intitulée « Étape 1 — Installer OAPI CLI »Prérequis : installer FUSE (Linux uniquement)
Section intitulée « Prérequis : installer FUSE (Linux uniquement) »Les AppImages nécessitent FUSE (Filesystem in Userspace) pour fonctionner. Installez-le selon votre distribution :
sudo apt-get updatesudo apt-get install -y libfuse2# Fedorasudo dnf install -y fuse-libs
# RHEL/CentOS 7sudo yum install -y fuse-libs
# RHEL/CentOS 8+sudo dnf install -y fuse-libssudo pacman -S fuse2sudo zypper install -y libfuse2Installation de OAPI CLI
Section intitulée « Installation de OAPI CLI »Installation dans ~/.local/bin (accessible sans sudo) :
# Créer le répertoire si nécessairemkdir -p ~/.local/bin
# Télécharger OAPI CLIcurl -L https://github.com/outscale/oapi-cli/releases/latest/download/oapi-cli-x86_64.AppImage \ -o ~/.local/bin/oapi-cli
# Rendre exécutablechmod +x ~/.local/bin/oapi-cliVérifier que ~/.local/bin est dans votre PATH :
echo $PATH | grep -q "$HOME/.local/bin" && echo "✓ PATH OK" || echo "✗ Ajouter ~/.local/bin au PATH"Si ~/.local/bin n’est pas dans votre PATH, ajoutez-le :
# Bashecho 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc
# Zshecho 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc# Via Homebrewbrew tap outscale/tapbrew install outscale/tap/oapi-cliOu installation manuelle :
git clone https://github.com/outscale/homebrew-tapcd homebrew-tapbrew install Formula/oapi-cli.rb- Téléchargez
oapi-cli-x86_64-windows.zipdepuis Releases - Extrayez l’archive
- Lancez
oapi-cli.exedepuis PowerShell ou cmd
Vérifiez l’installation :
oapi-cli --versionoapi-cli version: 0.13.0osc-sdk-c version: 00.19.00based on osc-api: 1.39.1Activer l’autocomplétion (recommandé)
Section intitulée « Activer l’autocomplétion (recommandé) »L’autocomplétion vous fait gagner du temps : tapez oapi-cli Read puis Tab, et OAPI CLI complète automatiquement en ReadVms, ReadVolumes, ReadRegions…
# Générer le script de complétionoapi-cli --bash-completion > ~/.oapi-cli-completion.bash
# Activer l'autocomplétionecho 'source ~/.oapi-cli-completion.bash' >> ~/.bashrc
# Recharger la configurationsource ~/.bashrcTester : tapez oapi-cli Read puis Tab → vous devriez voir ReadVms, ReadVolumes, ReadRegions…
# Activer le support des complétions Bashecho 'autoload bashcompinit && bashcompinit' >> ~/.zshrc
# Générer et sourcer le scriptoapi-cli --bash-completion > ~/.oapi-cli-completion.bashecho 'source ~/.oapi-cli-completion.bash' >> ~/.zshrc
# Rechargersource ~/.zshrcTester : tapez oapi-cli Read puis Tab → vous devriez voir les suggestions.
Étape 2 — Se connecter à son compte Outscale
Section intitulée « Étape 2 — Se connecter à son compte Outscale »Créer le fichier de configuration
Section intitulée « Créer le fichier de configuration »OAPI CLI utilise un fichier JSON pour stocker vos identifiants.
-
Créer le répertoire de configuration (Linux/macOS uniquement)
Fenêtre de terminal mkdir -p ~/.osc -
Créer le fichier
config.jsonFenêtre de terminal cat > ~/.osc/config.json << 'EOF'{"default": {"access_key": "VOTRE_ACCESS_KEY","secret_key": "VOTRE_SECRET_KEY","region": "eu-west-2"}}EOFCréez
config.jsondans le même répertoire queoapi-cli.exe:{"default": {"access_key": "VOTRE_ACCESS_KEY","secret_key": "VOTRE_SECRET_KEY","region": "eu-west-2"}} -
Remplacer les valeurs
Champ Où le trouver Exemple access_keyConsole Outscale → Cockpit → Mon Compte → Clés d’accès AKIA...secret_keyAffiché UNE SEULE fois à la création wJalr...regioneu-west-2pour Paris,us-east-2pour Ohioeu-west-2
Méthode alternative : variables d’environnement
Section intitulée « Méthode alternative : variables d’environnement »Au lieu du fichier config.json, vous pouvez utiliser des variables d’environnement :
# Authentification par clésexport OSC_ACCESS_KEY="VOTRE_ACCESS_KEY"export OSC_SECRET_KEY="VOTRE_SECRET_KEY"export OSC_REGION="eu-west-2"
# Vérifieroapi-cli CheckAuthentication --colorCette méthode est utile pour les scripts CI/CD ou les environnements temporaires.
Étape 3 — Vérifier son identité (le “whoami” Outscale)
Section intitulée « Étape 3 — Vérifier son identité (le “whoami” Outscale) »Avant toute commande potentiellement destructrice, vérifiez que vous êtes connecté au bon compte :
oapi-cli CheckAuthenticationAlternative pour tester votre connexion :
# Lister les régions (ne nécessite pas d'authentification)oapi-cli ReadRegions
# Lister vos VMs (nécessite des clés valides)oapi-cli ReadVmsSi vous voyez un résultat JSON avec Regions ou Vms, vous êtes connecté. Sinon, vérifiez votre config.json.
Checklist avant commande dangereuse
Section intitulée « Checklist avant commande dangereuse »# 1. Vérifier la connexionoapi-cli CheckAuthentication --color
# 2. Quel profil est actif ?echo $OSC_PROFILE
# 3. Y a-t-il des variables d'environnement qui overrident ?env | grep OSC_Étape 4 — Vos premières commandes (lister des ressources)
Section intitulée « Étape 4 — Vos premières commandes (lister des ressources) »Maintenant que vous êtes connecté, explorons vos ressources. Vous allez lancer 4 commandes qui vous permettront de comprendre comment OAPI CLI fonctionne.
Comment fonctionne OAPI CLI ?
Section intitulée « Comment fonctionne OAPI CLI ? »Avant de commencer, comprenons la logique. OAPI CLI utilise des appels d’API directs : chaque commande correspond à un endpoint de l’API Outscale (CreateVms, ReadVms, DeleteVms…).
🧠 Modèle mental — oapi-cli = un appel API direct
OAPI CLI appelle directement l'API Outscale. Contrairement à AWS CLI (aws service action), ici vous appelez directement l'action (ReadVms, CreateVolume...). La réponse arrive en JSON par défaut.
Points clés
- Appel API direct : ReadVms = GET /api/latest/ReadVms
- Le JSON est retourné directement (--color pour le formatter)
- Chaque commande cible UNE région (eu-west-2 par défaut)
Règles d'or
Vocabulaire essentiel
- Région
- Zone géographique Outscale (eu-west-2 = Paris)
- Profil
- Configuration nommée dans config.json
- Vm
- Virtual Machine (équivalent EC2 chez AWS)
Syntaxe complète
Section intitulée « Syntaxe complète »oapi-cli <Action> [--options]oapi-cli --help [Action] # Aide sur une actionoapi-cli --list-calls # Lister toutes les actions disponiblesOptions globales principales :
| Option | Description | Exemple |
|---|---|---|
--profile NOM | Utilise un profil spécifique | oapi-cli ReadVms --profile production |
--color | Colorise et formate le JSON | oapi-cli ReadVms --color |
--raw-print | Sortie brute sans formatting | oapi-cli ReadVms --raw-print |
--verbose | Mode debug avec requêtes curl | oapi-cli ReadVms --verbose |
--config PATH | Chemin du fichier de config | oapi-cli --config ./custom.json ReadVms |
Formes courantes :
# Forme minimale : action seuleoapi-cli ReadRegions
# Avec filtres (syntaxe JSON)oapi-cli ReadVms --Filters.VmStates[] running --color
# Avec variables (chaînage)oapi-cli CreateVms --ImageId ami-xxx --set-var vm_id=Vms.0.VmId \ CreateTags --ResourceIds[] --var vm_id --Tags.0.Key Name --Tags.0.Value "MaVM"
# Depuis un fichier JSONecho '{"VolumeId": "vol-12345678"}' > params.jsonoapi-cli DeleteVolume --file params.json
# Avec profiloapi-cli ReadVms --profile production --colorLes 3 parties d’une commande OAPI CLI
Section intitulée « Les 3 parties d’une commande OAPI CLI »La commande oapi-cli suit toujours la même logique :
| Partie | Question | Exemples | Obligatoire ? |
|---|---|---|---|
| Action | Quel appel API effectuer ? | ReadVms, CreateVolume, DeleteSnapshot | ✅ Oui |
| Paramètres | Quels arguments passer ? | --Filters.VmIds[] i-xxx, --Size 10 | ❌ Non (selon l’API) |
| Options | Comment formater la sortie ? | --color, --raw-print, --profile | ❌ Non (valeurs par défaut) |
Action — L’appel d’API Outscale que vous voulez effectuer. Suit la convention CRUD : Create*, Read*, Update*, Delete*.
Paramètres — Les arguments de l’API (filtres, IDs, tailles…). La syntaxe suit la structure JSON de l’API.
Options (optionnelles) — Modifient le comportement de la CLI : coloriser le JSON, changer de profil, mode debug.
Exemple concret :
# Action=ReadVms, Paramètre=--Filters.VmStates[], Option=--coloroapi-cli ReadVms --Filters.VmStates[] running --color# ↑ ↑ ↑# action paramètres optionsCommande 1 : Lister les régions Outscale
Section intitulée « Commande 1 : Lister les régions Outscale »Objectif : Découvrir les régions disponibles (Paris, Ohio…).
oapi-cli ReadRegionsCe que vous verrez :
{ "ResponseContext": { "RequestId": "20820fd9-ae05-4d67-902a-496048bd98a1" }, "Regions": [ { "RegionName": "eu-west-2", "Endpoint": "api.eu-west-2.outscale.com" }, { "RegionName": "us-east-2", "Endpoint": "api.us-east-2.outscale.com" }, { "RegionName": "us-west-1", "Endpoint": "api.us-west-1.outscale.com" } ]}Pourquoi c’est important :
- Chaque région est isolée : une VM créée en
eu-west-2(Paris) n’est pas visible enus-east-2(Ohio) - Vous devez choisir une région proche de vos utilisateurs pour réduire la latence
Commande 2 : Lister vos machines virtuelles
Section intitulée « Commande 2 : Lister vos machines virtuelles »Objectif : Voir toutes vos VMs (équivalent aws ec2 describe-instances).
oapi-cli ReadVmsDeux cas possibles :
- Vous n’avez pas de VMs :
"Vms": [](tableau vide) - Vous avez des VMs : vous verrez la liste complète avec ID, état, type, réseau…
{ "ResponseContext": { "RequestId": "5d143c09-ef80-4d00-b87c-cad2e39185b4" }, "Vms": [ { "VmId": "i-935b34c8", "VmType": "tinav6.c2r4p1", "State": "running", "ImageId": "ami-0016b8a0", "PublicIp": "148.253.90.33", "PrivateIp": "10.20.1.36", "SubregionName": "eu-west-2a", "Tags": [ {"Key": "Name", "Value": "production-bastion"}, {"Key": "Role", "Value": "Bastion"} ] } ]}Filtrer pour n’afficher que les VMs en cours d’exécution :
# Syntaxe JSON (recommandée)oapi-cli ReadVms --Filters.VmStateNames '["running"]'
# Compter le nombre de VMs activesoapi-cli ReadVms --Filters.VmStateNames '["running"]' | jq '.Vms | length'# Résultat : 10Commande 3 : Lister vos volumes de stockage
Section intitulée « Commande 3 : Lister vos volumes de stockage »Objectif : Voir vos volumes BSU (Block Storage Unit, équivalent EBS).
oapi-cli ReadVolumesCe que vous verrez :
{ "Volumes": [ { "VolumeId": "vol-c8356578", "Size": 50, "VolumeType": "gp2", "State": "available", "Iops": 150, "SubregionName": "eu-west-2c", "CreationDate": "2025-11-29T12:16:02.613Z", "Tags": [ {"Key": "CSIVolumeName", "Value": "pvc-75bcb119-4382-49d5-afd2-99c8f85315b6"} ] }, { "VolumeId": "vol-453dc569", "Size": 1, "VolumeType": "gp2", "State": "available", "Iops": 100, "SubregionName": "eu-west-2a", "CreationDate": "2025-11-29T12:16:02.648Z" } ]}Commande 4 : Lister vos images (OMI)
Section intitulée « Commande 4 : Lister vos images (OMI) »Objectif : Voir les images disponibles pour créer des VMs.
# Lister toutes les imagesoapi-cli ReadImages | jq '.Images | length'# Résultat : 446 images
# Lister VOS images uniquement (celles de votre compte)oapi-cli ReadImages | jq '.Images[] | select(.AccountAlias != null) | {ImageId, ImageName, State}'
# Extraire les 5 premières images avec leur nomoapi-cli ReadImages | jq -r '.Images[0:5] | .[] | "\(.ImageId)\t\(.ImageName)"'Récap de vos 4 premières commandes :
| Commande | Action | Ce qu’on apprend |
|---|---|---|
oapi-cli ReadRegions | Lister régions | Comprendre la géographie Outscale |
oapi-cli ReadVms | Lister VMs | Voir ses machines virtuelles |
oapi-cli ReadVolumes | Lister volumes | Voir ses disques de stockage |
oapi-cli ReadImages | Lister images | Voir les templates de VMs |
Vous venez de valider que votre configuration fonctionne sur trois ressources majeures (VMs, volumes, images).
Découvrir les autres actions par vous-même
Section intitulée « Découvrir les autres actions par vous-même »OAPI CLI propose 200+ actions (CreateVms, DeleteVolume, CreateSnapshot, ReadSubnets…). Il est impossible de toutes les documenter dans un seul guide. Mais la bonne nouvelle, c’est que vous savez déjà chercher.
Trois techniques pour explorer une nouvelle action :
-
Lister toutes les actions disponibles
Fenêtre de terminal oapi-cli --list-callsVous verrez toutes les actions classées alphabétiquement :
CreateVms,ReadVms,UpdateVm,DeleteVms… -
Consulter l’aide d’une action spécifique
Fenêtre de terminal oapi-cli --help ReadVmsAffiche :
- La description de l’action
- Les paramètres requis et optionnels
- Les types de chaque paramètre
-
Utiliser l’autocomplétion
Si vous avez activé l’autocomplétion, tapez
oapi-cli Readpuis Tab Tab pour voir toutes les actionsRead*:Fenêtre de terminal oapi-cli Read<Tab><Tab># Affiche : ReadVms, ReadVolumes, ReadImages, ReadRegions...
Règle d’or : sur OAPI CLI, 90% des actions suivent les mêmes conventions :
Read*pour lire (ReadVms, ReadVolumes, ReadImages)Create*pour créer (CreateVms, CreateVolume, CreateSnapshot)Delete*pour supprimer (DeleteVolume, DeleteSnapshot)Update*pour modifier (UpdateVm, UpdateVolume)
Maintenant que vous savez explorer, passons au filtrage pour rendre ces sorties exploitables.
Étape 5 — Filtrer les résultats
Section intitulée « Étape 5 — Filtrer les résultats »OAPI CLI retourne du JSON brut. Pour n’afficher que l’essentiel, deux méthodes.
Méthode 1 : jq (post-traitement)
Section intitulée « Méthode 1 : jq (post-traitement) »jq filtre les résultats après réception. Idéal pour extraire des champs précis :
# Extraire uniquement les IDs des VMsoapi-cli ReadVms | jq -r '.Vms[].VmId'
# Format tabulaire : ID + État + Type + Nomoapi-cli ReadVms | jq -r '.Vms[] | "\(.VmId)\t\(.State)\t\(.VmType)\t\(.Tags[]? | select(.Key==\"Name\") | .Value)"'Résultat :
i-935b34c8 running tinav6.c2r4p1 production-bastioni-3b64ecf1 running tinav6.c2r4p1 production-monitoringi-cb0491b4 running tinav6.c4r8p1 production-k8s-master-2i-777755b4 running tinav6.c4r8p1 production-k8s-master-1# Compter le nombre de VMsoapi-cli ReadVms | jq '.Vms | length'# Résultat : 10
# Extraire uniquement les VMs avec un tag Nameoapi-cli ReadVms | jq '.Vms[] | select(.Tags[]? | .Key == \"Name\") | {VmId, Name: (.Tags[] | select(.Key==\"Name\") | .Value)}'Méthode 2 : —Filters (côté serveur)
Section intitulée « Méthode 2 : —Filters (côté serveur) »Les filtres --Filters.* sont traités par l’API Outscale avant l’envoi des données. Plus rapide pour les gros listings :
Syntaxe importante : Les filtres acceptent des tableaux JSON. Utilisez la syntaxe '["valeur"]' avec des quotes :
# ✅ CORRECT : Uniquement les VMs en cours d'exécutionoapi-cli ReadVms --Filters.VmStateNames '["running"]'
# ✅ CORRECT : VMs avec un type spécifiqueoapi-cli ReadVms --Filters.VmTypes '["tinav6.c4r8p1"]'
# ✅ CORRECT : Volumes dans une sous-régionoapi-cli ReadVolumes --Filters.SubregionNames '["eu-west-2a"]'
# ✅ CORRECT : Images publiques Outscaleoapi-cli ReadImages --Filters.AccountIds '["Outscale"]'Filtres courants
Section intitulée « Filtres courants »| Ressource | Filtre | Exemple |
|---|---|---|
| VMs | État | --Filters.VmStateNames '["running"]' |
| VMs | Type | --Filters.VmTypes '["tinav6.c4r8p1"]' |
| VMs | Tag (clé) | --Filters.TagKeys '["Environment"]' |
| VMs | Tag (valeur) | --Filters.TagValues '["production"]' |
| Volumes | Taille | --Filters.VolumeSizes '[100]' |
| Volumes | Type | --Filters.VolumeTypes '["gp2"]' |
| Volumes | État | --Filters.VolumeStates '["available"]' |
| Images | Compte | --Filters.AccountIds '["123456789012"]' |
| Images | Nom | --Filters.ImageNames '["Ubuntu*"]' |
Combiner filtres et jq
Section intitulée « Combiner filtres et jq »# Filtrer côté serveur PUIS extraire avec jqoapi-cli ReadVms --Filters.VmStateNames '["running"]' | jq '.Vms | length'# Résultat : 10 (nombre de VMs actives)
# Lister uniquement les IDs des VMs arrêtéesoapi-cli ReadVms --Filters.VmStateNames '["stopped"]' | jq -r '.Vms[].VmId'
# Volumes disponibles avec leur tailleoapi-cli ReadVolumes --Filters.VolumeStates '["available"]' | \ jq -r '.Volumes[] | "\(.VolumeId)\t\(.Size) GB\t\(.VolumeType)"'# Résultat : 9 volumes disponibles avec vol-xxx 50 GB gp2Étape 6 — Gérer plusieurs comptes (profils)
Section intitulée « Étape 6 — Gérer plusieurs comptes (profils) »Si vous travaillez avec plusieurs comptes Outscale (dev, staging, prod), créez des profils séparés dans config.json.
Créer plusieurs profils
Section intitulée « Créer plusieurs profils »Éditez ~/.osc/config.json (ou .\config.json sur Windows) :
{ "default": { "access_key": "AK_DEV", "secret_key": "SK_DEV", "region": "eu-west-2" }, "production": { "access_key": "AK_PROD", "secret_key": "SK_PROD", "region": "eu-west-2" }, "us": { "access_key": "AK_US", "secret_key": "SK_US", "region": "us-east-2" }}Utiliser un profil
Section intitulée « Utiliser un profil »# Utiliser le profil "production"oapi-cli ReadVms --profile production --color
# Ou définir pour toute la sessionexport OSC_PROFILE=productionoapi-cli ReadVms --color # utilise automatiquement "production"Vérifier quel profil est actif
Section intitulée « Vérifier quel profil est actif »# Variable d'environnementecho $OSC_PROFILE
# Ou vérifier toutes les variables OSC_*env | grep OSC_Recettes du quotidien
Section intitulée « Recettes du quotidien »Ces recettes couvrent les cas d'usage les plus fréquents. Cliquez sur un pattern pour voir la formule complète et un exemple prêt à copier.
Vérifier la connexion Base Confirmer l'authentification avant toute action
oapi-cli CheckAuthentication --profile production --color
oapi-cli CheckAuthentication --color oapi-cli CheckAuthentication --profile production --color Lister les VMs Base Voir toutes les machines virtuelles
oapi-cli ReadVms --Filters.VmStateNames '["running"]'
oapi-cli ReadVms oapi-cli ReadVms --Filters.VmStateNames '["running"]' Lister les volumes Base Voir tous les volumes de stockage
oapi-cli ReadVolumes --Filters.VolumeTypes '["gp2"]'
oapi-cli ReadVolumes oapi-cli ReadVolumes --Filters.VolumeTypes '["gp2"]' Lister les régions Base Voir toutes les régions Outscale
oapi-cli ReadRegions | jq -r '.Regions[].RegionName'
oapi-cli ReadRegions oapi-cli ReadRegions | jq -r '.Regions[].RegionName' Lister les images disponibles Base Voir toutes les images (OMI)
oapi-cli ReadImages | jq '.Images | length'
oapi-cli ReadImages oapi-cli ReadImages | jq '.Images | length' Détails d'une VM Base Voir les infos complètes d'une VM
oapi-cli ReadVms --Filters.VmIds '["i-935b34c8"]' | jq '.Vms[0]'
oapi-cli ReadVms --Filters.VmIds '["VM_ID"]' oapi-cli ReadVms --Filters.VmIds '["i-935b34c8"]' | jq '.Vms[0]' -
VM_ID— ID de la VM (ex: i-935b34c8)
Créer une VM Inter. Lancer une nouvelle machine virtuelle
oapi-cli CreateVms --ImageId ami-0016b8a0 --VmType tinav6.c2r4p1 --SubregionName eu-west-2a
oapi-cli CreateVms --ImageId IMAGE_ID --VmType VM_TYPE oapi-cli CreateVms --ImageId ami-0016b8a0 --VmType tinav6.c2r4p1 --SubregionName eu-west-2a -
IMAGE_ID— ID de l'image (ami-xxx) -
VM_TYPE— Type de VM (tinav6.c2r4p1)
Créer un volume Inter. Créer un volume de stockage
oapi-cli CreateVolume --Size 100 --SubregionName eu-west-2a --VolumeType gp2
oapi-cli CreateVolume --Size SIZE --SubregionName SUBREGION oapi-cli CreateVolume --Size 100 --SubregionName eu-west-2a --VolumeType gp2 -
SIZE— Taille en Go -
SUBREGION— Sous-région (eu-west-2a)
Lister les actions Base Voir toutes les actions disponibles
oapi-cli --list-calls | grep Snapshot
oapi-cli --list-calls oapi-cli --list-calls | grep Snapshot Aide sur une action Base Voir les paramètres d'une action
oapi-cli --help CreateVms
oapi-cli --help ACTION oapi-cli --help CreateVms -
ACTION— Nom de l'action (ex: ReadVms)
Aucune recette ne correspond à votre recherche.
Pièges courants
Section intitulée « Pièges courants »Ces erreurs courantes peuvent faire perdre du temps ou causer des dégâts. Les pièges les plus critiques sont affichés en premier.
Exécuter sur le mauvais profil oapi-cli DeleteVms --VmIds[] i-xxx
Danger
oapi-cli DeleteVms --VmIds[] i-xxx
oapi-cli CheckAuthentication --profile dev --color && oapi-cli DeleteVms --VmIds[] i-xxx --profile dev Credentials dans Git Fichier config.json committé avec clés d'accès
Danger
Fichier config.json committé avec clés d'accès
Région non configurée oapi-cli ReadVms
Attention
oapi-cli ReadVms
export OSC_REGION=eu-west-2 && oapi-cli ReadVms --color Config au mauvais endroit (Windows) config.json dans ~/.osc/ sur Windows
Attention
config.json dans ~/.osc/ sur Windows
Erreur FUSE sur Linux ./oapi-cli-x86_64.AppImage ReadVms
Info
./oapi-cli-x86_64.AppImage ReadVms
./oapi-cli-x86_64.AppImage --appimage-extract-and-run ReadVms --color Confort au quotidien
Section intitulée « Confort au quotidien »Activer la colorisation par défaut
Section intitulée « Activer la colorisation par défaut »Au lieu de taper --color à chaque fois, créez un alias :
# Bash/Zshecho 'alias oapi="oapi-cli --color"' >> ~/.bashrcsource ~/.bashrc
# Utilisationoapi ReadVmsoapi ReadVolumesMode verbose pour debug
Section intitulée « Mode verbose pour debug »Si une commande échoue, activez le mode verbose pour voir les requêtes HTTP :
oapi-cli ReadVms --verbose --colorVous verrez :
- L’URL appelée
- Les headers HTTP
- Le corps de la requête et de la réponse
Chaîner les commandes avec —set-var
Section intitulée « Chaîner les commandes avec —set-var »OAPI CLI permet de capturer des valeurs d’une commande pour les réutiliser dans la suivante :
# Créer une VM et capturer son IDoapi-cli CreateVms --ImageId ami-xxx --VmType tinav6.c2r4p2 \ --set-var vm_id=Vms.0.VmId \ CreateTags --ResourceIds[] --var vm_id --Tags.0.Key Name --Tags.0.Value "MaVM"Cette syntaxe crée une VM, extrait son VmId, et l’utilise immédiatement pour créer un tag.
Aide-mémoire
Section intitulée « Aide-mémoire » 📋
Cheatsheet oapi-cli
📝 Syntaxe :
oapi-cli <Action> [--options] Schéma général oapi-cli --version Vérifier l'installation oapi-cli --list-calls Lister toutes les actions oapi-cli --help ACTION Aide sur une action ⚙️ Options
--profile NOM | Utiliser un profil spécifique | --profile production |
export OSC_PROFILE=NOM | Définir le profil par défaut | export OSC_PROFILE=prod |
--color | Coloriser et formatter le JSON | ReadVms --color |
--verbose | Mode debug avec requêtes curl | Voir les headers HTTP |
cat ~/.osc/config.json | Voir la config (Linux/macOS) | Profils et régions |
cat config.json | Voir la config (Windows) | Même dossier que .exe |
echo $OSC_PROFILE | Quel profil est actif ? | production |
🔍 Filtres
--Filters.VmStateNames '["running"]' | Filtrer VMs par état | running, stopped, pending |
--Filters.VmTypes '["type"]' | Filtrer par type de VM | tinav6.c4r8p1 |
--Filters.TagKeys '["KEY"]' | Filtrer par clé de tag | Environment, Name |
--Filters.TagValues '["VALUE"]' | Filtrer par valeur de tag | production, dev |
--Filters.AccountIds '["Outscale"]' | Filtrer images publiques | Images officielles |
| jq '.Vms[].VmId' | Extraire champs avec jq | i-935b34c8 |
⚡ Actions
CheckAuthentication --color | Vérifier la connexion | Requiert login/password |
ReadRegions --color | Lister les régions | eu-west-2, us-east-2 |
ReadVms --color | Lister les VMs | Toutes vos machines |
ReadVolumes --color | Lister les volumes | Tous vos disques BSU |
ReadImages --color | Lister les images | 446 images disponibles |
ReadSnapshots --color | Lister les snapshots | Sauvegardes de volumes |
ReadSubnets --color | Lister les sous-réseaux | VPC et subnets |
🔗 Composition
--set-var vm_id=Vms.0.VmId | Capturer une valeur | Réutiliser dans commande suivante |
--var vm_id | Utiliser une variable | ID capturé précédemment |
--file params.json | Paramètres depuis JSON | Config complexe versionnée |
| jq -r '.Vms[] | "\(.VmId)\t\(.State)"' | Format tabulaire | i-xxx running |
Pour aller plus loin
Section intitulée « Pour aller plus loin »Annexe : comparaison AWS CLI vs OAPI CLI
Section intitulée « Annexe : comparaison AWS CLI vs OAPI CLI »Si vous venez d’AWS CLI, voici les équivalences :
| AWS CLI | OAPI CLI | Commentaire |
|---|---|---|
aws --version | oapi-cli --version | Vérifier la version |
aws configure | Éditer ~/.osc/config.json | Pas d’assistant interactif |
aws sts get-caller-identity | oapi-cli CheckAuthentication | Vérifier l’identité |
aws ec2 describe-instances | oapi-cli ReadVms | Lister les VMs |
aws ec2 describe-volumes | oapi-cli ReadVolumes | Lister les volumes |
aws ec2 describe-regions | oapi-cli ReadRegions | Lister les régions |
aws ec2 describe-images | oapi-cli ReadImages | Lister les images |
aws ec2 run-instances | oapi-cli CreateVms | Créer une VM |
aws ec2 terminate-instances | oapi-cli DeleteVms | Supprimer une VM |
aws --profile prod | oapi-cli --profile prod | Utiliser un profil |
aws --output json | oapi-cli --color | Formatter le JSON |
Différence majeure : AWS CLI utilise aws SERVICE ACTION (ex: aws ec2 describe-instances), tandis qu’OAPI CLI appelle directement l’action (ex: oapi-cli ReadVms).
Annexe : authentification par login/password (avancé)
Section intitulée « Annexe : authentification par login/password (avancé) »En plus des clés d’accès, OAPI CLI supporte l’authentification par email/password :
# Via variables d'environnementexport OSC_LOGIN="votre.email@example.com"export OSC_PASSWORD="VotreMotDePasse"
oapi-cli CheckAuthentication --colorOu directement dans la commande :
oapi-cli --login votre.email@example.com --password VotreMotDePasse ReadVms --colorAnnexe : utiliser un fichier JSON pour les paramètres complexes
Section intitulée « Annexe : utiliser un fichier JSON pour les paramètres complexes »Pour les commandes avec beaucoup de paramètres (ex: créer une VM avec réseau personnalisé), utilisez --file :
cat > create-vm.json << 'EOF'{ "ImageId": "ami-12345678", "VmType": "tinav6.c4r8p2", "SubregionName": "eu-west-2a", "SecurityGroupIds": ["sg-12345678"], "KeypairName": "ma-cle-ssh", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Bsu": { "VolumeSize": 50, "VolumeType": "gp2", "DeleteOnVmDeletion": true } } ]}EOF
oapi-cli CreateVms --file create-vm.json --colorCette méthode est indispensable pour les configurations complexes et facilite la réutilisation (versionner le JSON dans Git).