Aller au contenu
Cloud medium

OAPI CLI : premiers pas et commandes essentielles

30 min de lecture

logo 3ds outscale

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.

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
  1. Installer FUSE (Linux) : sudo apt-get install -y libfuse2 (Ubuntu/Debian)
  2. Installer OAPI CLI : télécharger dans ~/.local/bin et rendre exécutable
  3. Configurer : créer ~/.osc/config.json avec vos clés d’accès
  4. Vérifier : oapi-cli CheckAuthentication --color pour confirmer la connexion
  5. Lister : oapi-cli ReadVms --color pour voir vos machines virtuelles
  6. Explorer : oapi-cli ReadRegions --color pour découvrir les régions disponibles

Les AppImages nécessitent FUSE (Filesystem in Userspace) pour fonctionner. Installez-le selon votre distribution :

Fenêtre de terminal
sudo apt-get update
sudo apt-get install -y libfuse2

Installation dans ~/.local/bin (accessible sans sudo) :

Fenêtre de terminal
# Créer le répertoire si nécessaire
mkdir -p ~/.local/bin
# Télécharger OAPI CLI
curl -L https://github.com/outscale/oapi-cli/releases/latest/download/oapi-cli-x86_64.AppImage \
-o ~/.local/bin/oapi-cli
# Rendre exécutable
chmod +x ~/.local/bin/oapi-cli

Vérifier que ~/.local/bin est dans votre PATH :

Fenêtre de terminal
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 :

Fenêtre de terminal
# Bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Vérifiez l’installation :

Fenêtre de terminal
oapi-cli --version
Résultat
oapi-cli version: 0.13.0
osc-sdk-c version: 00.19.00
based on osc-api: 1.39.1

L’autocomplétion vous fait gagner du temps : tapez oapi-cli Read puis Tab, et OAPI CLI complète automatiquement en ReadVms, ReadVolumes, ReadRegions

Fenêtre de terminal
# Générer le script de complétion
oapi-cli --bash-completion > ~/.oapi-cli-completion.bash
# Activer l'autocomplétion
echo 'source ~/.oapi-cli-completion.bash' >> ~/.bashrc
# Recharger la configuration
source ~/.bashrc

Tester : tapez oapi-cli Read puis Tab → vous devriez voir ReadVms, ReadVolumes, ReadRegions

OAPI CLI utilise un fichier JSON pour stocker vos identifiants.

  1. Créer le répertoire de configuration (Linux/macOS uniquement)

    Fenêtre de terminal
    mkdir -p ~/.osc
  2. Créer le fichier config.json

    Fenêtre de terminal
    cat > ~/.osc/config.json << 'EOF'
    {
    "default": {
    "access_key": "VOTRE_ACCESS_KEY",
    "secret_key": "VOTRE_SECRET_KEY",
    "region": "eu-west-2"
    }
    }
    EOF
  3. Remplacer les valeurs

    ChampOù le trouverExemple
    access_keyConsole Outscale → Cockpit → Mon Compte → Clés d’accèsAKIA...
    secret_keyAffiché UNE SEULE fois à la créationwJalr...
    regioneu-west-2 pour Paris, us-east-2 pour 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 :

Fenêtre de terminal
# Authentification par clés
export OSC_ACCESS_KEY="VOTRE_ACCESS_KEY"
export OSC_SECRET_KEY="VOTRE_SECRET_KEY"
export OSC_REGION="eu-west-2"
# Vérifier
oapi-cli CheckAuthentication --color

Cette 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 :

Fenêtre de terminal
oapi-cli CheckAuthentication

Alternative pour tester votre connexion :

Fenêtre de terminal
# Lister les régions (ne nécessite pas d'authentification)
oapi-cli ReadRegions
# Lister vos VMs (nécessite des clés valides)
oapi-cli ReadVms

Si vous voyez un résultat JSON avec Regions ou Vms, vous êtes connecté. Sinon, vérifiez votre config.json.

Fenêtre de terminal
# 1. Vérifier la connexion
oapi-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.

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.

Structure d'une commande Oapi CLI : oapi-cli + action + options

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

1
Toujours vérifier la connexion avant une action oapi-cli CheckAuthentication évite les erreurs de compte
2
Ne jamais mettre ses clés dans le code Les credentials dans Git = compte compromis en quelques minutes

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)
Fenêtre de terminal
oapi-cli <Action> [--options]
oapi-cli --help [Action] # Aide sur une action
oapi-cli --list-calls # Lister toutes les actions disponibles

Options globales principales :

