Inleiding tot de uitbreiding van de Desired State Configuration-handler

De Azure VM-extensie voor virtuele Azure-machines (VM) en de bijbehorende extensies maken deel uit van de Infrastructuurservices van Microsoft Azure. Azure VM-extensies zijn softwareonderdelen waarmee vm-functionaliteit wordt uitgebreid en verschillende VM-beheerbewerkingen worden vereenvoudigd.

Het primaire gebruik voor de DSC-extensie (Azure Desired State Configuration) voor Windows PowerShell is het opstarten van een VIRTUELE machine naar de DSC-service (Azure Automation State Configuration). Deze service biedt voordelen , waaronder doorlopend beheer van de VM-configuratie en -integratie met andere operationele hulpprogramma's, zoals Azure Monitor. U kunt de extensie gebruiken om uw VM's te registreren bij de service en een flexibele oplossing te krijgen die in azure-abonnementen werkt.

U kunt de DSC-extensie onafhankelijk van de Automation DSC-service uitvoeren, maar met deze methode wordt alleen een configuratie naar de VIRTUELE machine gepusht. Er is geen doorlopende rapportage beschikbaar, behalve lokaal in de VIRTUELE machine. Voordat u de DSC-extensie inschakelt, controleert u de beschikbare DSC-versies en kiest u de versie die ondersteuning biedt voor uw configuratievereisten.

In dit artikel wordt beschreven hoe u de DSC-extensie voor automation-onboarding gebruikt of als hulpprogramma gebruikt om configuraties toe te wijzen aan VM's met de Azure SDK.

Beschikbare DSC-versies

Er zijn verschillende versies van Desired State Configuration beschikbaar voor implementatie. Voordat u de DSC-extensie inschakelt, kiest u de DSC-versie die het beste ondersteuning biedt voor uw configuratie- en bedrijfsdoelen.

Versie Beschikbaarheid Beschrijving
2.0 Algemene beschikbaarheid Desired State Configuration 2.0 wordt ondersteund voor gebruik met de azure Automanage Machine Configuration-functie . De functie voor machineconfiguratie combineert functies van de DSC-extensiehandler, Azure Automation State Configuration en de meest aangevraagde functies uit feedback van klanten. Machineconfiguratie omvat ook ondersteuning voor hybride machines via servers met Arc.
1.1 Algemene beschikbaarheid Als uw implementatie niet gebruikmaakt van de configuratiefunctie van de Azure Automanage-machine, moet u Desired State Configuration 1.1 kiezen. Zie PSDesiredStateConfiguration v1.1 voor meer informatie.
3.0 Openbare preview Desired State Configuration 3.0 is beschikbaar in de openbare bètaversie. Deze versie moet alleen worden gebruikt met azure-machineconfiguratie of voor niet-productieomgevingen om de migratie van Desired State Configuration 1.1 te testen.

Vereisten

  • Lokale computer: Als u wilt communiceren met de Azure DSC-extensie, moet u de Azure-portal of de Azure PowerShell SDK op de lokale computer gebruiken.

  • Gastagent: De Azure-VM die is voorbereid door de DSC-configuratie, moet een besturingssysteem gebruiken dat WMF 4.0 of hoger (Windows Management Framework) ondersteunt. Zie de versiegeschiedenis van de Azure DSC-extensie voor de volledige lijst met ondersteunde besturingssysteemversies.

Termen en concepten

In dit artikel wordt ervan uitgegaan dat u bekend bent met de volgende concepten:

  • Configuratie verwijst naar een DSC-configuratiedocument.

  • Knooppunt identificeert een doel voor een DSC-configuratie. In dit artikel verwijst knooppunt altijd naar een Azure-VM.

  • Configuratiegegevens worden opgeslagen in een PowerShell DSC-indelingsbestand (.psd1) met omgevingsgegevens voor een configuratie.

Architectuur

De Azure DSC-extensie maakt gebruik van het Azure VM-extensieframework voor het leveren, uitvoeren en rapporteren van DSC-configuraties die worden uitgevoerd op Azure-VM's. De DSC-extensie accepteert een configuratiedocument en een set parameters. Als er geen bestand wordt opgegeven, wordt een standaardconfiguratiescript ingesloten met de extensie. Het standaardconfiguratiescript wordt alleen gebruikt voor het instellen van metagegevens in Local Configuration Manager.

