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
- Une machine virtuelle de labo dans DevTest Labs.
- Pour Azure PowerShell, le module Az PowerShell installé sur votre station de travail. Assurez-vous que vous disposez de la dernière version. Si nécessaire, exécutez
Update-Module -Name Az
pour mettre à jour le module. - Par Azure CLI, Azure CLI installé sur votre station de travail.
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.
À 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>"
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>"
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 .
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>
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%
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"
Remplacez
<resourceGroup>
par la valeur récupérée à l’étape précédente.set RESOURCEGROUP=<resourceGroup>
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%