Aller au contenu

Scaleway CLI (scw)

À quoi il sert

scw est la ligne de commande de Scaleway, un binaire unique écrit en Go. Elle couvre l'ensemble des API du fournisseur (instances, bases managées, Kubernetes Kapsule, stockage, réseau, IAM, facturation) avec une syntaxe régulière : scw <produit> <ressource> <verbe> argument=valeur. Chaque commande est un appel à l'API HTTP de Scaleway, que l'option -D (--debug) affiche en entier, en-tête d'authentification masqué. La sortie est un tableau lisible par défaut, ou du JSON avec -o json, à traiter avec jq.

Son fichier de configuration (~/.config/scw/config.yaml), avec ses profils, est le même que celui du SDK Go et du fournisseur Terraform de Scaleway.

Quand le choisir

Pour explorer et diagnostiquer (lister, décrire, lire les journaux), pour apprendre ce que font les API, et pour de petits scripts d'exploitation. Les équivalents chez les autres fournisseurs sont aws, az, gcloud, et openstack pour les clouds OpenStack comme celui d'OVHcloud. Pour créer et faire évoluer une infrastructure durable, préférez un outil déclaratif (Terraform ou OpenTofu) : un script de commandes scw ne sait ni comparer l'existant à l'attendu, ni défaire ce qu'il a fait.

Points d'attention

  • La clé secrète est en clair dans config.yaml (créé avec les droits 600). Ne la passez jamais en argument (secret-key=...) : elle finirait dans l'historique du shell.
  • Les variables d'environnement SCW_* l'emportent sur le fichier, et l'option -p l'emporte sur SCW_PROFILE et sur active_profile : vérifiez avec scw config info sur quel profil et quel projet vous travaillez avant toute commande destructrice.
  • Sans zone= ni region=, les commandes utilisent les valeurs par défaut de la configuration ; une ressource « introuvable » est souvent dans une autre zone. Beaucoup de commandes list acceptent zone=all ou region=all.
  • Les opérations sont asynchrones : utilisez --wait dans les scripts pour attendre qu'une ressource soit prête.
  • Avec scw rdb instance create, le mot de passe généré est écrit sur la sortie standard avant le JSON : -o json | jq échoue dans ce cas.
  • La CLI évolue vite et suit les versions des API : l'aide intégrée (--help à chaque niveau) fait foi pour la version installée.

Par où commencer

La leçon Ce qu'est le cloud installe et configure scw, crée un projet et rejoue une commande avec curl. La leçon 2 l'utilise pour créer une base PostgreSQL managée et un conteneur serverless.