Sdílet prostřednictvím


Kompilace konfigurací DSC ve službě Azure Automation State Configuration

Poznámka:

Azure Automation State Configuration bude vyřazena 30. září 2027. Do tohoto data přejděte na Azure Machine Configuration . Další informace najdete v blogovém příspěvku. Služba Azure Machine Configuration kombinuje funkce rozšíření DSC, Azure Automation State Configuration a nejčastěji požadované funkce od zpětné vazby zákazníků. Konfigurace počítače Azure také zahrnuje podporu hybridních počítačů prostřednictvím serverů s podporou Arc.

Upozornění

Azure Automation DSC pro Linux se 30. září 2023 vyřadil z 30. Další informace najdete v oznámení.

Konfigurace DSC (Desired State Configuration) můžete v Azure Automation State Configuration zkompilovat následujícími způsoby:

  • Služba kompilace azure State Configuration

    • Metoda začátečníka s interaktivním uživatelským rozhraním
    • Snadné sledování stavu úlohy
  • Windows PowerShell

    • Volání z Prostředí Windows PowerShell na místní pracovní stanici nebo službě sestavení
    • Integrace s vývojovým testovacím kanálem
    • Zadání komplexních hodnot parametrů
    • Práce s daty uzlů a dat bez uzlů ve velkém měřítku
    • Významné zlepšení výkonu

K nabízení konfigurací do virtuálních počítačů Azure můžete použít také šablony Azure Resource Manageru s rozšířením DSC (Azure Desired State Configuration). Rozšíření Azure DSC využívá architekturu agenta virtuálního počítače Azure k poskytování, přijetí a hlášení konfigurací DSC spuštěných na virtuálních počítačích Azure. Podrobnosti o kompilaci pomocí šablon Azure Resource Manageru najdete v tématu Rozšíření Desired State Configuration pomocí šablon Azure Resource Manageru.

Kompilace konfigurace DSC v Azure State Configuration

Portál

  1. V účtu Automation vyberte State Configuration (DSC).
  2. Vyberte na kartě Konfigurace a pak vyberte název konfigurace, který chcete zkompilovat.
  3. Vyberte Kompilovat.
  4. Pokud konfigurace neobsahuje žádné parametry, zobrazí se výzva k potvrzení, jestli ji chcete zkompilovat. Pokud má konfigurace parametry, otevře se podokno Konfigurace kompilace , abyste mohli zadat hodnoty parametrů.
  5. Otevře se stránka Úloha kompilace, abyste mohli sledovat stav úlohy kompilace. Na této stránce můžete také sledovat konfigurace uzlů (dokumenty konfigurace MOF) umístěné na serveru vyžádané replikace stavu služby Azure Automation.

Azure PowerShell

Ke spuštění kompilace pomocí rutiny Start-AzAutomationDscCompilationJob můžete začít kompilovat pomocí Windows PowerShellu. Následující ukázkový kód zahájí kompilaci konfigurace DSC s názvem SampleConfig.

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'SampleConfig'

Start-AzAutomationDscCompilationJob vrátí objekt úlohy kompilace, který můžete použít ke sledování stavu úlohy. Tento objekt úlohy kompilace pak můžete použít s get-AzAutomationDscCompilationJob k určení stavu úlohy kompilace a Get-AzAutomationDscCompilationJobOutput k zobrazení jeho datových proudů (výstup). Následující ukázka spustí kompilaci konfigurace SampleConfig, počká, až se dokončí, a pak zobrazí jeho streamy.

$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

Deklarace základních parametrů

Deklarace parametrů v konfiguracích DSC, včetně typů a vlastností parametrů, funguje stejně jako v runboocích Azure Automation. Další informace o parametrech runbooku najdete v tématu Spuštění runbooku ve službě Azure Automation.

Následující příklad používá FeatureName a IsPresent parametry k určení hodnot vlastností v konfiguraci ParametersExample.sample node vygenerované během kompilace.

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
        }
    }
}

Konfigurace DSC, které používají základní parametry, můžete zkompilovat na portálu Azure Automation State Configuration nebo pomocí Azure PowerShellu.

Portál

Na portálu můžete po kliknutí na Tlačítko Zkompilovat zadat hodnoty parametrů.

Parametry kompilace konfigurace

Azure PowerShell

PowerShell vyžaduje parametry v hashtable, kde klíč odpovídá názvu parametru a hodnota se rovná hodnotě parametru.

$Parameters = @{
    'FeatureName' = 'Web-Server'
    'IsPresent' = $False
}

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'ParametersExample' -Parameters $Parameters

Informace o předávání PSCredential objektů jako parametrů naleznete v tématu Prostředky přihlašovacích údajů.

Kompilace konfigurací obsahujících složené prostředky ve službě Azure Automation

Funkce Složené prostředky umožňuje používat konfigurace DSC jako vnořené prostředky v rámci konfigurace. Tato funkce umožňuje aplikaci více konfigurací pro jeden prostředek. Další informace o složených prostředcích najdete v tématu Složené prostředky: Použití konfigurace DSC jako prostředku .

Poznámka:

Aby se konfigurace obsahující složené prostředky zkompiloval správně, musíte nejprve importovat do Azure Automation všechny prostředky DSC, na které složené prostředky spoléhají. Přidání složeného prostředku DSC se nijak neliší od přidání jakéhokoli modulu PowerShellu do Azure Automation. Tento proces je zdokumentovaný ve správě modulů ve službě Azure Automation.

Správa konfiguračních dat při kompilaci konfigurací ve službě Azure Automation

ConfigurationData je integrovaný parametr DSC, který umožňuje oddělit strukturální konfiguraci od jakékoli konfigurace specifické pro prostředí při použití PowerShell DSC. Další informace najdete v tématu Oddělení "What" od where v PowerShell DSC.

