Azure Automation State Configuration inschakelen

Notitie

Voordat u Automation State Configuration inschakelt, willen we graag weten dat een nieuwere versie van DSC nu algemeen beschikbaar is, beheerd door een functie van Azure Policy met de naam gastconfiguratie. De gastconfiguratieservice combineert functies van DSC-extensie, Azure Automation State Configuration en de meest aangevraagde functies uit feedback van klanten. Gastconfiguratie omvat ook ondersteuning voor hybride machines via servers met Arc.

In dit onderwerp wordt beschreven hoe u uw machines kunt instellen voor beheer met Azure Automation State Configuration. Zie het overzicht van Azure Automation State Configuration voor meer informatie over deze service.

Azure-VM's inschakelen

Met Azure Automation State Configuration kunt u eenvoudig Virtuele Azure-machines inschakelen voor configuratiebeheer met behulp van Azure Portal, Azure Resource Manager-sjablonen of PowerShell. Onder de schermen en zonder dat een beheerder op afstand naar een VIRTUELE machine hoeft te gaan, registreert de Extensie Desired State Configuration van Azure VM de VM met Azure Automation State Configuration. Omdat de Azure-extensie asynchroon wordt uitgevoerd, worden de stappen voor het bijhouden van de voortgang opgegeven in De status van de VM-installatie controleren.

Notitie

Het implementeren van DSC in een Linux-knooppunt maakt gebruik van de map /tmp . Modules zoals nxautomation worden tijdelijk gedownload voor verificatie voordat ze op de juiste locaties worden geïnstalleerd. Om ervoor te zorgen dat modules correct worden geïnstalleerd, heeft de Log Analytics-agent voor Linux lees-/schrijfmachtigingen nodig voor de map /tmp .

De Log Analytics-agent voor Linux wordt uitgevoerd als de omsagent gebruiker. Als u schrijfmachtigingen wilt verlenen >aan de omsagent gebruiker, voert u de opdracht setfacl -m u:omsagent:rwx /tmpuit.

Een VIRTUELE machine inschakelen met behulp van Azure Portal

Een Azure VM to State Configuration inschakelen via Azure Portal:

  1. Navigeer naar het Azure Automation-account waarin u VM's wilt inschakelen.

  2. Selecteer op de pagina Statusconfiguratie het tabblad Knooppunten en klik vervolgens op Toevoegen.

  3. Kies een VM die u wilt inschakelen.

  4. Als op de computer de gewenste statusextensie van PowerShell niet is geïnstalleerd en de energiestatus wordt uitgevoerd, klikt u op Verbinding maken.

  5. Voer onder Registratie de lokale Configuration Manager-waarden voor PowerShell DSC in die vereist zijn voor uw use-case. U kunt eventueel een knooppuntconfiguratie invoeren om toe te wijzen aan de virtuele machine.

enabling VM

Een VM inschakelen met behulp van Azure Resource Manager-sjablonen

U kunt een VM voor State Configuration installeren en inschakelen met behulp van Azure Resource Manager-sjablonen. Zie De server die wordt beheerd door de Desired State Configuration-service voor een voorbeeldsjabloon waarmee een bestaande VM voor Statusconfiguratie wordt ingeschakeld. Als u een virtuele-machineschaalset beheert, raadpleegt u de voorbeeldsjabloon in de configuratie van virtuele-machineschaalsets die worden beheerd door Azure Automation.

Computers inschakelen met Behulp van PowerShell

U kunt de cmdlet Register-AzAutomationDscNode in PowerShell gebruiken om VM's in te schakelen voor State Configuration.

Notitie

De Register-AzAutomationDscNode cmdlet wordt momenteel alleen geïmplementeerd voor computers met Windows, omdat alleen de Windows-extensie wordt geactiveerd.

VM's registreren in Azure-abonnementen

De beste manier om VM's van andere Azure-abonnementen te registreren, is door de DSC-extensie te gebruiken in een Azure Resource Manager-implementatiesjabloon. Voorbeelden worden gegeven in de Desired State Configuration-extensie met Azure Resource Manager-sjablonen.

DSC-metaconfiguration gebruiken om hybride machines te registreren