OptionDescriptionExemple
--profile NOMUtilise un profil spécifiqueoapi-cli ReadVms --profile production
--colorColorise et formate le JSONoapi-cli ReadVms --color
--raw-printSortie brute sans formattingoapi-cli ReadVms --raw-print
--verboseMode debug avec requêtes curloapi-cli ReadVms --verbose
--config PATHChemin du fichier de configoapi-cli --config ./custom.json ReadVms

Formes courantes :

Fenêtre de terminal
# Forme minimale : action seule
oapi-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 JSON
echo '{"VolumeId": "vol-12345678"}' > params.json
oapi-cli DeleteVolume --file params.json
# Avec profil
oapi-cli ReadVms --profile production --color

La commande oapi-cli suit toujours la même logique :

PartieQuestionExemplesObligatoire ?
ActionQuel appel API effectuer ?ReadVms, CreateVolume, DeleteSnapshot✅ Oui
ParamètresQuels arguments passer ?--Filters.VmIds[] i-xxx, --Size 10❌ Non (selon l’API)
OptionsComment 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 :

Fenêtre de terminal
# Action=ReadVms, Paramètre=--Filters.VmStates[], Option=--color
oapi-cli ReadVms --Filters.VmStates[] running --color
# ↑ ↑ ↑
# action paramètres options

Objectif : Découvrir les régions disponibles (Paris, Ohio…).

Fenêtre de terminal
oapi-cli ReadRegions

Ce que vous verrez :

Résultat
{
"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 en us-east-2 (Ohio)
  • Vous devez choisir une région proche de vos utilisateurs pour réduire la latence

Objectif : Voir toutes vos VMs (équivalent aws ec2 describe-instances).

Fenêtre de terminal
oapi-cli ReadVms

Deux cas possibles :

  1. Vous n’avez pas de VMs : "Vms": [] (tableau vide)
  2. Vous avez des VMs : vous verrez la liste complète avec ID, état, type, réseau…
Extrait de résultat (si vous avez des VMs)
{
"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 :

Fenêtre de terminal
# Syntaxe JSON (recommandée)
oapi-cli ReadVms --Filters.VmStateNames '["running"]'
# Compter le nombre de VMs actives
oapi-cli ReadVms --Filters.VmStateNames '["running"]' | jq '.Vms | length'
# Résultat : 10

Objectif : Voir vos volumes BSU (Block Storage Unit, équivalent EBS).

Fenêtre de terminal
oapi-cli ReadVolumes

Ce que vous verrez :

Résultat (extrait)
{
"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"
}
]
}

Objectif : Voir les images disponibles pour créer des VMs.

Fenêtre de terminal
# Lister toutes les images
oapi-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 nom
oapi-cli ReadImages | jq -r '.Images[0:5] | .[] | "\(.ImageId)\t\(.ImageName)"'

Récap de vos 4 premières commandes :

CommandeActionCe qu’on apprend
oapi-cli ReadRegionsLister régionsComprendre la géographie Outscale
oapi-cli ReadVmsLister VMsVoir ses machines virtuelles
oapi-cli ReadVolumesLister volumesVoir ses disques de stockage
oapi-cli ReadImagesLister imagesVoir les templates de VMs

Vous venez de valider que votre configuration fonctionne sur trois ressources majeures (VMs, volumes, images).

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 :

  1. Lister toutes les actions disponibles

    Fenêtre de terminal
    oapi-cli --list-calls

    Vous verrez toutes les actions classées alphabétiquement : CreateVms, ReadVms, UpdateVm, DeleteVms

  2. Consulter l’aide d’une action spécifique

    Fenêtre de terminal
    oapi-cli --help ReadVms

    Affiche :

    • La description de l’action
    • Les paramètres requis et optionnels
    • Les types de chaque paramètre
  3. Utiliser l’autocomplétion

    Si vous avez activé l’autocomplétion, tapez oapi-cli Read puis Tab Tab pour voir toutes les actions Read* :

    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.

OAPI CLI retourne du JSON brut. Pour n’afficher que l’essentiel, deux méthodes.

jq filtre les résultats après réception. Idéal pour extraire des champs précis :

Fenêtre de terminal
# Extraire uniquement les IDs des VMs
oapi-cli ReadVms | jq -r '.Vms[].VmId'
# Format tabulaire : ID + État + Type + Nom
oapi-cli ReadVms | jq -r '.Vms[] | "\(.VmId)\t\(.State)\t\(.VmType)\t\(.Tags[]? | select(.Key==\"Name\") | .Value)"'

Résultat :