Wanneer de extensie de eerste keer wordt aangeroepen, wordt een versie van WMF geïnstalleerd met behulp van de volgende logica:

  • Als het besturingssysteem van de Azure-VM Windows Server 2016 is, wordt er geen actie ondernomen. Windows Server 2016 heeft al de nieuwste versie van PowerShell geïnstalleerd.

  • Als de wmfVersion eigenschap is opgegeven, wordt de opgegeven versie van WMF geïnstalleerd, tenzij de opgegeven versie niet compatibel is met het besturingssysteem op de virtuele machine.

  • Als er geen wmfVersion eigenschap is opgegeven, wordt de meest recente toepasselijke versie van WMF geïnstalleerd.

Voor het WMF-installatieproces moet opnieuw worden opgestart. Nadat u opnieuw hebt opgestart, downloadt de extensie het ZIP-bestand dat is opgegeven in de modulesUrl eigenschap, indien opgegeven. Als deze locatie zich in Azure Blob Storage bevindt, kunt u een SAS-token opgeven in de sasToken eigenschap voor toegang tot het bestand. Nadat de .zip is gedownload en uitgepakt, wordt de configuratiefunctie die is gedefinieerd in configurationFunction uitvoeringen uitgevoerd om een MOF-bestand (Managed Object Format) (.mof) te genereren. De extensie voert vervolgens de Start-DscConfiguration -Force opdracht uit met behulp van het gegenereerde .mof-bestand. De extensie legt uitvoer vast en schrijft deze naar het Azure-statuskanaal.

Standaardconfiguratiescript

De Azure DSC-extensie bevat een standaardconfiguratiescript dat is bedoeld om te worden gebruikt wanneer u een VIRTUELE machine onboardt naar de Azure Automation State Configuration-service. De scriptparameters worden afgestemd op de configureerbare eigenschappen van Local Configuration Manager. Zie Het standaardconfiguratiescript in de Desired State Configuration-extensie met ARM-sjablonen (Azure Resource Manager) voor scriptparameters. Zie de Azure-quickstartsjabloon in GitHub voor het volledige script.

Registratie van Azure Automation State Configuration

Wanneer u de Azure DSC-extensie gebruikt om een knooppunt te registreren bij de Azure Automation State Configuration-service, geeft u de volgende waarden op:

  • RegistrationUrl: het https-adres van het Azure Automation-account.
  • RegistrationKey: Een gedeeld geheim dat wordt gebruikt voor het registreren van knooppunten bij de service.
  • NodeConfigurationName: de naam van de knooppuntconfiguratie (MOF) die moet worden opgehaald uit de service om de serverfunctie te configureren. De waarde is de naam van de knooppuntconfiguratie en niet de naam van de configuratie.

U kunt deze waarden verzamelen vanuit Azure Portal of de volgende opdrachten uitvoeren in Windows PowerShell:

(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).Endpoint
(Get-AzAutomationRegistrationInfo -ResourceGroupName <resourcegroupname> -AutomationAccountName <accountname>).PrimaryKey

Naam van de knooppuntconfiguratie

Zorg ervoor dat u voor de NodeConfigurationName parameter de naam van de knooppuntconfiguratie opgeeft en niet de configuratie.

De configuratie wordt gedefinieerd in een script dat wordt gebruikt om de knooppuntconfiguratie (MOF-bestand) te compileren. De naam van de knooppuntconfiguratie is altijd de naam van de configuratie, gevolgd door een punt . en een localhost of een specifieke computernaam.

Waarschuwing

Zorg ervoor dat de knooppuntconfiguratie bestaat in Azure Automation State Configuration. Als deze waarde niet bestaat, retourneert de extensie-implementatie een fout.

ARM-sjabloonimplementatie

De meest voorkomende benadering voor het implementeren van de DSC-extensie is het gebruik van Azure Resource Manager-sjablonen. Zie de Desired State Configuration-extensie met ARM-sjablonen voor meer informatie en voorbeelden van het opnemen van de DSC-extensie in ARM-sjablonen.

Implementatie van PowerShell-cmdlets

PowerShell-cmdlets voor het beheren van de DSC-extensie zijn ideaal voor interactieve probleemoplossings- en informatieverzamelingsscenario's. U kunt de cmdlets gebruiken voor het verpakken, publiceren en bewaken van DSC-extensie-implementaties. Cmdlets voor de DSC-extensie worden momenteel niet bijgewerkt om te werken met het standaardconfiguratiescript.

