Aktivera State Configuration i Azure Automation

Kommentar

Innan du aktiverar Automation State Configuration vill vi att du ska veta att en nyare version av DSC nu är allmänt tillgänglig, som hanteras av en funktion i Azure Policy med namnet gästkonfiguration. Gästkonfigurationstjänsten kombinerar funktioner i DSC-tillägget, Azure Automation State Configuration och de vanligaste funktionerna från kundfeedback. Gästkonfigurationen omfattar även stöd för hybriddatorer via Arc-aktiverade servrar.

Det här avsnittet beskriver hur du kan konfigurera dina datorer för hantering med Azure Automation State Configuration. Mer information om den här tjänsten finns i Översikt över Azure Automation State Configuration.

Aktivera virtuella Azure-datorer

Med Azure Automation State Configuration kan du enkelt aktivera virtuella Azure-datorer för konfigurationshantering med hjälp av Azure-portalen, Azure Resource Manager-mallar eller PowerShell. Under huven och utan att en administratör behöver fjärransluta till en virtuell dator registrerar tillägget Desired State Configuration för den virtuella Azure-datorn den virtuella datorn med Azure Automation State Configuration. Eftersom Azure-tillägget körs asynkront anges steg för att spåra dess förlopp i Kontrollera status för konfigurationen av den virtuella datorn.

Kommentar

Om du distribuerar DSC till en Linux-nod används mappen /tmp . Moduler som nxautomation laddas ned tillfälligt för verifiering innan de installeras på lämpliga platser. För att säkerställa att modulerna installeras korrekt behöver Log Analytics-agenten för Linux läs-/skrivbehörighet för mappen /tmp .

Log Analytics-agenten omsagent för Linux körs som användare. Om du vill ge >användaren skrivbehörighet omsagent kör du kommandot setfacl -m u:omsagent:rwx /tmp.

Aktivera en virtuell dator med Hjälp av Azure-portalen

Så här aktiverar du en virtuell Azure-dator för tillståndskonfiguration via Azure-portalen:

  1. Gå till Azure Automation-kontot där du vill aktivera virtuella datorer.

  2. På sidan Tillståndskonfiguration väljer du fliken Noder och klickar sedan på Lägg till.

  3. Välj en virtuell dator som ska aktiveras.

  4. Om datorn inte har powershell-tillägget installerat och energitillståndet körs klickar du på Anslut.

  5. Under Registrering anger du de PowerShell DSC Local Configuration Manager-värden som krävs för ditt användningsfall. Du kan också ange en nodkonfiguration som ska tilldelas till den virtuella datorn.

enabling VM

Aktivera en virtuell dator med hjälp av Azure Resource Manager-mallar

Du kan installera och aktivera en virtuell dator för tillståndskonfiguration med hjälp av Azure Resource Manager-mallar. Se Server som hanteras av Desired State Configuration-tjänsten för en exempelmall som aktiverar en befintlig virtuell dator för tillståndskonfiguration. Om du hanterar en VM-skalningsuppsättning kan du läsa exempelmallen i Konfiguration av vm-skalningsuppsättningar som hanteras av Azure Automation.

Aktivera datorer med PowerShell

Du kan använda cmdleten Register-AzAutomationDscNode i PowerShell för att aktivera virtuella datorer för tillståndskonfiguration.

Kommentar

Cmdleten Register-AzAutomationDscNode implementeras för närvarande endast för datorer som kör Windows, eftersom den bara utlöser Windows-tillägget.

Registrera virtuella datorer i Azure-prenumerationer

Det bästa sättet att registrera virtuella datorer från andra Azure-prenumerationer är att använda DSC-tillägget i en Azure Resource Manager-distributionsmall. Exempel finns i Desired State Configuration-tillägget med Azure Resource Manager-mallar.

Använda DSC-metakonfiguration för att registrera hybriddatorer

