Kompilera DSC-konfigurationer i Azure Automation State Configuration
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.
Du kan kompilera DSC-konfigurationer (Desired State Configuration) i Azure Automation State Configuration på följande sätt:
Kompileringstjänst för Azure State Configuration
- Nybörjarmetod med interaktivt användargränssnitt
- Spåra enkelt jobbtillstånd
Windows PowerShell
- Anropa från Windows PowerShell på den lokala arbetsstationen eller byggtjänsten
- Integrera med pipeline för utvecklingstest
- Ange komplexa parametervärden
- Arbeta med nod- och icke-noddata i stor skala
- Betydande prestandaförbättring
Du kan också använda Azure Resource Manager-mallar med Azure Desired State Configuration-tillägget (DSC) för att skicka konfigurationer till dina virtuella Azure-datorer. Azure DSC-tillägget använder Azure VM Agent-ramverket för att leverera, anta och rapportera om DSC-konfigurationer som körs på virtuella Azure-datorer. Kompileringsinformation med hjälp av Azure Resource Manager-mallar finns i Desired State Configuration-tillägget med Azure Resource Manager-mallar.
Kompilera en DSC-konfiguration i Azure State Configuration
Portalen
- I ditt Automation-konto klickar du på Tillståndskonfiguration (DSC).
- Klicka på fliken Konfigurationer och klicka sedan på konfigurationsnamnet för att kompilera.
- Klicka på Kompilera.
- Om konfigurationen inte har några parametrar uppmanas du att bekräfta om du vill kompilera den. Om konfigurationen har parametrar öppnas bladet Kompileringskonfiguration så att du kan ange parametervärden.
- Sidan Kompileringsjobb öppnas så att du kan spåra status för kompileringsjobb. Du kan också använda den här sidan för att spåra nodkonfigurationerna (MOF-konfigurationsdokument) som placeras på Azure Automation State Configuration-hämtningsservern.
Azure PowerShell
Du kan använda Start-AzAutomationDscCompilationJob för att börja kompilera med Windows PowerShell. Följande exempelkod börjar kompileringen av en DSC-konfiguration med namnet SampleConfig.
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
Start-AzAutomationDscCompilationJob
returnerar ett kompileringsjobbobjekt som du kan använda för att spåra jobbstatus. Du kan sedan använda det här kompileringsjobbobjektet med Get-AzAutomationDscCompilationJob för att fastställa status för kompileringsjobbet och Get-AzAutomationDscCompilationJobOutput för att visa dess strömmar (utdata). Följande exempel startar kompileringen av SampleConfig-konfigurationen, väntar tills den har slutförts och visar sedan dess strömmar.
$CompilationJob = Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
while($null -eq $CompilationJob.EndTime -and $null -eq $CompilationJob.Exception)
{
$CompilationJob = $CompilationJob | Get-AzAutomationDscCompilationJob
Start-Sleep -Seconds 3
}
$CompilationJob | Get-AzAutomationDscCompilationJobOutput –Stream Any
Deklarera grundläggande parametrar
Parameterdeklaration i DSC-konfigurationer, inklusive parametertyper och egenskaper, fungerar på samma sätt som i Azure Automation-runbooks. Mer information om runbook-parametrar finns i Starta en runbook i Azure Automation .
I följande exempel används FeatureName
och IsPresent
parametrar för att fastställa egenskapernas värden i nodkonfigurationen ParametersExample.sample som genererades under kompileringen.
Configuration ParametersExample
{
param(
[Parameter(Mandatory=$true)]
[string] $FeatureName,
[Parameter(Mandatory=$true)]
[boolean] $IsPresent
)
$EnsureString = 'Present'
if($IsPresent -eq $false)
{
$EnsureString = 'Absent'
}
Node 'sample'
{
WindowsFeature ($FeatureName + 'Feature')
{
Ensure = $EnsureString
Name = $FeatureName
}
}
}
Du kan kompilera DSC-konfigurationer som använder grundläggande parametrar i Azure Automation State Configuration-portalen eller med Azure PowerShell.
Portalen
I portalen kan du ange parametervärden när du har klickat på Kompilera.
Azure PowerShell
PowerShell kräver parametrar i en hashtable, där nyckeln matchar parameternamnet och värdet är lika med parametervärdet.
$Parameters = @{
'FeatureName' = 'Web-Server'
'IsPresent' = $False
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ParametersExample' -Parameters $Parameters
Information om hur du skickar PSCredential
objekt som parametrar finns i Tillgångar för autentiseringsuppgifter.
Kompilera konfigurationer som innehåller sammansatta resurser i Azure Automation
Med funktionen Sammansatta resurser kan du använda DSC-konfigurationer som kapslade resurser i en konfiguration. Med den här funktionen kan du använda flera konfigurationer för en enskild resurs. Se Sammansatta resurser: Använda en DSC-konfiguration som en resurs för att lära dig mer om sammansatta resurser.
Kommentar
Så att konfigurationer som innehåller sammansatta resurser kompileras korrekt måste du först importera alla DSC-resurser som kompositerna förlitar sig på till Azure Automation. Att lägga till en DSC-sammansatt resurs skiljer sig inte från att lägga till en PowerShell-modul i Azure Automation. Den här processen dokumenteras i Hantera moduler i Azure Automation.
Hantera ConfigurationData vid kompilering av konfigurationer i Azure Automation
ConfigurationData
är en inbyggd DSC-parameter som gör att du kan separera strukturell konfiguration från alla miljöspecifika konfigurationer när du använder PowerShell DSC. Mer information finns i Separera "Vad" från "Var" i PowerShell DSC.
Kommentar
När du kompilerar i Azure Automation State Configuration kan du använda ConfigurationData
i Azure PowerShell men inte i Azure-portalen.
I följande exempel används ConfigurationData
DSC-konfiguration via nyckelorden $ConfigurationData
och $AllNodes
. Du behöver också modulen xWebAdministration för det här exemplet.
Configuration ConfigurationDataSample
{
Import-DscResource -ModuleName xWebAdministration -Name MSFT_xWebsite
Write-Verbose $ConfigurationData.NonNodeData.SomeMessage
Node $AllNodes.Where{$_.Role -eq 'WebServer'}.NodeName
{
xWebsite Site
{
Name = $Node.SiteName
PhysicalPath = $Node.SiteContents
Ensure = 'Present'
}
}
}
Du kan kompilera den föregående DSC-konfigurationen med Windows PowerShell. Följande skript lägger till två nodkonfigurationer i pull-tjänsten Azure Automation State Configuration: ConfigurationDataSample.MyVM1 och ConfigurationDataSample.MyVM3.
$ConfigData = @{
AllNodes = @(
@{
NodeName = 'MyVM1'
Role = 'WebServer'
},
@{
NodeName = 'MyVM2'
Role = 'SQLServer'
},
@{
NodeName = 'MyVM3'
Role = 'WebServer'
}
)
NonNodeData = @{
SomeMessage = 'I love Azure Automation State Configuration and DSC!'
}
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ConfigurationDataSample' -ConfigurationData $ConfigData
Arbeta med tillgångar i Azure Automation under kompilering
Tillgångsreferenser är desamma i både Azure Automation State Configuration och runbooks. Mer information finns i följande:
Tillgångar för autentiseringsuppgifter
DSC-konfigurationer i Azure Automation kan referera till automationstillgångar för autentiseringsuppgifter med hjälp av cmdleten Get-AutomationPSCredential
. Om en konfiguration har en parameter som anger ett PSCredential
objekt använder du Get-AutomationPSCredential
genom att skicka strängnamnet för en Azure Automation-autentiseringstillgång till cmdleten för att hämta autentiseringsuppgifterna. Använd sedan objektet för parametern som kräver PSCredential
objektet. I bakgrunden hämtas Azure Automation-autentiseringstillgången med det namnet och skickas till konfigurationen. Exemplet nedan visar det här scenariot i praktiken.
För att skydda autentiseringsuppgifterna i nodkonfigurationer (MOF-konfigurationsdokument) krävs kryptering av autentiseringsuppgifterna i MOF-filen för nodkonfiguration. För närvarande måste du ge PowerShell DSC behörighet att mata ut autentiseringsuppgifter i oformaterad text under MOF-generering av nodkonfiguration. PowerShell DSC vet inte att Azure Automation krypterar hela MOF-filen efter genereringen via ett kompileringsjobb.
Du kan berätta för PowerShell DSC att det är okej att autentiseringsuppgifterna matas ut i oformaterad text i mofs för den genererade nodkonfigurationen med hjälp av konfigurationsdata. Du bör skicka PSDscAllowPlainTextPassword = $true
via ConfigurationData
för varje nodblocknamn som visas i DSC-konfigurationen och använder autentiseringsuppgifter.
I följande exempel visas en DSC-konfiguration som använder en Automation-autentiseringstillgång.
Configuration CredentialSample
{
Import-DscResource -ModuleName PSDesiredStateConfiguration
$Cred = Get-AutomationPSCredential 'SomeCredentialAsset'
Node $AllNodes.NodeName
{
File ExampleFile
{
SourcePath = '\\Server\share\path\file.ext'
DestinationPath = 'C:\destinationPath'
Credential = $Cred
}
}
}
Du kan kompilera den föregående DSC-konfigurationen med PowerShell. Följande PowerShell-kod lägger till två nodkonfigurationer till Azure Automation State Configuration-hämtningsservern: CredentialSample.MyVM1 och CredentialSample.MyVM2.
$ConfigData = @{
AllNodes = @(
@{
NodeName = '*'
PSDscAllowPlainTextPassword = $True
},
@{
NodeName = 'MyVM1'
},
@{
NodeName = 'MyVM2'
}
)
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'CredentialSample' -ConfigurationData $ConfigData
Kommentar
När kompilering är klar kan du få felmeddelandet The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported.
Du kan ignorera det här meddelandet på ett säkert sätt.
Kompilera din DSC-konfiguration i Windows PowerShell
Processen för att kompilera DSC-konfigurationer i Windows PowerShell ingår i PowerShell DSC-dokumentationen Skriva, kompilera och tillämpa en konfiguration. Du kan köra den här processen från en utvecklararbetsstation eller i en byggtjänst, till exempel Azure DevOps. Du kan sedan importera MOF-filerna som skapas genom att kompilera konfigurationen till Azure State Configuration-tjänsten.
Kompilering i Windows PowerShell ger också möjlighet att signera konfigurationsinnehåll. DSC-agenten verifierar en signerad nodkonfiguration lokalt på en hanterad nod. Verifiering säkerställer att konfigurationen som tillämpas på noden kommer från en auktoriserad källa.
Du kan också importera nodkonfigurationer (MOF-filer) som har kompilerats utanför Azure. Importen innehåller kompilering från en arbetsstation för utvecklare eller i en tjänst, till exempel Azure DevOps. Den här metoden har flera fördelar, inklusive prestanda och tillförlitlighet.
Kommentar
En nodkonfigurationsfil får inte vara större än 1 MB för att Azure Automation ska kunna importera den.
Mer information om signering av nodkonfigurationer finns i Förbättringar i WMF 5.1 – Så här signerar du konfiguration och modul.
Importera en nodkonfiguration i Azure-portalen
I ditt Automation-konto klickar du på Tillståndskonfiguration (DSC) under Konfigurationshantering.
På sidan Tillståndskonfiguration (DSC) klickar du på fliken Konfigurationer och klickar sedan på Lägg till.
På sidan Importera klickar du på mappikonen bredvid fältet Nodkonfigurationsfil för att söka efter en MOF-fil för nodkonfiguration på den lokala datorn.
Ange ett namn i fältet Konfigurationsnamn . Det här namnet måste matcha namnet på konfigurationen som nodkonfigurationen kompilerades från.
Klicka på OK.
Importera en nodkonfiguration med Azure PowerShell
Du kan använda cmdleten Import-AzAutomationDscNodeConfiguration för att importera en nodkonfiguration till ditt Automation-konto.
Import-AzAutomationDscNodeConfiguration -AutomationAccountName 'MyAutomationAccount' -ResourceGroupName 'MyResourceGroup' -ConfigurationName 'MyNodeConfiguration' -Path 'C:\MyConfigurations\TestVM1.mof'
Nästa steg
- Kom igång genom att läsa Komma igång med Azure Automation State Configuration.
- Mer information om hur du kompilerar DSC-konfigurationer så att du kan tilldela dem till målnoder finns i Kompilera DSC-konfigurationer i Azure Automation State Configuration.
- En PowerShell-cmdlet-referens finns i Az.Automation.
- Prisinformation finns i Prissättning för Azure Automation State Configuration.
- Ett exempel på hur du använder State Configuration i en pipeline för kontinuerlig distribution finns i Konfigurera kontinuerlig distribution med Chocolatey.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för