U kunt machines veilig inschakelen voor een Azure Automation-account via de DSC-metaconfiguratie. De protocollen die in DSC worden geïmplementeerd, gebruiken informatie uit de metaconfiguratie om te verifiëren bij Azure Automation State Configuration. Het knooppunt wordt geregistreerd bij de service op de registratie-URL en wordt geverifieerd met behulp van een registratiesleutel. Tijdens de registratie onderhandelt de DSC-knooppunt- en DSC-service over een uniek certificaat voor het knooppunt dat moet worden gebruikt voor verificatie bij de server na registratie. Met dit proces voorkomt u dat ingeschakelde knooppunten elkaar imiteren, bijvoorbeeld als een knooppunt wordt aangetast en schadelijk werkt. Na de registratie wordt de registratiesleutel niet opnieuw gebruikt voor verificatie en wordt deze verwijderd uit het knooppunt.

U kunt de informatie ophalen die vereist is voor het registratieprotocol State Configuration van Sleutels onder Account Instellingen in Azure Portal.

Azure automation keys and URL

  • Registratie-URL is het URL-veld op de pagina Sleutels.
  • Registratiesleutel is de waarde van het veld Primaire toegangssleutel of het veld Secundaire toegangssleutel op de pagina Sleutels. Beide sleutels kunnen worden gebruikt.

Voor extra beveiliging kunt u de primaire en secundaire toegangssleutels van een Automation-account op elk gewenst moment opnieuw genereren op de pagina Sleutels. Het opnieuw genereren van sleutels voorkomt dat toekomstige knooppuntregistraties eerdere sleutels gebruiken.

DSC-metaconfiguraties genereren

Als u elke computer voor State Configuration wilt inschakelen, kunt u een DSC-metaconfiguratie genereren. Deze configuratie vertelt de DSC-agent om van en/of naar Azure Automation State Configuration te rapporteren. U kunt een DSC-metaconfiguratie genereren voor Azure Automation State Configuration met behulp van een PowerShell DSC-configuratie of de Azure Automation PowerShell-cmdlets.

Notitie

DSC-metaconfiguraties bevatten de geheimen die nodig zijn om een machine in te schakelen in een Automation-account voor beheer. Zorg ervoor dat u eventuele DSC-metaconfiguraties die u maakt goed beveiligt of verwijder deze na gebruik.

Proxyondersteuning voor metaconfiguraties wordt beheerd door local Configuration Manager. Dit is de Windows PowerShell DSC-engine. De LCM wordt uitgevoerd op alle doelknooppunten en is verantwoordelijk voor het aanroepen van de configuratiebronnen die zijn opgenomen in een DSC-metaconfiguratiescript. U kunt proxyondersteuning opnemen in een metaconfiguratie door definities en ProxyURLProxyCredential eigenschappen op te nemen, indien nodig in de ConfigurationRepositoryWeb, ResourceRepositoryWeben ReportServerWeb blokken. Een voorbeeld van de URL-instelling is ProxyURL = "http://172.16.3.6:3128";. De ProxyCredential eigenschap is ingesteld op een PSCredential object, zoals beschreven in Referenties beheren in Azure Automation.