Du kan aktivera datorer på ett säkert sätt för ett Azure Automation-konto via DSC-metakonfigurationen. Protokollen som implementeras i DSC använder information från metakonfigurationen för att autentisera till Azure Automation State Configuration. Noden registreras med tjänsten på registrerings-URL:en och autentiserar med hjälp av en registreringsnyckel. Under registreringen förhandlar DSC-noden och DSC-tjänsten om ett unikt certifikat för noden som ska användas för autentisering till servern efter registreringen. Den här processen förhindrar att aktiverade noder personifierar varandra, till exempel om en nod komprometteras och beter sig skadligt. Efter registreringen används inte registreringsnyckeln för autentisering igen och tas bort från noden.

Du kan hämta den information som krävs för registreringsprotokollet för tillståndskonfiguration från Nycklar under Konto Inställningar i Azure-portalen.

Azure automation keys and URL

  • Registrerings-URL är FÄLTET URL på sidan Nycklar.
  • Registreringsnyckel är värdet för fältet Primär åtkomstnyckel eller fältet Sekundär åtkomstnyckel på sidan Nycklar. Båda nycklarna kan användas.

För ökad säkerhet kan du återskapa de primära och sekundära åtkomstnycklarna för ett Automation-konto när som helst på sidan Nycklar. Nyckelåterställning förhindrar att framtida nodregistreringar använder tidigare nycklar.

Generera DSC-metakonfigurationer

Om du vill aktivera valfri dator för tillståndskonfiguration kan du generera en DSC-metakonfiguration. Den här konfigurationen instruerar DSC-agenten att hämta från och/eller rapportera till Azure Automation State Configuration. Du kan generera en DSC-metakonfiguration för Azure Automation State Configuration med antingen en PowerShell DSC-konfiguration eller Azure Automation PowerShell-cmdletar.

Kommentar

DSC-metakonfigurationer innehåller de hemligheter som behövs för att aktivera en dator i ett Automation-konto för hantering. Se till att skydda alla DSC-metakonfigurationer som du skapar eller ta bort dem efter användning.

Proxystöd för metakonfigurationer styrs av Den lokala konfigurationshanteraren, som är Windows PowerShell DSC-motorn. LCM körs på alla målnoder och ansvarar för att anropa konfigurationsresurserna som ingår i ett DSC-metakonfigurationsskript. Du kan inkludera proxystöd i en metakonfiguration genom att inkludera definitioner av ProxyURL och ProxyCredential egenskaper efter behov i blocken ConfigurationRepositoryWeb, ResourceRepositoryWeboch ReportServerWeb . Ett exempel på URL-inställningen är ProxyURL = "http://172.16.3.6:3128";. Egenskapen ProxyCredential är inställd på ett PSCredential objekt enligt beskrivningen i Hantera autentiseringsuppgifter i Azure Automation.

Generera DSC-metakonfigurationer med hjälp av en DSC-konfiguration

  1. Öppna VSCode (eller din favoritredigerare) som administratör på en dator i din lokala miljö. Datorn måste ha den senaste versionen av WMF 5 installerad.

  2. Kopiera följande skript lokalt. Det här skriptet innehåller en PowerShell DSC-konfiguration för att skapa metakonfigurationer och ett kommando för att starta skapandet av metakonfigurationen.

    Kommentar

    Konfigurationsnamn för tillståndskonfigurationsnoder är skiftlägeskänsliga i Azure-portalen. Om ärendet är matchningsfel visas inte noden under fliken Noder .

    # 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. Fyll i registreringsnyckeln och URL:en för ditt Automation-konto, samt namnen på de datorer som ska aktiveras. Alla andra parametrar är valfria. Information om hur du hittar registreringsnyckeln och registrerings-URL:en för ditt Automation-konto finns i Använda DSC-metakonfiguration för att registrera hybriddatorer.

  4. Om du vill att datorerna ska rapportera DSC-statusinformation till Azure Automation State Configuration, men inte pull-konfiguration eller PowerShell-moduler, anger du parametern ReportOnly till true.

  5. Om ReportOnly inte har angetts rapporterar datorerna DSC-statusinformation till Azure Automation State Configuration och pull-konfiguration eller PowerShell-moduler. Ange parametrar i enlighet med blocken ConfigurationRepositoryWeb, ResourceRepositoryWeboch ReportServerWeb .

  6. Kör skriptet. Nu bör du ha en arbetskatalogmapp med namnet DscMetaConfigs som innehåller PowerShell DSC-metakonfigurationer som datorerna ska aktivera (som administratör).

    Set-DscLocalConfigurationManager -Path ./DscMetaConfigs
    

