Aller au contenu
English
Cloud medium

CLI Scaleway (scw) : installation et prise en main

Validé live le ·scw 2.62.0

60 min de lecture

logo Scaleway

La CLI scw pilote toutes vos ressources Scaleway depuis le terminal, du simple scw version jusqu'au déploiement d'un cluster. Ce guide s'adresse aux débutants sur Scaleway qui savent déjà utiliser un terminal : en une vingtaine de minutes, vous saurez installer l'outil en vérifiant son intégrité, vous connecter avec une clé API ou par le navigateur, jongler entre plusieurs profils, comprendre qui l'emporte entre une variable d'environnement et le fichier de configuration, et exploiter les sorties JSON. Vous apprendrez aussi une chose que la plupart des guides oublient : une commande peut ne pas exister dans votre version, et comment le savoir avant de perdre une heure.

Niveau : débutant. Prérequis : un compte Scaleway et un terminal.

À la fin de ce guide, vous saurez :

  • Installer scw en vérifiant l'intégrité du binaire
  • Vous connecter avec scw init ou scw login, et prouver que la clé fonctionne
  • Comprendre où vit la configuration et l'ordre de priorité entre ses sources
  • Gérer plusieurs profils pour isoler un compte de lab
  • Choisir votre région et votre zone par défaut
  • Exploiter les sorties JSON et vérifier qu'une commande existe dans votre version

Avant de commencer, réunissez les éléments suivants :

  • Un compte Scaleway actif, connecté à la console.
  • Une clé API (couple access key et secret key) créée à la leçon précédente, avec une date d'expiration.
  • Un terminal sous Linux, macOS ou Windows.

Cette leçon a été validée avec scw 2.62.0, publiée le 1er septembre 2026 ; le dépôt sort une version toutes les deux à trois semaines, et chacune est accompagnée d'un fichier SHA256SUMS. La version courante se lit sur la page des releases du dépôt, jamais ici : une page qui annonce « la dernière version » est périmée dès la publication suivante. Choisissez la méthode adaptée à votre système. Évitez les scripts d'installation « tout-en-un » exécutés à l'aveugle : préférez un gestionnaire de paquets ou un binaire dont vous vérifiez la somme de contrôle.

Téléchargez le binaire, vérifiez sa somme SHA256, puis installez-le. Cette vérification garantit que le fichier n'a pas été altéré pendant le transfert.

Fenêtre de terminal
# Version cible
VERSION=2.62.0
# Binaire Linux amd64 + fichier de sommes de contrôle
curl -fsSLO "https://github.com/scaleway/scaleway-cli/releases/download/v${VERSION}/scaleway-cli_${VERSION}_linux_amd64"
curl -fsSLO "https://github.com/scaleway/scaleway-cli/releases/download/v${VERSION}/SHA256SUMS"
# Vérifier l'intégrité (la ligne du binaire doit afficher OK)
sha256sum --ignore-missing -c SHA256SUMS
# Installer dans le PATH
sudo install -m 0755 "scaleway-cli_${VERSION}_linux_amd64" /usr/local/bin/scw
scw version

La commande sha256sum -c doit afficher scaleway-cli_2.62.0_linux_amd64: OK. Si elle affiche FAILED, ne l'installez pas et retéléchargez. Reproduit le 2026-09-08 : la vérification passe, et scw version affiche 2.62.0, BuildDate 2026-09-01T09:56:07Z, GoVersion go1.27.0. Un binaire linux_arm64 existe pour les machines ARM.

Deux commandes initialisent le profil actif : scw init, qui demande la clé API au clavier, et scw login, qui ouvre une page web et attend que vous vous y connectiez. Les deux écrivent le même fichier de configuration. scw init vous demande successivement votre secret key, votre access key et votre organisation, vous propose le projet par défaut associé à la clé, puis propose d'activer l'autocomplétion.

Fenêtre de terminal
scw init

Collez la secret key créée dans la console. Avec scw login, aucune saisie : le navigateur s'ouvre, vous vous connectez, et le profil est configuré. Le tableau se lit par la colonne Choix : il dit laquelle des deux commandes convient à votre situation.