DSC-metaconfiguraties genereren met behulp van een DSC-configuratie

  1. Open VSCode (of uw favoriete editor) als beheerder op een computer in uw lokale omgeving. Op de computer moet de nieuwste versie van WMF 5 zijn geïnstalleerd.

  2. Kopieer het volgende script lokaal. Dit script bevat een PowerShell DSC-configuratie voor het maken van metaconfiguraties en een opdracht om het maken van de metaconfiguratie te starten.

    Notitie

    Configuratienamen van statusconfiguratieknooppunten zijn hoofdlettergevoelig in Azure Portal. Als het geval niet overeenkomt, wordt het knooppunt niet weergegeven op het tabblad Knooppunten .

    # The DSC configuration that will generate metaconfigurations
    [DscLocalConfigurationManager()]
    Configuration DscMetaConfigs
    {
         param
         (
             [Parameter(Mandatory=$True)]
             [String]$RegistrationUrl,
    
             [Parameter(Mandatory=$True)]
             [String]$RegistrationKey,
    
             [Parameter(Mandatory=$True)]
             [String[]]$ComputerName,
    
             [Int]$RefreshFrequencyMins = 30,
    
             [Int]$ConfigurationModeFrequencyMins = 15,
    
             [String]$ConfigurationMode = 'ApplyAndMonitor',
    
             [String]$NodeConfigurationName,
    
             [Boolean]$RebootNodeIfNeeded= $False,
    
             [String]$ActionAfterReboot = 'ContinueConfiguration',
    
             [Boolean]$AllowModuleOverwrite = $False,
    
             [Boolean]$ReportOnly
         )
    
         if(!$NodeConfigurationName -or $NodeConfigurationName -eq '')
         {
             $ConfigurationNames = $null
         }
         else
         {
             $ConfigurationNames = @($NodeConfigurationName)
         }
    
         if($ReportOnly)
         {
             $RefreshMode = 'PUSH'
         }
         else
         {
             $RefreshMode = 'PULL'
         }
    
         Node $ComputerName
         {
             Settings
             {
                 RefreshFrequencyMins           = $RefreshFrequencyMins
                 RefreshMode                    = $RefreshMode
                 ConfigurationMode              = $ConfigurationMode
                 AllowModuleOverwrite           = $AllowModuleOverwrite
                 RebootNodeIfNeeded             = $RebootNodeIfNeeded
                 ActionAfterReboot              = $ActionAfterReboot
                 ConfigurationModeFrequencyMins = $ConfigurationModeFrequencyMins
             }
    
             if(!$ReportOnly)
             {
             ConfigurationRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl          = $RegistrationUrl
                     RegistrationKey    = $RegistrationKey
                     ConfigurationNames = $ConfigurationNames
                 }
    
                 ResourceRepositoryWeb AzureAutomationStateConfiguration
                 {
                     ServerUrl       = $RegistrationUrl
                     RegistrationKey = $RegistrationKey
                 }
             }
    
             ReportServerWeb AzureAutomationStateConfiguration
             {
                 ServerUrl       = $RegistrationUrl
                 RegistrationKey = $RegistrationKey
             }
         }
    }
    
     # Create the metaconfigurations
     # NOTE: DSC Node Configuration names are case sensitive in the portal.
     # TODO: edit the below as needed for your use case
    $Params = @{
         RegistrationUrl = '<fill me in>';
         RegistrationKey = '<fill me in>';
         ComputerName = @('<some VM to onboard>', '<some other VM to onboard>');
         NodeConfigurationName = 'SimpleConfig.webserver';
         RefreshFrequencyMins = 30;
         ConfigurationModeFrequencyMins = 15;
         RebootNodeIfNeeded = $False;
         AllowModuleOverwrite = $False;
         ConfigurationMode = 'ApplyAndMonitor';
         ActionAfterReboot = 'ContinueConfiguration';
         ReportOnly = $False;  # Set to $True to have machines only report to AA DSC but not pull from it
    }
    
    # Use PowerShell splatting to pass parameters to the DSC configuration being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    DscMetaConfigs @Params
    
  3. Vul de registratiesleutel en URL voor uw Automation-account in, evenals de namen van de computers die u wilt inschakelen. Alle andere parameters zijn optioneel. Zie DSC-metaconfiguratie gebruiken om hybride machines te registreren om de registratiesleutel en registratie-URL voor uw Automation-account te vinden.

  4. Als u wilt dat de machines DSC-statusinformatie rapporteren aan Azure Automation State Configuration, maar geen pull-configuratie of PowerShell-modules, stelt u de ReportOnly parameter in op true.

  5. Als ReportOnly deze niet is ingesteld, rapporteren de machines DSC-statusinformatie naar Azure Automation State Configuration en pull-configuratie of PowerShell-modules. Stel parameters dienovereenkomstig in de ConfigurationRepositoryWeb, ResourceRepositoryWeben ReportServerWeb blokken in.

  6. Voer het script uit. U moet nu een werkmap hebben met de naam DscMetaConfigs, met daarin de PowerShell DSC-metaconfiguraties voor de computers die moeten worden ingeschakeld (als beheerder).

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

DSC-metaconfiguraties genereren met behulp van Azure Automation-cmdlets