Hier volgen enkele PowerShell-cmdlets die beschikbaar zijn:

  • De cmdlet Publish-AzVMDscConfiguration neemt een configuratiebestand op, scant het naar afhankelijke DSC-resources en maakt vervolgens een ZIP-bestand. Het ZIP-bestand bevat de configuratie- en DSC-resources die nodig zijn om de configuratie uit te voeren. De cmdlet kan het pakket ook lokaal maken met behulp van de -OutputArchivePath parameter. Anders publiceert de cmdlet het ZIP-bestand naar Blob Storage en beveiligt het vervolgens met een SAS-token.

    Het PowerShell-configuratiescript (.ps1) dat door de cmdlet is gemaakt, bevindt zich in het ZIP-bestand in de hoofdmap van de archiefmap. De modulemap wordt in de archiefmap in resources geplaatst.

  • De cmdlet Set-AzVMDscExtension injecteert de instellingen die de PowerShell DSC-extensie nodig heeft in een VM-configuratieobject.

  • De cmdlet Get-AzVMDscExtension haalt de DSC-extensiestatus van een specifieke VM op.

  • De cmdlet Get-AzVMDscExtensionStatus haalt de status op van de DSC-configuratie die wordt uitgevoerd door de DSC-extensiehandler. Deze actie kan worden uitgevoerd op één virtuele machine of een groep vm's.

  • De cmdlet Remove-AzVMDscExtension verwijdert de extensiehandler van een specifieke VM. Houd er rekening mee dat deze cmdlet de configuratie niet verwijdert, WMF verwijdert of de toegepaste instellingen op de virtuele machine wijzigt. De cmdlet verwijdert alleen de extensiehandler.

Belangrijke aandachtspunten

Er zijn verschillende overwegingen waarmee u rekening moet houden bij het werken met Azure Resource Manager-cmdlets.

  • Azure Resource Manager-cmdlets zijn synchroon.

  • Er zijn verschillende parameters vereist, waaronder ResourceGroupName, VMName, ArchiveStorageAccountName, , Versionen Location.

  • ArchiveResourceGroupName is een optionele parameter. Geef deze parameter op wanneer uw opslagaccount deel uitmaakt van een andere resourcegroep dan die waar de VIRTUELE machine wordt gemaakt.

  • Gebruik de AutoUpdate schakeloptie om de extensiehandler automatisch bij te werken naar de nieuwste versie wanneer deze beschikbaar is. Deze parameter kan ertoe leiden dat de VM opnieuw wordt opgestart wanneer er een nieuwe versie van WMF wordt uitgebracht.

Configuratie met PowerShell-cmdlets

De Azure DSC-extensie kan DSC-configuratiedocumenten gebruiken om azure-VM's rechtstreeks te configureren tijdens de implementatie. Met deze stap wordt het knooppunt niet geregistreerd bij Automation. Houd er rekening mee dat het knooppunt niet centraal wordt beheerd.

De volgende code toont een eenvoudige voorbeeldconfiguratie. Als u met dit voorbeeld wilt werken, slaat u deze configuratie lokaal op als het scriptbestand iisInstall.ps1 .

