Partager via


Utiliser les lignes de commande pour démarrer et arrêter des machines virtuelles DevTest Labs

Cet article explique comment démarrer ou arrêter des machines virtuelles Azure DevTest Labs à l’aide de lignes de commande et de scripts Azure PowerShell ou Azure CLI.

Vous pouvez démarrer, arrêter ou redémarrer des machines virtuelles DevTest Labs à l’aide du portail Azure. Vous pouvez également utiliser le portail pour configurer des planifications de démarrage automatique et d’arrêt automatique, ainsi que des stratégies pour machines virtuelles de labo.

Lorsque vous souhaitez automatiser le démarrage ou l’arrêt de machines virtuelles de labo ou créer un script pour celles-ci, utilisez des commandes PowerShell ou Azure CLI. Par exemple, vous pouvez utiliser des commandes de démarrage ou d’arrêt pour :

  • Tester une application à trois niveaux, où les niveaux doivent démarrer dans une séquence.
  • Désactiver des machines virtuelles pour réduire les coûts quand elles répondent à des critères personnalisés.
  • Démarrer quand un flux de travail d’intégration continue et livraison continue (CI/CD) commence, s’arrêter quand il se termine. Pour obtenir un exemple de ce flux de travail, consultez Exécuter une fabrique d’images depuis Azure DevOps.

Prérequis

Script Azure PowerShell

Le script PowerShell suivant démarre ou arrête une machine virtuelle dans un labo à l’aide de la cmdlet Invoke-AzResourceAction. Le paramètre ResourceId est l’ID complet de la machine virtuelle de labo que vous voulez démarrer ou arrêter. Le paramètre Action détermine s’il faut démarrer ou arrêter la machine virtuelle, en fonction de l’action dont vous avez besoin.

  1. À partir de votre station de travail, utilisez la cmdlet PowerShell Connecter-AzAccount pour vous connecter à votre compte Azure. Si vous avez plusieurs abonnements Azure, supprimez les marques de commentaire de la ligne Set-AzContext et spécifiez le <Subscription ID> que vous souhaitez utiliser.

    # Sign in to your Azure subscription
    $sub = Get-AzSubscription -ErrorAction SilentlyContinue
    if(-not($sub))
    {
        Connect-AzAccount
    }
    
    # Set-AzContext -SubscriptionId "<Subscription ID>"
    
  2. Fournissez des valeurs pour <lab name> et <VM name>, puis entrez l’action souhaitée pour <Start or Stop>.

    $devTestLabName = "<lab name>"
    $vMToStart = "<VM name>"
    
    # The action on the virtual machine (Start or Stop)
    $vmAction = "<Start or Stop>"
    
  3. Démarrez ou arrêtez la machine virtuelle en fonction de la valeur que vous avez passée à $vmAction.

    # Get the lab information
    $devTestLab = Get-AzResource -ResourceType 'Microsoft.DevTestLab/labs' -ResourceName $devTestLabName
    
    # Start or stop the VM and return a succeeded or failed status
    $returnStatus = Invoke-AzResourceAction `
                        -ResourceId "$($devTestLab.ResourceId)/virtualmachines/$vMToStart" `
                        -Action $vmAction `
                        -Force
    
    if ($returnStatus.Status -eq 'Succeeded') {
        Write-Output "##[section] Successfully updated DTL machine: $vMToStart, Action: $vmAction"
    }
    else {
        Write-Error "##[error] Failed to update DTL machine: $vMToStart, Action: $vmAction"
    }
    

Script d’interface de ligne de commande Azure

Le script suivant fournit des commandes Azure CLI pour démarrer ou arrêter une machine virtuelle de labo. Les variables dans ce script sont destinées à un environnement Windows, tel qu’une invite de commandes. Il existe de légères variations pour les environnements Bash ou autres .

  1. Fournissez des valeurs appropriées pour <Subscription ID>, <lab name>, <VM name> et l’action <Start or Stop> à entreprendre.

    set SUBSCRIPTIONID=<Subscription ID>
    set DEVTESTLABNAME=<lab name>
    set VMNAME=<VM name>
    set ACTION=<Start or Stop>
    
  2. Connectez-vous à votre compte Azure. Si vous avez plusieurs abonnements Azure, supprimez les marques de commentaire de la ligne az account set pour utiliser l’ID d’abonnement que vous avez fourni.

    az login
    
    REM az account set --subscription %SUBSCRIPTIONID%
    
  3. Récupérez le nom du groupe de ressources contenant le labo.

    az resource list --resource-type "Microsoft.DevTestLab/labs" --name %DEVTESTLABNAME% --query "[0].resourceGroup"
    
  4. Remplacez <resourceGroup> par la valeur récupérée à l’étape précédente.

    set RESOURCEGROUP=<resourceGroup>
    
  5. Exécutez la ligne de commande pour démarrer ou arrêter la machine virtuelle, en fonction de la valeur que vous avez passée à ACTION.

    az lab vm %ACTION% --lab-name %DEVTESTLABNAME% --name %VMNAME% --resource-group %RESOURCEGROUP%
    

Étapes suivantes