Als uw team begint met het voorzien en configureren van meer Windows Azure virtuele machines (VM’s), zult u op een gegeven moment moe worden van het steeds opnieuw uitvinden van het wiel. U heeft automatisering nodig! In dit artikel neem ik u stap voor stap mee om te beginnen met het gebruik van Azure-aangepaste scripts om Azure-scripts op uw VM’s uit te voeren.
Als uw team zich in een Windows-omgeving bevindt, is een van de beste tools om serverconfiguratie te automatiseren PowerShell. Door de Azure PowerShell-module te gebruiken, kan uw organisatie de kracht van PowerShell benutten om niet alleen on-prem-taken te automatiseren, maar ook om opdrachten op Azure-VM’s uit te voeren in bulk in plaats van één voor één.
Een functie die Microsoft ons heeft gegeven, heet de Azure-aangepaste scriptextensie. De aangepaste scriptextensie is een Azure-virtuele machine-extensie die door de VM-agent wordt uitgevoerd om willekeurige PowerShell-code tegen uw VM’s uit te voeren met behulp van de Azure-API in plaats van in te loggen op de VM of PowerShell-remoting te gebruiken.
Op deze manier opdrachten uitvoeren biedt verschillende voordelen. Opdrachten uitvoeren met behulp van de Azure-aangepaste extensie in Windows:
- biedt verhoogde beveiliging doordat u geen netwerkpoorten hoeft te openen voor PowerShell-remoting
- maakt eenvoudige uitvoering van PowerShell-code bij het opstarten van VM’s mogelijk
- transfereert automatisch resources van Azure-opslag naar uw VM als onderdeel van het provisioningproces
- Een eenvoudige manier om PowerShell-scripts uit te voeren die zijn opgeslagen in verschillende Azure-opslagaccounts
Het inschakelen van een Azure-aangepaste scripts-uitbreiding voor Windows kan op verschillende manieren worden gedaan. In dit artikel zullen we ons richten op het inschakelen van de aangepaste scripts-uitbreiding via PowerShell, maar je kunt de uitbreiding ook inschakelen via een Azure Resource Manager (ARM)-sjabloon.
Als eenvoudig voorbeeld, laten we zeggen dat je PowerShell-remoting wilt inschakelen op een Azure-VM in je abonnement. Om dit te doen, moet je de volgende opdracht lokaal op elke VM uitvoeren:
Laten we een aangepaste scripts-uitbreiding bouwen om dit te doen.
Het uitvoeren van een script op een VM met Azure
Eerst maak je een PowerShell-script genaamd Enable-PSRemoting.ps1 op je lokale computer met de bovenstaande opdracht erin. Dit script moet worden uitgevoerd op een Azure-VM. Hiervoor zullen we een ander klein PowerShell-script bouwen genaamd New-CustomScriptExtension.ps1 om het geüpload te krijgen in Azure en een aangepaste scripts-uitbreiding gemaakt om het uit te voeren. Voordat we te ver gaan, heb je een paar items nodig:
- De naam van de Azure-resourcegroep en de opslagaccountnaam waarin het script wordt opgeslagen
- De naam van de Azure-opslagcontainer
- De VM-naam
- De naam van de Azure-resourcegroep waarin de VM zich bevindt
Dit script kan worden opgesplitst in twee secties; het kleine PowerShell-script uploaden naar Azure en de aangepaste scripts-uitbreiding maken. Alles wat overblijft, is nodig om deze twee processen aan elkaar te lijmen.
Een PowerShell-script uploaden naar Azure
Als eerste zullen we het script Enable-PSRemoting.ps1 uploaden naar de Azure-opslagaccount ($StorageAccountName
) binnen de container ($ContainerName
) in de resourcegroep ($ResourceGroupName
).
Het uitvoeren van de aangepaste scriptextensie
Wanneer je New-CustomScriptExtension.ps1 uitvoert, zal dit script het script Enable-PSRemoting.ps1 uploaden naar het opgegeven Azure-opslagaccount.
Nu het script is opgeslagen in Azure, kun je het uitvoeren via de aangepaste scriptextensie voor de VM:
- Naam:
$VMName
- Resourcegroep:
$rgName
- Opslagaccount:
$saName
- Opslagcontainer:
$scName
Open een teksteditor voor New-CustomScriptExtension.ps1 en plak het onderstaande voorbeeld erin. Wanneer je dit uitvoert, wordt de Azure-aangepaste scriptextensie voor Windows uitgevoerd, die het eerder geüploade PowerShell-script Enable-PSRemoting.ps1 zal uitvoeren.
Samenvatting
Zodra dit script is voltooid, kunt u verifiëren dat Enable-PSRemoting.ps1 is uitgevoerd op de VM en dat PowerShell-remoting succesvol is ingeschakeld. U zou nu in staat moeten zijn om Invoke-Command
te gebruiken tegen uw Azure VM.
Door gebruik te maken van de Azure-aangepaste scriptextensie in Windows, hebt u nu de mogelijkheid om op afstand allerlei soorten PowerShell-scripts uit te voeren op uw Azure VM’s.
Source:
https://adamtheautomator.com/azure-run-script-on-vm/