Als de standaardinstellingen van PowerShell DSC LCM overeenkomen met uw use-case en u wilt dat machines zowel van Azure Automation State Configuration kunnen ophalen als rapporteren, kunt u de benodigde DSC-metaconfiguraties genereren met behulp van de Azure Automation-cmdlets.

  1. Open de PowerShell-console of VSCode als beheerder op een computer in uw lokale omgeving.

  2. Verbinding maken naar Azure Resource Manager met behulp van Verbinding maken-AzAccount.

  3. Download de PowerShell DSC-metaconfiguraties voor de computers die u wilt inschakelen vanuit het Automation-account waarin u knooppunten instelt.

    # Define the parameters for Get-AzAutomationDscOnboardingMetaconfig using PowerShell Splatting
    $Params = @{
        ResourceGroupName = 'ContosoResources'; # The name of the Resource Group that contains your Azure Automation account
        AutomationAccountName = 'ContosoAutomation'; # The name of the Azure Automation account where you want a node on-boarded to
        ComputerName = @('web01', 'web02', 'sql01'); # The names of the computers that the metaconfiguration will be generated for
        OutputFolder = "$env:UserProfile\Desktop\";
    }
    # Use PowerShell splatting to pass parameters to the Azure Automation cmdlet being invoked
    # For more info about splatting, run: Get-Help -Name about_Splatting
    Get-AzAutomationDscOnboardingMetaconfig @Params
    
  4. U moet nu een dscMetaConfigs-map hebben met de PowerShell DSC-metaconfiguraties voor de computers die moeten worden ingeschakeld (als beheerder).

    Set-DscLocalConfigurationManager -Path $env:UserProfile\Desktop\DscMetaConfigs
    

Fysieke/virtuele Windows-machines inschakelen

U kunt Windows-servers die on-premises of in andere cloudomgevingen (inclusief AWS EC2-exemplaren) worden uitgevoerd, inschakelen naar Azure Automation State Configuration. De servers moeten uitgaande toegang hebben tot Azure.

  1. Zorg ervoor dat de nieuwste versie van WMF 5 is geïnstalleerd op de computers om State Configuration in te schakelen. Bovendien moet WMF 5 worden geïnstalleerd op de computer die u gebruikt voor het inschakelen van de machines.

  2. Volg de aanwijzingen in DSC-metaconfiguraties genereren om een map te maken met de vereiste DSC-metaconfiguraties.

  3. Gebruik de volgende cmdlet om de PowerShell DSC-metaconfiguraties extern toe te passen op de computers die u wilt inschakelen.

    Set-DscLocalConfigurationManager -Path C:\Users\joe\Desktop\DscMetaConfigs -ComputerName MyServer1, MyServer2
    
  4. Als u de PowerShell DSC-metaconfiguraties niet op afstand kunt toepassen, kopieert u de map met metaconfiguraties naar de computers die u inschakelt. Voeg vervolgens code toe om Set-DscLocalConfigurationManager lokaal aan te roepen op de computers.

  5. Controleer met behulp van Azure Portal of cmdlets of de machines worden weergegeven als State Configuration-knooppunten die zijn geregistreerd in uw Azure Automation-account.

Fysieke/virtuele Linux-machines inschakelen

U kunt Linux-servers inschakelen die on-premises of in andere cloudomgevingen worden uitgevoerd voor State Configuration. De servers moeten uitgaande toegang hebben tot Azure.

  1. Zorg ervoor dat de nieuwste versie van PowerShell Desired State Configuration voor Linux is geïnstalleerd op de computers om State Configuration in te schakelen.

  2. Als de standaardinstellingen van PowerShell DSC Local Configuration Manager overeenkomen met uw use-case en u machines wilt inschakelen zodat ze zowel van als rapport naar State Configuration kunnen worden opgehaald:

    • Gebruik op elke Linux-computer Register.py om de computer in te schakelen met de standaardinstellingen van PowerShell DSC Local Configuration Manager.

      /opt/microsoft/dsc/Scripts/Register.py <Automation account registration key> <Automation account registration URL>

    • Zie DSC-metaconfiguratie gebruiken om hybride machines te registreren om de registratiesleutel en registratie-URL voor uw Automation-account te vinden.

  3. Als de standaardinstellingen van PowerShell DSC Local Configuration Manager (LCM) niet overeenkomen met uw gebruiksscenario of als u computers wilt inschakelen die alleen rapporteren aan Azure Automation State Configuration, voert u de stappen 4-7 uit. Ga anders rechtstreeks verder met stap 7.

  4. Volg de aanwijzingen in de sectie DSC-metaconfiguraties genereren om een map te maken met de vereiste DSC-metaconfiguraties.

  5. Zorg ervoor dat de nieuwste versie van WMF 5 is geïnstalleerd op de computer die wordt gebruikt om uw computers in te schakelen voor State Configuration.

  6. Voeg als volgt code toe om de PowerShell DSC-metaconfiguraties extern toe te passen op de computers die u wilt inschakelen.

    $SecurePass = ConvertTo-SecureString -String '<root password>' -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential 'root', $SecurePass
    $Opt = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    
    # need a CimSession for each Linux machine to onboard
    $Session = New-CimSession -Credential $Cred -ComputerName <your Linux machine> -Port 5986 -Authentication basic -SessionOption $Opt
    
    Set-DscLocalConfigurationManager -CimSession $Session -Path C:\Users\joe\Desktop\DscMetaConfigs
    
  7. Als u de PowerShell DSC-metaconfiguraties niet op afstand kunt toepassen, kopieert u de metaconfiguraties die overeenkomen met de externe machines uit de map die in stap 4 wordt beschreven op de Linux-machines.

  8. Voeg code toe om lokaal aan te roepen Set-DscLocalConfigurationManager.py op elke Linux-machine om State Configuration in te schakelen.

    /opt/microsoft/dsc/Scripts/SetDscLocalConfigurationManager.py -configurationmof <path to metaconfiguration file>

  9. Zorg ervoor dat de machines die nu moeten worden ingeschakeld, worden weergegeven als DSC-knooppunten die zijn geregistreerd in uw Azure Automation-account met behulp van Azure Portal of cmdlets.