configuration IISInstall
{
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

Met de volgende PowerShell-opdrachten plaatst u het script iisInstall.ps1 op de opgegeven VM. De opdrachten voeren ook de configuratie uit en rapporteren vervolgens weer over de status.

$resourceGroup = 'dscVmDemo'
$vmName = 'myVM'
$storageName = 'demostorage'
#Publish the configuration script to user storage
Publish-AzVMDscConfiguration -ConfigurationPath .\iisInstall.ps1 -ResourceGroupName $resourceGroup -StorageAccountName $storageName -force
#Set the VM to run the DSC configuration
Set-AzVMDscExtension -Version '2.76' -ResourceGroupName $resourceGroup -VMName $vmName -ArchiveStorageAccountName $storageName -ArchiveBlobName 'iisInstall.ps1.zip' -AutoUpdate -ConfigurationName 'IISInstall'

Implementatie van Azure CLI

De Azure CLI kan worden gebruikt om de DSC-extensie te implementeren op een bestaande VM. In de volgende voorbeelden ziet u hoe u een virtuele machine implementeert in Windows.

Gebruik de volgende opdracht voor een virtuele machine waarop Windows wordt uitgevoerd:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name DSC \
  --publisher Microsoft.Powershell \
  --version 2.77 --protected-settings '{}' \
  --settings '{}'

Implementatie van Azure Portal

Voer de volgende stappen uit om de DSC-extensie in Azure Portal in te stellen:

  1. Ga naar een virtuele machine.

  2. Selecteer onder Instellingen Extensies en toepassingen.

  3. Selecteer +Toevoegen onder Extensies.

  4. Selecteer PowerShell Desired State Configuration en selecteer Vervolgens.

  5. Configureer de volgende parameters voor de DSC-extensie.

    Notitie

    Als u met een standaardconfiguratiescript werkt, moet u er rekening mee houden dat de meeste van de volgende parameters rechtstreeks in Azure Portal moeten worden gedefinieerd in plaats van via het script.

    • Configuratiemodules of script: (vereist) geef de configuratiemodules of het scriptbestand voor uw VIRTUELE machine op.

      Voor configuratiemodules en -scripts is een PS1-bestand met een configuratiescript of een ZIP-bestand met een .ps1-configuratiescript in de hoofdmap vereist. Als u een ZIP-bestand gebruikt, moeten alle afhankelijke resources worden opgenomen in modulemappen in het ZIP-bestand. U kunt het ZIP-bestand maken met behulp van de cmdlet Publish-AzureVMDscConfiguration -OutputArchivePath die is opgenomen in de Azure PowerShell SDK. Het ZIP-bestand wordt geüpload naar uw blobopslag van uw gebruiker en beveiligd door een SAS-token.

    • Module-gekwalificeerde naam van configuratie: (vereist) Geef deze instelling op voor het opnemen van meerdere configuratiefuncties in één .ps1-scriptbestand. Voer voor deze instelling de naam in van het .ps1-scriptbestand van de configuratie, gevolgd door een slash \ en vervolgens de naam van de configuratiefunctie. Als het .ps1-scriptbestand bijvoorbeeld de naam configuration.ps1 heeft en de configuratienaam IisInstall is, voert u de waarde configuration.ps1\IisInstall voor de instelling in.

    • Configuratieargumenten: Als de configuratiefunctie argumenten gebruikt, voert u de waarden in met behulp van de notatie argumentName1=value1,argumentName2=value2. U ziet dat deze indeling verschilt van de indeling die wordt gebruikt om configuratieargumenten op te geven in PowerShell-cmdlets of ARM-sjablonen.

      Notitie

      De configuratieargumenten kunnen worden gedefinieerd in een standaardconfiguratiescript.

    • PSD1-bestand voor configuratiegegevens: als voor uw configuratie een configuratiegegevensbestand in psd1-indeling is vereist, gebruikt u deze instelling om het gegevensbestand te selecteren en te uploaden naar uw gebruikersblobopslag. Het configuratiegegevensbestand wordt beveiligd met een SAS-token in Blob Storage.

    • WMF-versie: geef de versie van Windows Management Framework op die op uw VIRTUELE machine moet worden geïnstalleerd. Als u de meest recente versie van WMF kiest, wat de standaardwaarde is, installeert het systeem de meest recente versie van WMF. Andere mogelijke waarden zijn 4.0, 5.0 en 5.1. De mogelijke waarden zijn onderhevig aan updates.

    • Gegevensverzameling: schakel deze instelling in als u wilt dat de DSC-extensie telemetriegegevens over uw virtuele machine verzamelt. Zie het verzamelen van azure DSC-extensiegegevens voor meer informatie.

    • Versie: (vereist) Geef de versie van de DSC-extensie op die moet worden geïnstalleerd. Zie de versiegeschiedenis van de Azure DSC-extensie voor meer informatie over versies.

    • Secundaire versie automatisch bijwerken: deze instelling wordt toegewezen aan de AutoUpdate switch in de cmdlets. Configureer deze instelling om de DSC-extensie automatisch bij te werken naar de nieuwste versie tijdens de installatie. Ja geeft de DSC-extensiehandler de opdracht om de meest recente beschikbare versie te gebruiken. Nee (standaard) dwingt installatie af van de versie die u opgeeft in de versie-instelling.

  6. Nadat u de parameters hebt geconfigureerd, selecteert u Beoordelen en maken en selecteert u Vervolgens Maken.

DSC-extensielogboeken

U kunt logboeken voor de Azure DSC-extensie bekijken op de virtuele machine onder C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\<version number>.

Volgende stappen