Wat is Azure Automation State Configuration?
U kunt Azure Automation State Configuration gebruiken om ervoor te zorgen dat de virtuele machines (VM's) in een clustergebied een consistente status hebben, waarbij dezelfde software is geïnstalleerd en dezelfde configuraties.
In deze les leert u meer over de functies en mogelijkheden van Azure Automation, bekijkt u het declaratieve model van PowerShell Desired State Configuration (DSC) en bekijkt u de voordelen ervan.
Azure Automation State Configuration is een Azure-service die is gebouwd op PowerShell. Hiermee kunt u consistent de gewenste status van al uw resources implementeren, betrouwbaar bewaken en automatisch bijwerken. Azure Automation biedt hulpprogramma's om configuraties te definiëren en toe te passen op echte en virtuele machines.
Waarom Azure Automation State Configuration gebruiken?
Het handmatig onderhouden van een juiste en consistente configuratie voor de servers waarop uw services worden uitgevoerd, kan lastig en foutgevoelig zijn. Azure Automation State Configuration maakt gebruik van PowerShell DSC om deze uitdagingen aan te pakken. Het beheert uw DSC-artefacten en het DSC-proces centraal.
Azure Automation State Configuration heeft een ingebouwde pull-server. U kunt knooppunten richten op het automatisch ontvangen van configuraties van deze pull-server, voldoen aan de gewenste status en rapporteren over hun naleving. U kunt zich richten op virtuele of fysieke Windows- of Linux-machines, in de cloud of on-premises.
U kunt Azure Monitor-logboeken gebruiken om de naleving van uw knooppunten te controleren door Azure Automation State Configuration te configureren om deze gegevens te verzenden.
Wat is PowerShell DSC?
PowerShell DSC is een declaratief beheerplatform dat azure Automation State Configuration gebruikt voor het configureren, implementeren en beheren van systemen. Een declaratieve programmeertaal scheidt de intentie (wat u wilt doen) van de uitvoering (hoe u dit wilt doen). U geeft de gewenste status op en laat DSC het werk doen om daar te komen. U hoeft niet te weten hoe u een functie implementeert of inzet wanneer een DSC-resource beschikbaar is. In plaats daarvan kunt u zich richten op uw implementatiestructuur.
Als u PowerShell al gebruikt, vraagt u zich misschien af waarom u DSC nodig hebt. Bekijk het volgende voorbeeld.
Als u een share wilt maken op een Windows-server, kunt u deze PowerShell-opdracht gebruiken:
# Create a file share
New-SmbShare -Name MyFileShare -Path C:\Shared -FullAccess User1 -ReadAccess User2
Dit script is eenvoudig en gemakkelijk te begrijpen. Als u dit script echter in productie gebruikt, ondervindt u verschillende problemen. Bedenk wat er kan gebeuren als het script meerdere keren wordt uitgevoerd of als User2
al volledige toegang heeft in plaats van alleen-lezentoegang.
Deze benadering is niet idempotent. Idempotentie beschrijft een bewerking die hetzelfde effect heeft, ongeacht of u deze eenmaal of 10.001 keer uitvoert. Als u idempotentie in PowerShell wilt bereiken, moet u logica en foutafhandeling toevoegen. Als de bestandsshare niet bestaat, maakt u deze. Als de share wel bestaat, hoeft u deze niet te maken. Als User2
bestaat maar geen leestoegang heeft, voegt u leestoegang toe.
Uw PowerShell-script ziet er ongeveer als volgt uit:
$shareExists = $false
$smbShare = Get-SmbShare -Name $Name -ErrorAction SilentlyContinue
if($smbShare -ne $null)
{
Write-Verbose -Message "Share with name $Name exists"
$shareExists = $true
}
if ($shareExists -eq $false)
{
Write-Verbose "Creating share $Name to ensure it is Present"
New-SmbShare @psboundparameters
}
else
{
# Need to call either Set-SmbShare or *ShareAccess cmdlets
if ($psboundparameters.ContainsKey("ChangeAccess"))
{
#...etc., etc., etc
}
}
Andere speciale gevallen die u niet hebt overwogen, kunnen alleen aan het licht komen wanneer er problemen optreden. DSC verwerkt onverwachte gevallen automatisch. Met DSC beschrijft u het resultaat in plaats van het proces om het resultaat te bereiken.
In het volgende DSC-codefragment ziet u een voorbeeld:
Configuration Create_Share
{
Import-DscResource -Module xSmbShare
# A node describes the VM to be configured
Node $NodeName
{
# A node definition contains one or more resource blocks
# A resource block describes the resource to be configured on the node
xSmbShare MySMBShare
{
Ensure = "Present"
Name = "MyFileShare"
Path = "C:\Shared"
ReadAccess = "User1"
FullAccess = "User2"
Description = "This is an updated description for this share"
}
}
}
In het voorgaande voorbeeld wordt de xSmbShare
-module gebruikt, waarmee DSC hoe de status van een bestandsshare controleert. De DSC Resource Kit heeft meer dan 100 resourcemodules, waaronder een voor het installeren van een IIS-site. Aan het einde van deze module vindt u een koppeling naar de DSC Resource Kit in de samenvattingseenheid.
In de volgende les leert u meer over de PowerShell DSC-codestructuur.
Wat is de LCM?
De lokale Configuration Manager (LCM) is een onderdeel van het Windows Management Framework (WMF) op een Windows-besturingssysteem. De LCM is verantwoordelijk voor het bijwerken van de status van een knooppunt, zoals een VM, zodat deze overeenkomt met de gewenste status. Telkens wanneer de LCM wordt uitgevoerd, voltooit het de volgende stappen:
- Ophalen: Haalt de huidige status van het knooppunt op.
- Test: vergelijkt de huidige status van een knooppunt met de gewenste status met behulp van een gecompileerd DSC-script (.mof-bestand).
- instellen: werkt het knooppunt bij zodat het overeenkomt met de gewenste status die wordt beschreven in het .mof-bestand.
U configureert de LCM wanneer u een VIRTUELE machine registreert bij Azure Automation.
Push- en pull-architecturen in DSC
De LCM op elk knooppunt kan in twee modi worden uitgevoerd.
Pushmodus: een beheerder verzendt de configuraties handmatig of pushtdeze naar een of meer knooppunten. De LCM zorgt ervoor dat de status op elk knooppunt overeenkomt met wat de configuratie aangeeft.
Pull-modus: een pull-server houdt de configuratiegegevens vast. De LCM op elk knooppunt peilt de pull-server met regelmatige tussenpozen (standaard elke 15 minuten) om de meest recente configuratiegegevens op te halen. Deze aanvragen worden aangeduid als stap 1 in het volgende diagram. In stap 2 verzendt de pull-server de details over eventuele configuratiewijzigingen terug naar elk knooppunt.
In de pull-modus moet elk knooppunt worden geregistreerd bij de pull-service.
Beide modi hebben voordelen:
- De pushmodus is eenvoudig in te stellen. Het heeft geen eigen toegewezen infrastructuur nodig en kan worden uitgevoerd op een laptop. De pushmodus is handig om de functionaliteit van DSC te testen. U kunt ook de pushmodus gebruiken om een recent geïmageerde machine naar de gewenste baseline-toestand te krijgen.
- De pull-modus is handig in een bedrijfsimplementatie die een groot aantal machines omvat. De LCM pollt regelmatig de pull-server en zorgt ervoor dat de knooppunten de gewenste status hebben. Als een extern hulpprogramma of team hotfixes toepast die leiden tot configuratiedrift op afzonderlijke machines, worden deze machines snel weer in overeenstemming gebracht met de configuratie die u hebt ingesteld. Dit proces kan u helpen bij het realiseren van een status van continue naleving voor uw beveiligings- en regelgevingsverplichtingen.
Ondersteunde platforms en besturingssystemen
Azure Automation DSC wordt ondersteund door Azure Cloud Services en andere cloudproviders, uw on-premises infrastructuur of een hybride versie van al deze omgevingen.
Azure Automation DSC ondersteunt de volgende besturingssystemen:
- Windows
- Server 2022
- Server 2019
- Server 2016
- Server 2012 R2
- Server 2012
- Server 2008 R2 SP1
- 11
- 10
- 8.1
- 7
- Linux
- De DSC Linux-extensie ondersteunt alle Linux-distributies die worden vermeld in de PowerShell DSC-documentatie.
PowerShell DSC is geïnstalleerd op alle Linux-machines die Azure Automation DSC ondersteunt.
DSC-vereisten voor Windows
Voor Windows-machines gebruikt de VM-extensie Desired State Configuration (DSC) van Azure WMF voor het beheren van Windows-functieversies zoals Windows PowerShell DSC en Windows Remote Management (WinRM). Azure DSC ondersteunt WMF 4.0 en hoger, dus Windows-computers moeten Windows Server 2008 R2 SP1, Windows 7 of hoger uitvoeren.
De eerste keer dat de Azure DSC-extensie wordt aangeroepen, wordt een besturingssysteemcompatibele versie van WMF geïnstalleerd op alle Windows-versies, met uitzondering van Windows Server 2016 en hoger. Windows Server 2016 en nieuwere versies hebben al de nieuwste versie van WMF geïnstalleerd. Nadat WMF is geïnstalleerd, moet de computer opnieuw worden opgestart.
WinRM is ingeschakeld op computerknooppunten met Windows Server 2012 of hoger en Windows 7 of hoger.
Proxyondersteuning voor de DSC-agent is beschikbaar in Windows-builds 1809 en hoger. Proxyondersteuning is niet beschikbaar in DSC voor eerdere versies van Windows.
Overige DSC-vereisten
Als uw knooppunten zich in een privénetwerk bevinden, heeft DSC de volgende poort en URL's nodig om te communiceren met Azure Automation:
- poort: alleen TCP 443 is vereist voor uitgaande internettoegang
- algemene URL: *.azure-automation.net
- globale URL van US Gov Virginia: *.azure-automation.us
-
Agentendienst: https://
<workspaceId>
.agentsvc.azure-automation.net