Een knooppunt opnieuw registreren

Nadat u een machine hebt geregistreerd als EEN DSC-knooppunt in Azure Automation State Configuration, zijn er verschillende redenen waarom u dat knooppunt mogelijk in de toekomst opnieuw moet registreren.

  • Certificaatvernieuwing. Voor versies van Windows Server vóór Windows Server 2019 onderhandelt elk knooppunt automatisch over een uniek certificaat voor verificatie dat na één jaar verloopt. Als een certificaat verloopt zonder verlenging, kan het knooppunt niet communiceren met Azure Automation en is gemarkeerd Unresponsive. Op dit moment kan het PowerShell DSC-registratieprotocol certificaten niet automatisch vernieuwen wanneer ze bijna verlopen en moet u de knooppunten na een jaar opnieuw registreren. Voordat u zich opnieuw registreert, moet u ervoor zorgen dat elk knooppunt WMF 5 RTM uitvoert.

    Opnieuw registreren van 90 dagen of minder vanaf de verlooptijd van het certificaat, of op elk moment na de verlooptijd van het certificaat, resulteert in een nieuw certificaat dat wordt gegenereerd en gebruikt. Een oplossing voor dit probleem is opgenomen in Windows Server 2019 en hoger.

  • Wijzigingen in DSC LCM-waarden. Mogelijk moet u de LCM-waarden van PowerShell DSC wijzigen die zijn ingesteld tijdens de eerste registratie van het knooppunt, ConfigurationModebijvoorbeeld. Op dit moment kunt u deze DSC-agentwaarden alleen wijzigen via opnieuw registreren. De ene uitzondering is de waarde voor knooppuntconfiguratie die is toegewezen aan het knooppunt. U kunt dit rechtstreeks wijzigen in Azure Automation DSC.

U kunt een knooppunt opnieuw registreren, net zoals u het knooppunt in eerste instantie hebt geregistreerd, met behulp van een van de methoden die in dit document worden beschreven. U hoeft de registratie van een knooppunt bij Azure Automation State Configuration niet ongedaan te maken voordat u het opnieuw registreert.

Controleer de status van de VM-installatie

Met State Configuration kunt u eenvoudig Virtuele Azure Windows-machines inschakelen voor configuratiebeheer. Onder de schermen wordt de Desired State Configuration-extensie van de Azure-VM gebruikt om de VIRTUELE machine te registreren bij Azure Automation State Configuration. Omdat de Desired State Configuration-extensie van de Azure-VM asynchroon wordt uitgevoerd, kan het bijhouden van de voortgang en het oplossen van problemen met de uitvoering ervan belangrijk zijn.

Notitie

Elke methode voor het inschakelen van Virtuele Azure Windows-machines voor State Configuration die gebruikmaakt van de Desired State Configuration-extensie van Azure VM's kan een uur duren voordat Azure Automation VM's weergeeft als geregistreerd. Deze vertraging wordt veroorzaakt door de installatie van WMF 5 op de VIRTUELE machine door de Desired State Configuration-extensie van De Azure-VM, die nodig is om VM's in te schakelen voor Statusconfiguratie.

De status van de Azure VM Desired State Configuration-extensie weergeven:

  1. Navigeer in Azure Portal naar de VM die wordt ingeschakeld.
  2. Klik op Extensies onder Instellingen.
  3. Selecteer nu DSC of DSCForLinux, afhankelijk van uw besturingssysteem.
  4. Klik op Gedetailleerde status weergeven voor meer informatie.

Volgende stappen