BesoinChoixPourquoi
Un poste avec navigateur, première connexionscw loginaucune clé à copier, profil écrit pour vous
Un serveur sans navigateur, une session SSHscw initla clé se colle au clavier, ou se passe par variables SCW_*
Une CI, un conteneurni l'un ni l'autre : variables d'environnement SCW_ACCESS_KEY et SCW_SECRET_KEYpas de fichier à écrire, secrets injectés par la plateforme
Un second compte ou un lab isoléscw init -p lab (profil nommé)le profil courant reste intact

À la fin, vérifiez que tout est cohérent :

Fenêtre de terminal
scw config validate

La sortie doit indiquer que la configuration est valide. Pour confirmer que vos identifiants fonctionnent réellement contre l'API, listez une ressource sans risque :

Fenêtre de terminal
scw account project list

Vous devez voir votre projet par défaut. Si la commande renvoie une erreur d'authentification, votre clé API est probablement erronée, expirée ou révoquée : recréez-en une dans la console. C'est la preuve de la connexion ; scw config validate ne vérifie que la forme du fichier, pas la validité de la clé.

La configuration provient de trois sources, et l'ordre de priorité est fixe : les variables d'environnement l'emportent sur le profil sélectionné, qui l'emporte sur le profil par défaut du fichier. Ce moteur de configuration est commun à la CLI, au provider Terraform et aux SDK Scaleway : comprendre cet ordre évite les surprises du type « je ne suis pas sur le bon compte » dans les trois outils à la fois.

Le fichier de configuration est recherché dans cet ordre :

  1. $SCW_CONFIG_PATH
  2. $XDG_CONFIG_HOME/scw/config.yaml
  3. $HOME/.config/scw/config.yaml
  4. $USERPROFILE/.config/scw/config.yaml (Windows)

Les variables reconnues les plus utiles :

VariableRôle
SCW_ACCESS_KEYLa access key de votre clé API
SCW_SECRET_KEYLa secret key de votre clé API
SCW_DEFAULT_ORGANIZATION_IDL'organisation par défaut
SCW_DEFAULT_PROJECT_IDLe projet par défaut
SCW_DEFAULT_REGIONLa région par défaut
SCW_DEFAULT_ZONELa zone par défaut
SCW_PROFILELe profil à utiliser
SCW_CONFIG_PATHL'emplacement du fichier de configuration

Vous consultez et modifiez ces valeurs avec scw config :

Fenêtre de terminal
# Lire la région par défaut du profil courant
scw config get default-region
# Changer la zone par défaut
scw config set default-zone=fr-par-2
scw config get default-zone

La dernière commande doit renvoyer fr-par-2. Si elle renvoie autre chose, une variable SCW_DEFAULT_ZONE est exportée dans votre shell et écrase le fichier : env | grep SCW_ la montrera. C'est la source numéro un de confusion, et elle se diagnostique en une commande.

Un profil est un jeu d'identifiants et de réglages par défaut ; les profils sont indispensables pour séparer un compte de lab d'un compte de production, ou travailler sur plusieurs organisations sans mélanger les ressources.

Listez les profils nommés existants :

Fenêtre de terminal
scw config profile list

La sortie affiche un tableau avec, pour chaque profil, sa zone, sa région, son projet et son organisation par défaut. Vous ciblez un profil pour une commande donnée avec l'option -p, ou pour toute une session avec la variable SCW_PROFILE :

Fenêtre de terminal
# Une seule commande sur le profil "lab"
scw -p lab instance server list
# Toute la session sur le profil "lab"
export SCW_PROFILE=lab

Scaleway organise ses ressources par régions (fr-par, nl-ams, pl-waw, it-mil) et par zones de disponibilité (fr-par-1 à fr-par-3, etc.), et fixer les bonnes valeurs par défaut évite l'erreur classique : créer une ressource dans la mauvaise localité.

Fenêtre de terminal
# Définir Paris comme région et sa première zone par défaut
scw config set default-region=fr-par
scw config set default-zone=fr-par-1

Un détail qui compte : la liste des régions et des zones est figée dans le binaire au moment de sa compilation, dans l'aide de chaque commande (scw instance server create -h, ligne zone=). Une version ancienne ne connaîtra pas une zone ouverte après sa sortie, et l'aide peut être en retard sur l'API : le 2026-09-08, scw lb lb create -h n'énumérait pas it-mil-1 en 2.56.3 comme en 2.62.0, alors que scw lb lb-types list zone=it-mil-1 répondait. La leçon Régions et zones détaille ce relevé.

