Oefening: Azure-resources maken met Azure PowerShell met behulp van een script
In deze les gaat u verder met het voorbeeld van een bedrijf dat Linux-beheerhulpprogramma's ontwikkelt. Het doel is om virtuele Linux-machines (VM's) te gebruiken zodat potentiële klanten uw software kunnen testen. Nu een resourcegroep al is ingesteld, is het tijd om de VIRTUELE machines te maken.
Uw bedrijf heeft een stand beveiligd op een grote Linux-beurs. U bent van plan een demogebied in te stellen met drie terminals, elk verbonden met een afzonderlijke Linux-VM. U moet de VM's verwijderen en deze aan het einde van elke dag opnieuw maken, zodat ze elke ochtend vers beginnen. Het handmatig maken van de VM's na een lange dag is foutgevoelig. U moet dus een PowerShell-script schrijven om het proces voor het maken van de VIRTUELE machine te automatiseren.
Een script schrijven om virtuele machines te maken
Volg deze stappen om een script te schrijven in Azure Cloud Shell waarmee het maken van virtuele machines wordt geautomatiseerd.
Notitie
Normaal gesproken verifieert u zich bij Azure met behulp van uw referenties, Connect-AzAccount
maar in Cloud Shell bent u al geverifieerd. Deze stap is dus niet nodig.
Ga naar uw basismap:
Set-Location -Path $HOME
Maak een nieuw PowerShell-scriptbestand:
New-Item -Name ConferenceDailyReset.ps1 -ItemType File
Open de geïntegreerde Visual Studio Code-editor (VS Code):
code ./ConferenceDailyReset.ps1
Tip
De geïntegreerde Cloud Shell-editor ondersteunt ook vim, nano en emacs als u liever een van deze editors gebruikt.
Definieer een parameter voor de naam van de resourcegroep:
Voeg de volgende regel toe aan het script:
param ( [string]$ResourceGroupName )
Vragen om referenties van de VM-beheerder:
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
Maak een lus om drie keer uit te voeren:
$vms = 'web','app','sql' foreach ($vm in $vms) { $vm }
Retourneer in de lus de naam voor elke VIRTUELE machine:
Write-Output "Creating VM: $vm"
Maak een VIRTUELE machine met behulp van de
$vm
variabele:$azVmParams = @{ ResourceGroupName = $ResourceGroupName Name = $vm Credential = $adminCredential Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 } New-AzVm @azVmParams
Sla het bestand op:
Als u het script wilt opslaan, gebruikt u het contextmenu met het beletselteken (
...
) in de rechterbovenhoek van de editor of de sneltoets Ctrl + S.
Voltooid script
Het voltooide script moet eruitzien als in het volgende voorbeeld:
param (
[string]$ResourceGroupName
)
$adminCredential = Get-Credential -Message 'Enter a username and password for the VM administrator.'
$vms = 'web','app','sql'
foreach ($vm in $vms) {
Write-Output "Creating VM: $vm"
$azVmParams = @{
ResourceGroupName = $ResourceGroupName
Name = $vm
Credential = $adminCredential
Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest'
OpenPorts = 22
}
New-AzVm @azVmParams
}
Nadat u hebt bevestigd dat uw script eruitziet als de code in het vorige voorbeeld, sluit u de editor met behulp van het contextmenu met het beletselteken (...
) in de rechterbovenhoek van de editor of de sneltoets Ctrl +
Q.
Het script uitvoeren
Voer het script uit met behulp van de volgende opdracht:
./ConferenceDailyReset.ps1 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Wacht op voltooiing. Het uitvoeren van het script duurt enkele minuten.
Controleer de VM's. Zodra het script is voltooid, controleert u of het is voltooid door de VM's in de resourcegroep weer te geven:
Get-AzVM -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Als het goed is, ziet u drie virtuele machines die allemaal zijn voorzien van een unieke naam.
U hebt een script gemaakt waarmee het maken van drie VM's, elk in een specifieke resourcegroep, wordt geautomatiseerd, zodat deze klaar zijn voor dagelijkse demo's op de beurs. Hoewel het script kort en eenvoudig is, versnelt het een proces dat anders tijdrovend en foutgevoelig zou zijn als het handmatig wordt uitgevoerd via Azure Portal.