Een Azure VM maken met behulp van een voorbereide installatie kopie met PowerShell

Er zijn veel redenen om een aangepaste kopie van een computer voor te bereiden. Een voorbeeld hiervan is het maken van een die moet worden gebruikt als trainingsomgeving. Laboratoriumtraining omvat vaak het inrichten van virtuele machines die al een uniforme set software bevatten en configuraties.

In de goede oude tijd van desktop virtualisatie kan een reeds bestaande virtuele machine worden "gekloond" en kan de resulterende kopie vervolgens worden gedistribueerd.

Tegenwoordig zijn er op cloud gebaseerde alternatieven zoals Azure Virtual Machines en is die truc niet langer van toepassing. In plaats van klonen kan een beheerde installatiekopie worden gemaakt die zou dienen als een "sjabloon" voor nieuwe VM's die moeten worden gemaakt.

In dit artikel leer je het stapsgewijze proces van het maken van nieuwe virtuele Azure machines op basis van een aangepaste installatiekopie.

Voorwaarden

Voordat u begint, zijn hier enkele dingen die u samen met de voorbeelden moet volgen.

De Azure Virtual Machine-installatiekopie voorbereiden

Allereerst moet de installatie kopie worden voorbereid met Sysprep en Azure PowerShell om een nieuwe virtuele machine te maken op basis van een installatie kopie.

In dit artikel wordt een virtuele Windows 10 machine gebruikt als een voor beeld van het voorbereiden van een VM-installatie kopie. Deze virtuele machine is al vooraf ingesteld met alle benodigde software, documenten en modules.

Sysprep gebruiken om het besturingssysteem te generaliseren

Als u het besturingssysteem generaliseert, wordt de Windows-installatie opnieuw ingesteld en worden computerspecifieke details verwijderd, waaronder apparaatstuurprogramma's en SID.

Raadpleeg voor meer informatie over het gebruik van Sysprep om een Windows-machine te generaliseren Sysprep (Generalize) een Windows-installatie.

Om het besturingssysteem te generaliseren, is slechts één opdrachtregel nodig. Voer deze opdracht hieronder uit in een opdracht prompt met verhoogde gegevens terwijl u bent aangemeld bij de virtuele machine. De sysprep-opties gebruikt in de opdracht zal het besturingssysteem generaliseren, de computer afsluiten en de volgende opstart zo instellen dat de out-of-the-box ervaring (OOBE) wordt weergegeven.

c:\windows\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

De onderstaande schermafbeelding toont de sysprep-progress.

Een Windows OS-installatiekopie generaliseren met Sysprep

Probeer de virtuele machine niet opnieuw op te starten nadat deze is gegeneraliseerd. Als u dit doet, wordt de status "generalized" van het besturingssysteem breekt en moet u Sysprep opnieuw uitvoeren.

Een algemene Azure Virtual Machine Image maken

Het besturingssysteem van de virtuele machine is nu gegeneraliseerd. De volgende stap is het vastleggen van een gegeneralisseerde image van de virtuele basiscomputer. Een manier waarop dit wordt gedaan, is door enkele PowerShell-opdrachten uit te voeren.

Voer de volgende stappen uit om de VM-installatie kopie te maken met PowerShell:

Definieer eerst enkele variabelen die relevant zijn voor de virtuele machine. In deze variabelen worden de waarden van de resourcegroep, de naam van de virtuele machine, de locatie en de beoogde naam voor de te maken afbeelding opgeslagen.

Zie het voorbeeld hieronder. Vervang de waarden indien nodig, behalve de $vmID.

# De naam van de basis-VM.
$VMName = "demo-vm"
# De naam van de resource groep waartoe de virtuele machine behoort.
$ResourceGroupName = "demo_group" #
De locatie waar de afbeelding wordt gemaakt.
$Location = "EastUS"
# De beoogde naam van de afbeelding die moet worden gemaakt.
$ImageName= "base_demo_image" # Haal
de ID van de virtuele machine
$vmID = (Get-AzVm -ResourceGroupName $ResourceGroupName -Name $VMName).ID

Om er vervolgens voor te zorgen dat u geen fouten tegenkomt, moet u ervoor zorgen dat de virtuele machine wordt gestopt en niet meer is toegewezen. Gebruik hiervoor de onderstaande opdracht.

Stop-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName

Het stoppen van de virtuele machine kan enkele minuten duren, wees geduldig.

De onderstaande schermafbeelding laat zien dat de virtuele machine is gestopt.

De Azure VM stoppen

Met deze volgende opdracht wordt de status van de virtuele machine gemarkeerd als "Generalized". De status Algemeen geeft aan dat de virtuele machine een geldige bron is voor het maken van een nieuwe installatiekopie van een virtuele machine.

Gebruik de onderstaande code om de VM-status in te stellen als gegeneraliseerd.

Set-AzVm -ResourceGroupName $ResourceGroupName -Name $VMName -Generalized

De volgende stap is het maken van de installatiekopieconfiguratie en deze opslaan in de variabele $newImage. Gebruik hiervoor de onderstaande opdracht.

$newImage = New-AzImageConfig -Location $location -SourceVirtualMachineId $vmID

Ten slotte is het tijd om de afbeelding te maken met deze volgende opdracht.

Nieuw-AzImage -Image $newImage -ImageName $ImageName -ResourceGroupName $ResourceGroupName

Het maken van de afbeelding kan enkele minuten duren, afhankelijk van de grootte. In dit voorbeeld duurde het ongeveer 10 minuten voordat de opdracht was voltooid.

De onderstaande schermafbeelding laat zien dat het maken van de afbeelding is geslaagd, zoals vermeld in de eigenschap ProvisioningState.