i-935b34c8 running tinav6.c2r4p1 production-bastion
i-3b64ecf1 running tinav6.c2r4p1 production-monitoring
i-cb0491b4 running tinav6.c4r8p1 production-k8s-master-2
i-777755b4 running tinav6.c4r8p1 production-k8s-master-1
Fenêtre de terminal
# Compter le nombre de VMs
oapi-cli ReadVms | jq '.Vms | length'
# Résultat : 10
# Extraire uniquement les VMs avec un tag Name
oapi-cli ReadVms | jq '.Vms[] | select(.Tags[]? | .Key == \"Name\") | {VmId, Name: (.Tags[] | select(.Key==\"Name\") | .Value)}'

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 :

Fenêtre de terminal
# ✅ CORRECT : Uniquement les VMs en cours d'exécution
oapi-cli ReadVms --Filters.VmStateNames '["running"]'
# ✅ CORRECT : VMs avec un type spécifique
oapi-cli ReadVms --Filters.VmTypes '["tinav6.c4r8p1"]'
# ✅ CORRECT : Volumes dans une sous-région
oapi-cli ReadVolumes --Filters.SubregionNames '["eu-west-2a"]'
# ✅ CORRECT : Images publiques Outscale
oapi-cli ReadImages --Filters.AccountIds '["Outscale"]'
RessourceFiltreExemple
VMsÉtat--Filters.VmStateNames '["running"]'
VMsType--Filters.VmTypes '["tinav6.c4r8p1"]'
VMsTag (clé)--Filters.TagKeys '["Environment"]'
VMsTag (valeur)--Filters.TagValues '["production"]'
VolumesTaille--Filters.VolumeSizes '[100]'
VolumesType--Filters.VolumeTypes '["gp2"]'
VolumesÉtat--Filters.VolumeStates '["available"]'
ImagesCompte--Filters.AccountIds '["123456789012"]'
ImagesNom--Filters.ImageNames '["Ubuntu*"]'
Fenêtre de terminal
# Filtrer côté serveur PUIS extraire avec jq
oapi-cli ReadVms --Filters.VmStateNames '["running"]' | jq '.Vms | length'
# Résultat : 10 (nombre de VMs actives)
# Lister uniquement les IDs des VMs arrêtées
oapi-cli ReadVms --Filters.VmStateNames '["stopped"]' | jq -r '.Vms[].VmId'
# Volumes disponibles avec leur taille
oapi-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

Si vous travaillez avec plusieurs comptes Outscale (dev, staging, prod), créez des profils séparés dans config.json.

Éditez ~/.osc/config.json (ou .\config.json sur Windows) :

~/.osc/config.json
{
"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"
}
}
Fenêtre de terminal
# Utiliser le profil "production"
oapi-cli ReadVms --profile production --color
# Ou définir pour toute la session
export OSC_PROFILE=production
oapi-cli ReadVms --color # utilise automatiquement "production"
Fenêtre de terminal
# Variable d'environnement
echo $OSC_PROFILE
# Ou vérifier toutes les variables OSC_*
env | grep OSC_

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
Formule oapi-cli CheckAuthentication --color
Exemple
oapi-cli CheckAuthentication --profile production --color
Lister les VMs Base

Voir toutes les machines virtuelles

oapi-cli ReadVms --Filters.VmStateNames '["running"]'
Formule oapi-cli ReadVms
Exemple
oapi-cli ReadVms --Filters.VmStateNames '["running"]'
Lister les volumes Base

Voir tous les volumes de stockage

oapi-cli ReadVolumes --Filters.VolumeTypes '["gp2"]'
Formule oapi-cli ReadVolumes
Exemple
oapi-cli ReadVolumes --Filters.VolumeTypes '["gp2"]'
Lister les régions Base

Voir toutes les régions Outscale

oapi-cli ReadRegions | jq -r '.Regions[].RegionName'
Formule oapi-cli ReadRegions
Exemple
oapi-cli ReadRegions | jq -r '.Regions[].RegionName'
Lister les images disponibles Base

Voir toutes les images (OMI)

oapi-cli ReadImages | jq '.Images | length'
Formule oapi-cli ReadImages
Exemple
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]'
Formule oapi-cli ReadVms --Filters.VmIds '["VM_ID"]'
Exemple
oapi-cli ReadVms --Filters.VmIds '["i-935b34c8"]' | jq '.Vms[0]'
Paramètres
  • 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
Formule oapi-cli CreateVms --ImageId IMAGE_ID --VmType VM_TYPE
Exemple
oapi-cli CreateVms --ImageId ami-0016b8a0 --VmType tinav6.c2r4p1 --SubregionName eu-west-2a
Paramètres
  • 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