L'autocomplétion complète les commandes, sous-commandes et arguments avec la touche Tab ; elle réduit fortement les erreurs de frappe sur une CLI de plusieurs centaines de commandes.

Fenêtre de terminal
# Installe le script d'autocomplétion dans la configuration de votre shell
scw autocomplete install

Redémarrez votre terminal, puis tapez scw suivi de Tab : les namespaces disponibles (instance, object, k8s, rdb, ...) s'affichent. Si vous préférez inspecter le script avant de l'installer :

Fenêtre de terminal
scw autocomplete script shell=bash

Par défaut, scw produit une sortie lisible par un humain (-o human) ; pour scripter ou filtrer, demandez du JSON avec -o json et combinez avec jq ou Python.

Fenêtre de terminal
# Nom et identifiant de chaque projet, en JSON filtré
scw account project list -o json | jq '.[] | {name, id}'

La sortie doit afficher un objet par projet avec ses deux champs. Cette approche rend vos commandes reproductibles et exploitables en pipeline CI/CD. Un piège mesuré le 2026-09-08 (2.56.3 et 2.62.0) : la forme du JSON varie d'une commande à l'autre. scw instance security-group create -o json renvoie l'objet enveloppé dans une clé security_group, alors que get et list renvoient l'objet à plat ; un script qui lit .id sur les deux sorties échoue sur l'une. Lisez toujours la sortie d'une commande avant de l'automatiser.

La CLI ajoute des commandes à chaque release, et une commande documentée en ligne peut manquer dans le binaire que votre distribution vous a installé. Deux exemples mesurés le 2026-09-08 sur cette formation :

CommandeAbsente enPrésente à partir deOrigine
scw billing budget, budget-alert, budget-alert-notification2.56.32.58.3 (24 juin 2026)commit « feat(billing): enable budget CLI » du 19 juin 2026
scw object bucket-policy, bucket-lifecycle, bucket-cors2.56.32.62.0 (1er septembre 2026)release notes v2.62.0

Le réflexe qui évite l'erreur : --list-sub-commands affiche l'arbre complet d'un namespace tel que votre binaire le connaît.

Fenêtre de terminal
scw version
scw billing --list-sub-commands

La seconde commande doit lister budget si votre version est au moins 2.58.3, et seulement charge, consumption, discount, invoice sinon. Toute page de cette formation qui utilise une commande récente indique la version à partir de laquelle elle existe.

Ces valeurs cadrent l'outil lui-même, pas le compte ; elles viennent des releases GitHub, de la doc de référence de la CLI et du relevé du 2026-09-08.

PlafondValeurSource
Dernière version stable2.62.0, publiée le 1er septembre 2026releases GitHub
Rythme de sortie8 versions entre le 25 mai et le 1er septembre 2026, soit une toutes les deux semaines environreleases GitHub
Sources de configuration, par prioritévariables d'environnement, puis profil SCW_PROFILE ou -p, puis profil par défaut du fichierdoc de référence de la CLI
Emplacements du fichier, par prioritéSCW_CONFIG_PATH, XDG_CONFIG_HOME, HOME/.config/scw/config.yamldoc de référence de la CLI
Formats de sortiehuman, json (scw help output pour les variantes)aide de la CLI
Régions et zones connuesfigées dans le binaire, lisibles dans scw <cmd> -hrelevé du 2026-09-08
Version minimale pour billing budget2.58.3dépôt scaleway-cli
Version minimale pour object bucket-policy2.62.0release notes v2.62.0

Ces erreurs ont un point commun : elles font agir la CLI sur un autre compte, une autre région ou une autre version que celle qu'on croit, sans message d'erreur.