Generera DSC-metakonfigurationer med hjälp av Azure Automation-cmdletar

Om PowerShell DSC LCM som standard matchar ditt användningsfall och du vill aktivera datorer för att både hämta från och rapportera till Azure Automation State Configuration, kan du generera nödvändiga DSC-metakonfigurationer mer enkelt med hjälp av Azure Automation-cmdletarna.

  1. Öppna PowerShell-konsolen eller VSCode som administratör på en dator i din lokala miljö.

  2. Anslut till Azure Resource Manager med hjälp av Anslut-AzAccount.

  3. Ladda ned PowerShell DSC-metakonfigurationerna för de datorer som du vill aktivera från Automation-kontot där du konfigurerar noder.

    # 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. Nu bör du ha en DscMetaConfigs-mapp som innehåller PowerShell DSC-metakonfigurationerna för datorerna som ska aktiveras (som administratör).

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

Aktivera fysiska/virtuella Windows-datorer

Du kan aktivera Windows-servrar som körs lokalt eller i andra molnmiljöer (inklusive AWS EC2-instanser) till Azure Automation State Configuration. Servrarna måste ha utgående åtkomst till Azure.

  1. Kontrollera att den senaste versionen av WMF 5 är installerad på datorerna för att aktivera för tillståndskonfiguration. Dessutom måste WMF 5 installeras på den dator som du använder för att aktivera datorerna.

  2. Följ anvisningarna i Generera DSC-metakonfigurationer för att skapa en mapp som innehåller nödvändiga DSC-metakonfigurationer.

  3. Använd följande cmdlet för att fjärraktivera PowerShell DSC-metakonfigurationerna på datorerna.

    Set-DscLocalConfigurationManager -Path C:\Users\joe\Desktop\DscMetaConfigs -ComputerName MyServer1, MyServer2
    
  4. Om du inte kan fjärransluta PowerShell DSC-metakonfigurationerna kopierar du mappen metakonfigurationer till de datorer som du aktiverar. Lägg sedan till kod för att anropa Set-DscLocalConfigurationManager lokalt på datorerna.

  5. Med hjälp av Azure-portalen eller cmdletar kontrollerar du att datorerna visas som tillståndskonfigurationsnoder som registrerats i ditt Azure Automation-konto.

Aktivera fysiska/virtuella Linux-datorer

Du kan aktivera Linux-servrar som körs lokalt eller i andra molnmiljöer för tillståndskonfiguration. Servrarna måste ha utgående åtkomst till Azure.

  1. Kontrollera att den senaste versionen av PowerShell Desired State Configuration för Linux är installerad på datorerna för att aktivera för tillståndskonfiguration.

  2. Om PowerShell DSC Local Configuration Manager som standard matchar ditt användningsfall och du vill aktivera datorer så att de både hämtar från och rapporterar till Tillståndskonfiguration:

    • På varje Linux-dator som ska aktiveras använder du Register.py för att aktivera datorn med standardinställningarna för PowerShell DSC Local Configuration Manager.

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

    • Information om hur du hittar registreringsnyckeln och registrerings-URL:en för ditt Automation-konto finns i Använda DSC-metakonfiguration för att registrera hybriddatorer.

  3. Om standardinställningarna för PowerShell DSC Local Configuration Manager (LCM) inte matchar ditt användningsfall, eller om du vill aktivera datorer som endast rapporterar till Azure Automation State Configuration, följer du steg 4–7. Annars fortsätter du direkt till steg 7.

  4. Följ anvisningarna i avsnittet Generera DSC-metakonfigurationer för att skapa en mapp som innehåller nödvändiga DSC-metakonfigurationer.

  5. Kontrollera att den senaste versionen av WMF 5 är installerad på den dator som används för att aktivera dina datorer för tillståndskonfiguration.

  6. Lägg till kod på följande sätt för att fjärraktivera PowerShell DSC-metakonfigurationerna på datorerna.

    $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. Om du inte kan fjärransluta PowerShell DSC-metakonfigurationerna kopierar du de metakonfigurationer som motsvarar fjärrdatorerna från mappen som beskrivs i steg 4 till Linux-datorerna.

  8. Lägg till kod för att anropa Set-DscLocalConfigurationManager.py lokalt på varje Linux-dator för att aktivera för tillståndskonfiguration.

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

  9. Använd Azure-portalen eller cmdletar och se till att de datorer som ska aktiveras nu visas som DSC-noder som registrerats i ditt Azure Automation-konto.

