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.
Notitie
Deze oefening is optioneel. Als u deze oefening wilt voltooien, moet u een Azure-abonnement maken voordat u begint. Als u geen Azure-account hebt of als u er op dit moment geen wilt maken, kunt u de instructies doorlezen zodat u de informatie begrijpt die wordt gepresenteerd.
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-AzAccountmaar in Cloud Shell bent u al geverifieerd. Deze stap is dus niet nodig.
Ga naar uw thuismap
Set-Location -Path $HOMEMaak een nieuw PowerShell-scriptbestand:
New-Item -Name ConferenceDailyReset.ps1 -ItemType FileOpen de geïntegreerde Visual Studio Code-editor (VS Code):
code ./ConferenceDailyReset.ps1Tip
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 )Vraag om inloggegevens 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 }In de lus, retourneer de naam voor elke VM.
Write-Output "Creating VM: $vm"Maak een VIRTUELE machine met behulp van de
$vmvariabele:$azVmParams = @{ ResourceGroupName = $ResourceGroupName Name = $vm Credential = $adminCredential Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 } New-AzVm @azVmParamsSla 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 myResourceGroupNameWacht 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 myResourceGroupNameU zou drie virtuele machines moeten zien, elk met 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.