Kompilera DSC-konfigurationer i Azure Automation State Configuration
Kommentar
Azure Automation State Configuration tas ur bruk den 30 september 2027. Övergå till Azure Machine Configuration senast det datumet. Mer information finns i blogginlägget. Azure Machine Configuration-tjänsten kombinerar funktioner i DSC-tillägget, Azure Automation State Configuration och de vanligaste funktionerna från kundfeedback. Azure Machine Configuration innehåller även stöd för hybriddatorer via Arc-aktiverade servrar.
Varning
Azure Automation DSC för Linux har dragits tillbaka den 30 september 2023. Mer information finns i meddelandet.
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 väljer du Tillståndskonfiguration (DSC).
- Välj på fliken Konfigurationer och välj sedan det konfigurationsnamn som ska kompileras.
- Välj Kompilera.
- Om konfigurationen inte har några parametrar uppmanas du att bekräfta om du vill kompilera den. Om konfigurationen har parametrar öppnas fönstret 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 Portal.
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 artiklar:
Tillgångar för autentiseringsuppgifter
Om en konfiguration har en parameter som anger ett PSCredential
objekt använder du Get-AutomationPSCredential
genom att skicka namnet på en Azure Automation-autentiseringstillgång till cmdleten för att hämta autentiseringsuppgifterna. Azure Automation skickar autentiseringsuppgifterna till konfigurationen.
Om du vill skydda autentiseringsuppgifterna i nodkonfigurationer krypterar du autentiseringsuppgifterna i MOF-filen för nodkonfiguration. Du måste ge PowerShell DSC behörighet att mata ut autentiseringsuppgifter i oformaterad text under MOF-generering av nodkonfiguration. PowerShell DSC är inte medveten om att Azure Automation krypterar hela MOF-filen efter att den har genererats av ett kompileringsjobb.
Du kan berätta för PowerShell DSC att det är okej att autentiseringsuppgifterna matas ut i oformaterad text i den genererade nodkonfigurationens MOF:er 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 som 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 Portal
I ditt Automation-konto väljer du Tillståndskonfiguration (DSC) under Konfigurationshantering.
På sidan Tillståndskonfiguration (DSC) väljer du på fliken Konfigurationer och väljer sedan Lägg till.
På sidan Importera väljer du 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.
Välj OK.
Importera en nodkonfiguration med Azure PowerShell
Du kan använda cmdleten Import-AzAutomationDscNodeConfiguration för att importera en nodkonfiguration till ditt Automation-konto.
$importAzAutomationDscNodeConfigurationSplat = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
ConfigurationName = 'MyNodeConfiguration'
Path = 'C:\MyConfigurations\TestVM1.mof'
}
Import-AzAutomationDscNodeConfiguration @importAzAutomationDscNodeConfigurationSplat
Nästa steg
- Kom igång genom att läsa Kom 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.