De VM-installatie kopie maken met PowerShell

Als u verder wilt bevestigen dat de afbeelding is gemaakt, controleert u het bestaan van de nieuwe afbeelding met behulp van de cmdlet Get-AzResource die specifiek is gericht op de nieuwe afbeeldingsnaam.

Get-AzResource -ResourceGroupName $ResourceGroupName -ResourceName $ImageName

Zoals u kunt in de onderstaande schermafbeelding, toont het resultaat de nieuwe afbeelding met de naam base_demo_image.

De afbeeldingsbron zoeken met PowerShell

Nieuwe virtuele Azure machines maken met behulp van de voorbereide installatie kopie

Tot nu toe hebt u geleerd hoe u de installatie kopie van de virtuele machine maakt die de basis vormt voor verdere implementaties van virtuele machines. In deze sectie maakt u verschillende virtuele machines met de voorbereide installatie kopie als bron.

Neem het onderstaande script en gebruik het om nieuwe VM's te maken. U kunt meer te weten komen over elke regel door te verwijzen naar de opmerkingen hierboven. Vergeet niet om de waarden van $vmName, $ResourceGroupName, $ImageName, $Size, $OpenPorts, $AdminUserName en $AdminPassword te veranderen.

# ---------START MODIFICATIE HIER---------

# Voeg de naam of namen toe van de nieuwe VM's die moeten worden gemaakt. $NewVMName = @('psdemo-pc001','psdemo-pc002','psdemo-pc003')

# Wijzig dit in de naam van de resourcegroep. $ResourceGroupName = 'demo_group'

# Wijzig dit in de naam van de VM-installatie kopie $ImageName = 'base_demo_image'

# Wijzig dit in de gewenste grootte van de te maken virtuele machine. $Size = 'Standard_B1ms'

# Geef de poorten op die moeten worden geopend. $OpenPorts = @('3389')

# Wijzig dit in de gewenste lokale beheerders naam voor de virtuele machine die moet worden gemaakt. $AdminUserName = "superadmin9876"

# Wijzig dit in het gewenste wachtwoord voor de lokale beheerder. $AdminPassword = ConvertTo-SecureString 'XLLBaNH7LJt2eUNr' -AsPlainText -Force

# ---------END MODIFICATION HERE---------

# Deze regel maakt een beveiligd referentieobject op basis van de gebruikersnaam en het wachtwoord $Credential = New-Object System.Management.Automation.PSCredential ($AdminUserName, $AdminPassword)

# Dit voorpunt blok loopt door de lijst met namen in $NewVMName

# maak vervolgens elke nieuwe virtuele machine met behulp van de $ImageName als bron installatie kopie.

foreach ($Name in $NewVMName) {

New-AzVm '

-ResourceGroupName $resourceGroupName '

-Name $Name ' -ImageName $ImageName '

-Location "East US" '

-VirtualNetworkName "$($resourceGroupName)-vnet" '

-SecurityGroupName "$($Name)-nsg" '

-SubnetName 'standaard' '

-PublicIpAddressNaam "$($Name)-ip" '

-DomeinnaamLabel $Name '

-Size $Size '

-Credentials $Credential '

-OpenPorts $OpenPorts

}

In PowerShell 7.0 Preview 3+ kunt u de prestaties van het script verbeteren met behulp van de functie [ForEach-Object -Parallel] (https://devblogs.microsoft.com/powershell/powershell-foreach-object-parallel-feature/ ). Als u dit doet, worden de VM's parallel gemaakt, wat resulteert in een afname van de wachttijd.

Kopieer/plak het script in de Azure PowerShell-sessie. Zodra het wordt uitgevoerd, ziet u een voortgangsindicator zoals weergegeven in de onderstaande schermafbeelding.

Nieuwe virtuele machines worden gemaakt

Het inrichtingsproces duurt enkele minuten, langer als u meer dan één virtuele machine hebt opgegeven die moet worden gemaakt. In dit voorbeeld zijn de drie virtuele machines binnen ongeveer 20 minuten gemaakt.

Wanneer u klaar bent, kunt u in de onderstaande schermafbeelding zien dat de nieuwe virtuele machines zijn gemaakt.

 

Er worden nieuwe virtuele machines gemaakt

Het wordt aanbevolen om deze nieuwe VMs te stoppen en te "deallocate" om onnodige kosten te voorkomen. U kunt ze stoppen vanuit de Azure Portal of PowerShell met behulp van dit script.

$ResourceGroupName = 'demo_group' $NewVMName
= @('psdemo-pc001','psdemo-pc002','psdemo-pc003') $NewVMName |
% {Stop-AzVM -ResourceGroupName $ResourceGroupName -Name $_ -Force}

Samenvatting

In dit artikel hebt u geleerd hoe u een installatiekopie van een virtuele machine kunt voorbereiden door zowel het besturingssysteem als de virtuele machine te generaliseren. Vervolgens hebt u geleerd hoe u een Azure-VM vastlegt om een basis installatie kopie te maken voor verdere implementaties. Ten slotte heb je geleerd hoe om meerdere virtuele machines te maken met behulp van de voorbereide installatie kopie met behulp van PowerShell-scripting.

Vergeet niet dat wat je in dit artikel hebt geleerd slechts de basis is. Naarmate u groeit in uw rol en u PowerShell blijft gebruiken om VM inrichting te automatiseren, zult u merken dat er nog veel meer kan worden gedaan. Je zult uiteindelijk valkuilen ontdekken en leer de trucs om er efficiënt omheen te werken of betere scripts te ontwerpen.

Blijf oefenen en bedankt voor het lezen!

Tags

Start nu met WhatsUp Gold

Comments
Comments are disabled in preview mode.