AntipatternConséquenceDiscipline
Installer par un script curl redirigé vers sh, sans vérificationbinaire non contrôlé, exécuté avec vos droitsbinaire + SHA256SUMS, ou gestionnaire de paquets
Exporter SCW_SECRET_KEY dans ~/.bashrc « pour aller vite »la variable écrase tous les profils, pour toujours, et finit dans un historiqueprofils dans config.yaml, variables réservées à la CI
Un seul profil pour le lab et la productionune commande de nettoyage lancée sur la prodprofil lab sur un projet dédié, -p lab ou SCW_PROFILE
Recopier une commande d'un blog sans vérifier sa versionunknown command, une heure perdue à chercher une faute de frappescw version puis --list-sub-commands
Automatiser sur la sortie humancolonnes qui bougent d'une version à l'autre-o json, et lire la forme réelle de chaque commande
Laisser la CLI vieillir dans une distributionzones et commandes inconnues, aide en retard sur l'APImise à jour à chaque release utile, vérifiée par SHA256

Operational Excellence : une commande vaut une preuve

Section intitulée « Operational Excellence : une commande vaut une preuve »

Pouvez-vous rejouer ce que vous avez fait ? Oui, si chaque action est une commande scw avec -o json, et si sa sortie a été lue. La discipline est de travailler en profil nommé, de vérifier la version au début de chaque session, et d'écrire les scripts contre le JSON, jamais contre le tableau lisible.

Où vit votre secret key en ce moment ? Dans le fichier config.yaml du profil (permissions 600), ou dans le coffre de la CI, jamais dans un .bashrc ni dans un dépôt. La discipline est scw login ou scw init pour les humains, une application IAM avec sa propre clé pour les robots, et un binaire vérifié par somme de contrôle, parce qu'une CLI compromise voit passer toutes vos clés.

Ces pièges reviennent souvent chez les débutants ; les deux premiers viennent d'issues du dépôt et ont été reproduits.

SymptômeCauseSolution
scw init ignore vos réponses ou utilise un mauvais compteune variable SCW_ACCESS_KEY (ou SCW_SECRET_KEY) est exportée dans le shell et écrase le fichier (issue #1914)unset SCW_ACCESS_KEY SCW_SECRET_KEY avant scw init, ou assumez l'usage des variables
scw config set échoue au premier usageaucun fichier config.yaml n'existe encore (issue #4661)lancez d'abord scw init ou scw login, qui crée le fichier, puis scw config set
Une commande cible la mauvaise localitérégion ou zone par défaut non fixée ou héritée d'une variablescw config get default-region, puis env filtré sur SCW_, et fixer la bonne valeur
unknown command sur une commande documentéebinaire antérieur à l'ajout de la commandescw version, --list-sub-commands, mettre à jour
scw config validate passe mais l'API refusela clé est expirée ou révoquée ; validate ne teste pas l'APIscw account project list, recréer la clé si besoin
KeyError dans un script sur .idforme JSON enveloppée sur create, à plat sur getlire la sortie réelle, traiter les deux formes
sha256sum: FAILEDbinaire altéré ou téléchargement interrompuretélécharger, ne jamais installer un binaire en échec

Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

  • scw pilote tout Scaleway depuis le terminal, avec un moteur de configuration commun à Terraform et aux SDK ; version courante 2.62.0 (1er septembre 2026).
  • Installez un binaire vérifié (sha256sum --ignore-missing -c SHA256SUMS doit répondre OK) ou passez par Homebrew ou winget.
  • scw init (clé au clavier) ou scw login (navigateur) initialisent le profil ; scw account project list prouve que la clé fonctionne, scw config validate ne vérifie que le fichier.
  • Ordre de priorité : variables d'environnement > profil -p ou SCW_PROFILE > profil par défaut du fichier ; env | grep SCW_ diagnostique la plupart des confusions de compte.
  • Un profil dédié au lab (-p lab), sur un projet dédié avec un budget plafonné, protège vos comptes importants.
  • Fixez région et zone par défaut ; les zones connues sont figées dans le binaire, l'API peut en servir davantage.
  • -o json rend vos commandes scriptables, mais la forme du JSON varie : security-group create enveloppe, get non.
  • scw <ns> --list-sub-commands dit si une commande existe dans votre version : billing budget dès 2.58.3, object bucket-policy dès 2.62.0.

Les pages officielles sur lesquelles cette leçon s'appuie, avec ce qu'on y cherche ; leur champ de validation date chaque fait cité.

Ce site vous est utile ?

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

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn