Kompilowanie konfiguracji DSC w usłudze Azure Automation State Configuration
Uwaga
Usługa Azure Automation State Configuration zostanie wycofana 30 września 2027 r., przechodząc do usługi Azure Machine Configuration do tej daty. Aby uzyskać więcej informacji, zobacz ogłoszenie w blogu. Usługa Azure Machine Configuration łączy funkcje rozszerzenia DSC, usługi Azure Automation State Configuration i najczęściej żądanych funkcji opinii klientów. Usługa Azure Machine Configuration obejmuje również obsługę maszyn hybrydowych za pośrednictwem serwerów z obsługą usługi Arc.
Uwaga
Usługa Azure Automation DSC dla systemu Linux została wycofana 30 września 2023 r. Aby uzyskać więcej informacji, zobacz ogłoszenie.
Konfiguracje usługi Desired State Configuration (DSC) można skompilować w usłudze Azure Automation State Configuration w następujący sposób:
Usługa kompilacji usługi Azure State Configuration
- Metoda dla początkujących z interaktywnym interfejsem użytkownika
- Łatwe śledzenie stanu zadania
Windows PowerShell
- Wywoływanie z programu Windows PowerShell na lokalnej stacji roboczej lub usłudze kompilacji
- Integracja z potokiem testowania programistycznego
- Podaj wartości parametrów złożonych
- Praca z danymi węzła i węzłami na dużą skalę
- Znaczna poprawa wydajności
Możesz również użyć szablonów usługi Azure Resource Manager z rozszerzeniem Azure Desired State Configuration (DSC), aby wypchnąć konfiguracje do maszyn wirtualnych platformy Azure. Rozszerzenie DSC platformy Azure używa platformy Agent maszyny wirtualnej platformy Azure do dostarczania, wprowadzania i raportowania konfiguracji DSC działających na maszynach wirtualnych platformy Azure. Aby uzyskać szczegółowe informacje na temat kompilacji przy użyciu szablonów usługi Azure Resource Manager, zobacz Temat Desired State Configuration extension with Azure Resource Manager templates (Rozszerzenie Desired State Configuration z szablonami usługi Azure Resource Manager).
Kompilowanie konfiguracji DSC w usłudze Azure State Configuration
Portal
- Na koncie usługi Automation wybierz pozycję Konfiguracja stanu (DSC).
- Wybierz kartę Konfiguracje , a następnie wybierz nazwę konfiguracji do skompilowania.
- Wybierz pozycję Kompiluj.
- Jeśli konfiguracja nie ma parametrów, zostanie wyświetlony monit o potwierdzenie, czy chcesz go skompilować. Jeśli konfiguracja ma parametry, zostanie otwarte okienko Konfiguracja kompilacji, aby można było podać wartości parametrów.
- Zostanie otwarta strona Zadanie kompilacji, aby można było śledzić stan zadania kompilacji. Za pomocą tej strony można również śledzić konfiguracje węzłów (dokumenty konfiguracji MOF) umieszczone na serwerze ściągania usługi Azure Automation State Configuration.
Azure PowerShell
Aby rozpocząć kompilowanie za pomocą programu Windows PowerShell, możesz użyć polecenia Start-AzAutomationDscCompilationJob . Poniższy przykładowy kod rozpoczyna kompilację konfiguracji DSC o nazwie SampleConfig.
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'
Start-AzAutomationDscCompilationJob
Zwraca obiekt zadania kompilacji, którego można użyć do śledzenia stanu zadania. Następnie można użyć tego obiektu zadania kompilacji z poleceniem Get-AzAutomationDscCompilationJob w celu określenia stanu zadania kompilacji oraz polecenia Get-AzAutomationDscCompilationJobOutput , aby wyświetlić jego strumienie (dane wyjściowe). Poniższy przykład rozpoczyna kompilację konfiguracji SampleConfig, czeka na zakończenie, a następnie wyświetla strumienie.
$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
Deklarowanie podstawowych parametrów
Deklaracja parametru w konfiguracjach DSC, w tym typy parametrów i właściwości, działa tak samo jak w elementach Runbook usługi Azure Automation. Aby dowiedzieć się więcej na temat parametrów elementu Runbook, zobacz Uruchamianie elementu Runbook w usłudze Azure Automation.
W poniższym przykładzie użyto parametrów FeatureName
i IsPresent
do określenia wartości właściwości w konfiguracji węzła ParametersExample.sample wygenerowane podczas kompilacji.
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
}
}
}
Konfiguracje DSC, które używają podstawowych parametrów, można skompilować w portalu konfiguracji stanu usługi Azure Automation lub za pomocą programu Azure PowerShell.
Portal
W portalu można wprowadzić wartości parametrów po kliknięciu pozycji Kompiluj.
Azure PowerShell
Program PowerShell wymaga parametrów w tabeli skrótu, gdzie klucz odpowiada nazwie parametru, a wartość jest równa wartości parametru.
$Parameters = @{
'FeatureName' = 'Web-Server'
'IsPresent' = $False
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ParametersExample' -Parameters $Parameters
Aby uzyskać informacje na temat przekazywania PSCredential
obiektów jako parametrów, zobacz Zasoby poświadczeń.
Kompilowanie konfiguracji zawierających zasoby złożone w usłudze Azure Automation
Funkcja Zasoby złożone umożliwia używanie konfiguracji DSC jako zagnieżdżonych zasobów wewnątrz konfiguracji. Ta funkcja umożliwia stosowanie wielu konfiguracji do jednego zasobu. Zobacz Zasoby złożone: używanie konfiguracji DSC jako zasobu , aby dowiedzieć się więcej o zasobach złożonych.
Uwaga
Aby konfiguracje zawierające zasoby złożone zostały poprawnie skompilowane, należy najpierw zaimportować do usługi Azure Automation wszystkie zasoby DSC, na których polegają złożone zasoby. Dodawanie zasobu złożonego DSC nie różni się od dodawania modułu programu PowerShell do usługi Azure Automation. Ten proces jest udokumentowany w artykule Manage Modules in Azure Automation (Zarządzanie modułami w usłudze Azure Automation).
Zarządzanie konfiguracjąData podczas kompilowania konfiguracji w usłudze Azure Automation
ConfigurationData
jest wbudowanym parametrem DSC, który umożliwia oddzielenie konfiguracji strukturalnej od dowolnej konfiguracji specyficznej dla środowiska podczas korzystania z rozszerzenia DSC programu PowerShell. Aby uzyskać więcej informacji, zobacz Oddzielanie wartości "What" od "Where" w programie PowerShell DSC.
Uwaga
Podczas kompilowania w usłudze Azure Automation State Configuration można użyć programu ConfigurationData
Azure PowerShell, ale nie w witrynie Azure Portal.
W poniższym przykładzie konfiguracja DSC jest używana ConfigurationData
za pośrednictwem $ConfigurationData
słów kluczowych i .$AllNodes
W tym przykładzie potrzebny jest również moduł xWebAdministration.
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'
}
}
}
Poprzednią konfigurację DSC można skompilować przy użyciu programu Windows PowerShell. Poniższy skrypt dodaje dwie konfiguracje węzłów do usługi ściągania azure Automation State Configuration: ConfigurationDataSample.MyVM1 i 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
Praca z elementami zawartości w usłudze Azure Automation podczas kompilacji
Odwołania do zasobów są takie same zarówno w usłudze Azure Automation State Configuration, jak i elementach Runbook. Aby uzyskać więcej informacji, zobacz następujące artykuły:
Zasoby poświadczeń
Jeśli konfiguracja ma parametr określający PSCredential
obiekt, użyj polecenia Get-AutomationPSCredential
, przekazując nazwę zasobu poświadczeń usługi Azure Automation do polecenia cmdlet w celu pobrania poświadczeń. Usługa Azure Automation przekazuje poświadczenia do konfiguracji.
Aby zapewnić bezpieczeństwo poświadczeń w konfiguracjach węzłów, zaszyfruj poświadczenia w pliku MOF konfiguracji węzła. Musisz przyznać rozszerzenie DSC programu PowerShell uprawnienia do danych wyjściowych w postaci zwykłego tekstu podczas generowania mof konfiguracji węzła. Rozszerzenie DSC programu PowerShell nie jest świadome, że usługa Azure Automation szyfruje cały plik MOF po jego wygenerowaniu przez zadanie kompilacji.
Możesz poinformować rozszerzenie DSC programu PowerShell, że poświadczenia mają być wyprowadzane w postaci zwykłego tekstu w wygenerowanych plikach MOF konfiguracji węzła przy użyciu danych konfiguracji. Należy przekazać PSDscAllowPlainTextPassword = $true
dla ConfigurationData
każdej nazwy bloku węzła, która jest wyświetlana w konfiguracji DSC i używa poświadczeń.
W poniższym przykładzie przedstawiono konfigurację DSC korzystającą z zasobu poświadczeń usługi Automation.
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
}
}
}
Poprzednią konfigurację DSC można skompilować przy użyciu programu PowerShell. Poniższy kod programu PowerShell dodaje dwie konfiguracje węzłów do serwera ściągania usługi Azure Automation State Configuration: CredentialSample.MyVM1 i CredentialSample.MyVM2.
$ConfigData = @{
AllNodes = @(
@{
NodeName = '*'
PSDscAllowPlainTextPassword = $True
},
@{
NodeName = 'MyVM1'
},
@{
NodeName = 'MyVM2'
}
)
}
Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'CredentialSample' -ConfigurationData $ConfigData
Uwaga
Po zakończeniu kompilacji może zostać wyświetlony komunikat o błędzie The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported.
Możesz bezpiecznie zignorować ten komunikat.
Kompilowanie konfiguracji DSC w programie Windows PowerShell
Proces kompilowania konfiguracji DSC w programie Windows PowerShell jest zawarty w dokumentacji DSC programu PowerShell Zapisywanie, kompilowanie i stosowanie konfiguracji. Ten proces można wykonać z poziomu stacji roboczej dewelopera lub usługi kompilacji, takiej jak Azure DevOps. Następnie możesz zaimportować pliki MOF utworzone przez skompilowanie konfiguracji do usługi Azure State Configuration.
Kompilowanie w programie Windows PowerShell umożliwia również podpisywanie zawartości konfiguracji. Agent DSC weryfikuje lokalnie konfigurację podpisanego węzła w węźle zarządzanym. Weryfikacja zapewnia, że konfiguracja zastosowana do węzła pochodzi z autoryzowanego źródła.
Można również zaimportować konfiguracje węzłów, które zostały skompilowane poza platformą Azure. Importowanie obejmuje kompilację ze stacji roboczej dewelopera lub usługi, takiej jak Azure DevOps. Takie podejście ma wiele zalet, w tym wydajność i niezawodność.
Uwaga
Plik konfiguracji węzła nie może być większy niż 1 MB, aby umożliwić usłudze Azure Automation importowanie go.
Aby uzyskać więcej informacji na temat podpisywania konfiguracji węzłów, zobacz Ulepszenia w programie WMF 5.1 — jak podpisać konfigurację i moduł.
Importowanie konfiguracji węzła w witrynie Azure Portal
Na koncie usługi Automation wybierz pozycję Konfiguracja stanu (DSC) w obszarze Zarządzanie konfiguracją.
Na stronie Konfiguracja stanu (DSC) wybierz kartę Konfiguracje , a następnie wybierz pozycję Dodaj.
Na stronie Importowanie wybierz ikonę folderu obok pola Plik konfiguracji węzła, aby wyszukać plik MOF konfiguracji węzła na komputerze lokalnym.
Wprowadź nazwę w polu Nazwa konfiguracji. Ta nazwa musi być zgodna z nazwą konfiguracji, z której została skompilowana konfiguracja węzła.
Wybierz przycisk OK.
Importowanie konfiguracji węzła za pomocą programu Azure PowerShell
Aby zaimportować konfigurację węzła do konta usługi Automation, możesz użyć polecenia cmdlet Import-AzAutomationDscNodeConfiguration .
$importAzAutomationDscNodeConfigurationSplat = @{
AutomationAccountName = 'MyAutomationAccount'
ResourceGroupName = 'MyResourceGroup'
ConfigurationName = 'MyNodeConfiguration'
Path = 'C:\MyConfigurations\TestVM1.mof'
}
Import-AzAutomationDscNodeConfiguration @importAzAutomationDscNodeConfigurationSplat
Następne kroki
- Aby rozpocząć, zobacz Rozpoczynanie pracy z usługą Azure Automation State Configuration.
- Aby dowiedzieć się więcej o kompilowaniu konfiguracji DSC w celu przypisania ich do węzłów docelowych, zobacz Kompilowanie konfiguracji DSC w usłudze Azure Automation State Configuration.
- Aby zapoznać się z dokumentacją poleceń cmdlet programu PowerShell, zobacz Az.Automation.
- Aby uzyskać informacje o cenach, zobacz Cennik usługi Azure Automation State Configuration.
- Aby zapoznać się z przykładem użycia usługi State Configuration w potoku ciągłego wdrażania, zobacz Konfigurowanie ciągłego wdrażania za pomocą aplikacji Chocolatey.