Formule oapi-cli CreateVolume --Size SIZE --SubregionName SUBREGION
Exemple
oapi-cli CreateVolume --Size 100 --SubregionName eu-west-2a --VolumeType gp2
Paramètres
  • 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
Formule oapi-cli --list-calls
Exemple
oapi-cli --list-calls | grep Snapshot
Aide sur une action Base

Voir les paramètres d'une action

oapi-cli --help CreateVms
Formule oapi-cli --help ACTION
Exemple
oapi-cli --help CreateVms
Paramètres
  • ACTION — Nom de l'action (ex: ReadVms)

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
Le piège : oapi-cli DeleteVms --VmIds[] i-xxx
Symptôme : VM de production supprimée au lieu de dev
Cause : Le profil par défaut pointe vers production
Correction : Toujours vérifier avec oapi-cli CheckAuthentication avant une commande destructrice
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
Le piège : Fichier config.json committé avec clés d'accès
Symptôme : Compte Outscale compromis, ressources créées par des bots
Cause : config.json ajouté au repo Git par erreur
Correction : Ajouter config.json au .gitignore, révoquer les clés, en créer de nouvelles
Région non configurée

oapi-cli ReadVms

Attention
Le piège : oapi-cli ReadVms
Symptôme : Timeout ou résultats vides
Cause : Pas de région dans config.json
Correction : Ajouter 'region' dans config.json ou utiliser OSC_REGION
export OSC_REGION=eu-west-2 && oapi-cli ReadVms --color
Config au mauvais endroit (Windows)

config.json dans ~/.osc/ sur Windows

Attention
Le piège : config.json dans ~/.osc/ sur Windows
Symptôme : Authentication failed malgré des clés valides
Cause : Sur Windows, config.json doit être dans le même répertoire que oapi-cli.exe
Correction : Déplacer config.json dans le même dossier que oapi-cli.exe
Erreur FUSE sur Linux

./oapi-cli-x86_64.AppImage ReadVms

Info
Le piège : ./oapi-cli-x86_64.AppImage ReadVms
Symptôme : dlopen(): error loading libfuse.so.2
Cause : FUSE non installé sur le système
Correction : Utiliser --appimage-extract-and-run (plus lent mais fonctionne)
./oapi-cli-x86_64.AppImage --appimage-extract-and-run ReadVms --color

Au lieu de taper --color à chaque fois, créez un alias :

Fenêtre de terminal
# Bash/Zsh
echo 'alias oapi="oapi-cli --color"' >> ~/.bashrc
source ~/.bashrc
# Utilisation
oapi ReadVms
oapi ReadVolumes

Si une commande échoue, activez le mode verbose pour voir les requêtes HTTP :

Fenêtre de terminal
oapi-cli ReadVms --verbose --color

Vous verrez :

  • L’URL appelée
  • Les headers HTTP
  • Le corps de la requête et de la réponse

OAPI CLI permet de capturer des valeurs d’une commande pour les réutiliser dans la suivante :

Fenêtre de terminal
# Créer une VM et capturer son ID
oapi-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.

📋 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

Si vous venez d’AWS CLI, voici les équivalences :

AWS CLIOAPI CLICommentaire
aws --versionoapi-cli --versionVérifier la version
aws configureÉditer ~/.osc/config.jsonPas d’assistant interactif
aws sts get-caller-identityoapi-cli CheckAuthenticationVérifier l’identité
aws ec2 describe-instancesoapi-cli ReadVmsLister les VMs
aws ec2 describe-volumesoapi-cli ReadVolumesLister les volumes
aws ec2 describe-regionsoapi-cli ReadRegionsLister les régions
aws ec2 describe-imagesoapi-cli ReadImagesLister les images
aws ec2 run-instancesoapi-cli CreateVmsCréer une VM
aws ec2 terminate-instancesoapi-cli DeleteVmsSupprimer une VM
aws --profile prodoapi-cli --profile prodUtiliser un profil
aws --output jsonoapi-cli --colorFormatter 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 :

Fenêtre de terminal
# Via variables d'environnement
export OSC_LOGIN="votre.email@example.com"
export OSC_PASSWORD="VotreMotDePasse"
oapi-cli CheckAuthentication --color

Ou directement dans la commande :

Fenêtre de terminal
oapi-cli --login votre.email@example.com --password VotreMotDePasse ReadVms --color

Annexe : 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 :

Fenêtre de terminal
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 --color

Cette méthode est indispensable pour les configurations complexes et facilite la réutilisation (versionner le JSON dans Git).

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.