Registrera om en nod

När du har registrerat en dator som en DSC-nod i Azure Automation State Configuration finns det flera orsaker till att du kan behöva registrera noden igen i framtiden.

  • Certifikatförnyelse. För versioner av Windows Server före Windows Server 2019 förhandlar varje nod automatiskt om ett unikt certifikat för autentisering som upphör att gälla efter ett år. Om ett certifikat upphör att gälla utan förnyelse kan noden inte kommunicera med Azure Automation och har markerats Unresponsive. För närvarande kan PowerShell DSC-registreringsprotokollet inte automatiskt förnya certifikat när de snart upphör att gälla och du måste registrera noderna igen efter ett års tid. Innan du registrerar om kontrollerar du att varje nod kör WMF 5 RTM.

    Omregistreringen utfördes 90 dagar eller mindre från certifikatets giltighetstid, eller när som helst efter certifikatets förfallotid, vilket resulterar i att ett nytt certifikat genereras och används. En lösning på det här problemet ingår i Windows Server 2019 och senare.

  • Ändringar i DSC LCM-värden. Du kan behöva ändra De LCM-värden för PowerShell DSC som angetts under den första registreringen av noden, till exempel ConfigurationMode. För närvarande kan du bara ändra dessa DSC-agentvärden genom omregistrering. Det enda undantaget är det nodkonfigurationsvärde som tilldelats noden. Du kan ändra detta i Azure Automation DSC direkt.

Du kan registrera om en nod precis som du registrerade noden från början med någon av de metoder som beskrivs i det här dokumentet. Du behöver inte avregistrera en nod från Azure Automation State Configuration innan du registrerar den igen.

Kontrollera status för konfiguration av virtuell dator

Med tillståndskonfiguration kan du enkelt aktivera virtuella Azure Windows-datorer för konfigurationshantering. Under huven används tillägget Desired State Configuration för virtuella Azure-datorer för att registrera den virtuella datorn med Azure Automation State Configuration. Eftersom tillägget Desired State Configuration för den virtuella Azure-datorn körs asynkront kan det vara viktigt att spåra förloppet och felsöka dess körning.

Kommentar

Alla metoder för att aktivera virtuella Azure Windows-datorer för tillståndskonfiguration som använder tillägget Desired State Configuration för virtuella Azure-datorer kan ta upp till en timme för Azure Automation att visa virtuella datorer som registrerade. Den här fördröjningen beror på installationen av WMF 5 på den virtuella datorn av tillägget Desired State Configuration för den virtuella Azure-datorn, vilket krävs för att aktivera virtuella datorer för tillståndskonfiguration.

Så här visar du status för tillägget Desired State Configuration för den virtuella Azure-datorn:

  1. I Azure-portalen navigerar du till den virtuella dator som är aktiverad.
  2. Klicka på Tillägg under Inställningar.
  3. Välj nu DSC eller DSCForLinux, beroende på operativsystemet.
  4. Mer information finns i Visa detaljerad status.

Nästa steg