Poznámka:

Při kompilaci ve službě Azure Automation State Configuration můžete použít ConfigurationData Azure PowerShell, ale ne na webu Azure Portal.

Následující příklad konfigurace DSC používá ConfigurationData prostřednictvím $ConfigurationData klíčových slov.$AllNodes V tomto příkladu potřebujete také modul 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'
        }
    }
}

Předchozí konfiguraci DSC můžete zkompilovat pomocí Windows PowerShellu. Následující skript přidá do služby vyžádané replikace stavu služby Azure Automation dvě konfigurace uzlů: ConfigurationDataSample.MyVM1 a 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

Práce s prostředky ve službě Azure Automation během kompilace

Odkazy na prostředky jsou stejné jak ve službě Azure Automation State Configuration, tak v runboocích. Další informace najdete v následujících článcích:

Prostředky přihlašovacích údajů

Pokud má konfigurace parametr, který určuje PSCredential objekt, použijte Get-AutomationPSCredential předáním názvu prostředku přihlašovacích údajů služby Azure Automation rutině k načtení přihlašovacích údajů. Azure Automation předá přihlašovací údaje konfiguraci.

Pokud chcete přihlašovací údaje zabezpečit v konfiguracích uzlů, zašifrujte přihlašovací údaje v souboru MOF konfigurace uzlu. Při generování MOF konfigurace uzlu musíte udělit oprávnění PowerShellU DSC k výstupu přihlašovacích údajů ve formátu prostého textu. PowerShell DSC neví, že Služba Azure Automation po vygenerování úlohy kompilace šifruje celý soubor MOF.

PowerShell DSC můžete říct, že je v pořádku, aby se přihlašovací údaje vypisovaly ve formátu prostého textu v generovaných souborech MOF konfigurace uzlu pomocí konfiguračních dat. Měli byste předat PSDscAllowPlainTextPassword = $true název ConfigurationData bloku každého uzlu, který se zobrazí v konfiguraci DSC a používá přihlašovací údaje.

Následující příklad ukazuje konfiguraci DSC, která používá asset přihlašovacích údajů 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
        }
    }
}

Předchozí konfiguraci DSC můžete zkompilovat pomocí PowerShellu. Následující kód PowerShellu přidá do serveru vyžádané replikace stavu služby Azure Automation dvě konfigurace uzlů: CredentialSample.MyVM1 a CredentialSample.MyVM2.

$ConfigData = @{
    AllNodes = @(
        @{
            NodeName = '*'
            PSDscAllowPlainTextPassword = $True
        },
        @{
            NodeName = 'MyVM1'
        },
        @{
            NodeName = 'MyVM2'
        }
    )
}

Start-AzAutomationDscCompilationJob -ResourceGroupName 'MyResourceGroup' -AutomationAccountName 'MyAutomationAccount' -ConfigurationName 'CredentialSample' -ConfigurationData $ConfigData

Poznámka:

Po dokončení kompilace se může zobrazit chybová zpráva. The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported. Tuto zprávu můžete bezpečně ignorovat.

Kompilace konfigurace DSC ve Windows PowerShellu

Proces kompilace konfigurací DSC v prostředí Windows PowerShell je součástí dokumentace k PowerShellU DSC Zápis, kompilace a použití konfigurace. Tento proces můžete spustit z pracovní stanice vývojáře nebo v rámci služby sestavení, jako je Azure DevOps. Potom můžete importovat soubory MOF vytvořené kompilací konfigurace do služby Azure State Configuration.

Kompilace ve Windows PowerShellu také poskytuje možnost podepsat konfigurační obsah. Agent DSC ověřuje konfiguraci podepsaného uzlu místně na spravovaném uzlu. Ověření zajišťuje, že konfigurace použitá na uzel pochází z autorizovaného zdroje.

Můžete také importovat konfigurace uzlů zkompilované mimo Azure. Import zahrnuje kompilaci z pracovní stanice vývojáře nebo ve službě, jako je Azure DevOps. Tento přístup má několik výhod, včetně výkonu a spolehlivosti.

Poznámka:

Konfigurační soubor uzlu nesmí být větší než 1 MB, aby ho služba Azure Automation mohla importovat.

Další informace o podepisování konfigurací uzlů naleznete v tématu Vylepšení WMF 5.1 – Jak podepsat konfiguraci a modul.

Import konfigurace uzlu na webu Azure Portal

  1. V účtu Automation vyberte v části Správa konfigurace možnost State Configuration Configuration (DSC).

  2. Na stránce Konfigurace stavu (DSC) vyberte na kartě Konfigurace a pak vyberte Přidat.

  3. Na stránce Import vyberte ikonu složky vedle pole Konfigurační soubor uzlu a vyhledejte soubor MOF konfigurace uzlu v místním počítači.

    Vyhledání místního souboru

  4. Do pole Název konfigurace zadejte název. Tento název se musí shodovat s názvem konfigurace, ze které byla konfigurace uzlu zkompilována.

  5. Vyberte OK.

Import konfigurace uzlu pomocí Azure PowerShellu

K importu konfigurace uzlu do účtu Automation můžete použít rutinu Import-AzAutomationDscNodeConfiguration .

$importAzAutomationDscNodeConfigurationSplat = @{
    AutomationAccountName = 'MyAutomationAccount'
    ResourceGroupName = 'MyResourceGroup'
    ConfigurationName = 'MyNodeConfiguration'
    Path = 'C:\MyConfigurations\TestVM1.mof'
}
Import-AzAutomationDscNodeConfiguration @importAzAutomationDscNodeConfigurationSplat

Další kroky