Aller au contenu

Utiliser Azure Cloud Shell

Introduction

Azure Cloud Shell est un terminal interactif accessible depuis un navigateur, notamment dans le portail Azure. Il permet d’administrer les ressources Azure en exécutant des commandes ou des scripts, sans installer les outils d’administration sur son ordinateur.

Microsoft fournit et maintient l’environnement d’exécution. La session est automatiquement authentifiée avec un compte Azure et les opérations exécutées restent soumises aux autorisations de ce compte.

Cloud Shell, Bash, PowerShell et outils Azure

Ces termes désignent des éléments complémentaires :

Élément Rôle
Azure Cloud Shell Environnement hébergé donnant accès au terminal.
Bash Interpréteur de commandes permettant notamment d’exécuter des scripts Bash.
PowerShell Interpréteur et langage de script manipulant des objets.
Azure CLI Outil d’administration Azure dont les commandes commencent par az.
Azure PowerShell Ensemble de modules PowerShell dont les commandes comprennent notamment Get-AzResourceGroup.

Ouvrir Cloud Shell

  1. Ouvrez le portail Azure.
  2. Sélectionnez l’icône Cloud Shell, représentée par un symbole de terminal, dans la barre supérieure.
  3. Au premier lancement, choisissez Bash ou PowerShell : Azure Cloud Shell - Sélection d'un Shell
  4. Sélectionnez l’abonnement demandé et les options de stockage.
  5. Validez, puis attendez l’affichage de l’invite de commandes.

Cloud Shell est également accessible directement à l’URL https://shell.azure.com.

Choisir le mode de stockage

Sélection d'un compte de stockage

Azure Cloud Shell - Choix d'un compte de stockage

Session sans compte de stockage

L’option indiquant qu’aucun compte de stockage n’est nécessaire permet de démarrer une session éphémère. Les fichiers créés dans cette session ne sont pas conservés une fois la session terminée. Ce mode convient pour découvrir les commandes ou réaliser une opération ponctuelle.

A noter que la non conservation des fichiers de la session ne supprime pas les ressources Azure créées via des commandes dans cette session.

Session avec stockage persistant

Pour conserver vos fichiers entre les sessions, choisissez de monter un stockage existant ou d’en créer un. Cloud Shell utilise un partage Azure Files, hébergé dans un compte de stockage. Le répertoire personnel est conservé dans une image disque et est également accessible dans le dossier clouddrive de ce répertoire.

Avec Bash :

cd ~/clouddrive
ls

Avec PowerShell :

Set-Location "$HOME/clouddrive"
Get-ChildItem

Ce stockage permet notamment de conserver des scripts et des fichiers de configuration.

Concernant la facturation

L’utilisation de la machine hébergeant Cloud Shell est gratuite.

Le stockage est facturé selon les tarifs du stockage utilisé. Les ressources créées ou utilisées par les commandes exécutées peuvent également entraîner des frais (machines virtuelles, comptes de stockage, etc.).

Vérifier l’abonnement actif

Vous devez avoir un abonnement actif pour ouvrir une session. Vous pouvez le sélectionner après avoir indiqué l'éventuel compte de stockage à utiliser.

Nous pouvons exécuter soit des commandes Azure CLI, soit des commandes PowerShell. Pour les premiers exemples, je donne les commandes pour les deux outils. Puis, préférant n'utiliser Azure CLI, je n'indiquer que les commandes le concernant.

Avec Azure CLI

Lister les abonnements accessibles :

az account list --output table

Sélectionner un abonnement, en remplaçant la valeur d’exemple par son identifiant :

az account set --subscription "IDENTIFIANT_ABONNEMENT"

Afficher le contexte actif :

az account show --output table

Avec Azure PowerShell

Get-AzSubscription
Set-AzContext -Subscription "IDENTIFIANT_ABONNEMENT"
Get-AzContext

Azure CLI et Azure PowerShell gèrent chacun leur contexte. Si vous utilisez les deux outils, vérifiez l’abonnement actif dans chacun d’eux.

Consulter les groupes de ressources

Avec Azure CLI

az group list --output table

Le paramètre --output table présente le résultat sous forme de tableau.

Pour sélectionner uniquement le nom et la région :

az group list --query "[].{Nom:name,Region:location}" --output table

Le paramètre --query applique une expression JMESPath au résultat.

Avec Azure PowerShell

Get-AzResourceGroup |
    Select-Object ResourceGroupName, Location |
    Format-Table

Le pipeline transmet les objets d’une commande à la suivante : nous sélectionnons les propriétés utiles, puis leur présentation.

Exercice : créer un groupe de ressources

Choisissez l’une des deux variantes. Utilisez un nom réservé à cet exercice et vérifiez qu’il ne désigne pas un groupe existant.

Avec Bash et Azure CLI

resource_group="rg-cloudshell-demo"
location="francecentral"

az group create --name "$resource_group" --location "$location"
az group show --name "$resource_group" --output table

Avec Azure CLI dans PowerShell

& {
    $resource_group = "rg-cloudshell-demo"
    $location = "francecentral"

    az group create --name "$resource_group" --location "$location"
    az group show --name "$resource_group" --output table
}

Avec Azure PowerShell

$resourceGroup = "rg-cloudshell-demo"
$location = "francecentral"

New-AzResourceGroup -Name $resourceGroup -Location $location
Get-AzResourceGroup -Name $resourceGroup

Actualisez la liste des groupes de ressources dans le portail pour retrouver le groupe créé.

La région d’un groupe de ressources correspond à l’emplacement de ses métadonnées. Elle n’impose pas que toutes ses ressources soient déployées dans cette région.

Nettoyer après l’exercice

Lorsque vous avez terminé, supprimez uniquement le groupe créé pour l’exercice.

Supprimer un groupe de ressources supprime également les ressources qu’il contient. Vérifiez son contenu avant de confirmer.

Avec Azure CLI :

az group delete --name "rg-cloudshell-demo"

Avec Azure PowerShell :

Remove-AzResourceGroup -Name "rg-cloudshell-demo"

Ces exemples conservent la demande de confirmation.

Échanger des fichiers avec son ordinateur

Le menu de gestion des fichiers permet de :

  • Charger un fichier de l’ordinateur vers Cloud Shell.
  • Télécharger un fichier de Cloud Shell vers l’ordinateur.

Un fichier chargé est placé dans le répertoire personnel de la session. Sans stockage persistant, téléchargez les fichiers à conserver avant de terminer la session.

Le terminal distant n’accède pas directement aux chemins locaux de votre ordinateur. Il est nécessaire de transférer les fichiers.

Modifier et exécuter un script

Le bouton Éditeur de la barre d’outils ouvre l’éditeur intégré.

Pour un premier essai en PowerShell, créez un fichier nommé list-resource-groups.ps1 contenant :

Get-AzResourceGroup |
    Select-Object ResourceGroupName, Location |
    Format-Table

Enregistrez-le dans le répertoire courant, puis exécutez :

./list-resource-groups.ps1

Pour conserver ce script entre les sessions, utilisez le stockage persistant ou téléchargez-le.

Obtenir de l’aide

Avec Azure CLI :

az --help
az group --help
az group create --help

Avec PowerShell :

Get-Help Get-AzResourceGroup
Get-Command -Module Az.Resources

Terminer une session

La commande suivante termine la session active :

exit

Cloud Shell ferme également une session après 20 minutes sans interaction.