Megosztás a következőn keresztül:


DSC-konfigurációk fordítása az Azure Automation State Configurationben

Feljegyzés

Az Azure Automation State Configuration 2027. szeptember 30-án megszűnik, ezért ezen a napon lépjen át az Azure Machine Configuration szolgáltatásra. További információkért lásd a blogbejegyzés bejelentését. Az Azure Machine Configuration szolgáltatás egyesíti a DSC-bővítmény, az Azure Automation State Configuration és az ügyfelek visszajelzései alapján leggyakrabban kért funkciókat. Az Azure Machine Configuration emellett az Arc-kompatibilis kiszolgálókon keresztüli hibrid gépek támogatását is tartalmazza.

Fontos

Az Add, Compose configuration és Gallery navigációs hivatkozások 2025. március 31-én törlődnek a portálról.

Figyelemfelhívás

A Linuxhoz készült Azure Automation DSC 2023. szeptember 30-án megszűnt. További információkért lásd a közleményt.

A Desired State Configuration (DSC) konfigurációkat az Azure Automation Állapotkonfigurációban a következő módokon fordíthatja le:

  • Azure State Configuration fordítási szolgáltatás

    • Kezdő módszer interaktív felhasználói felülettel
    • Feladat állapotának egyszerű nyomon követése
  • Windows PowerShell

    • Hívás a Windows PowerShellből helyi munkaállomáson vagy buildelési szolgáltatásban
    • Integrálás fejlesztési tesztfolyamattal
    • Összetett paraméterértékek megadása
    • Csomópont- és nem csomópontadatok nagy léptékű használata
    • Jelentős teljesítménybeli javulás

Az Azure Resource Manager-sablonokat az Azure Desired State Configuration (DSC) kiterjesztéssel is használhatja a konfigurációk Azure-beli virtuális gépekre való leküldéséhez. Az Azure DSC-bővítmény az Azure-beli virtuálisgép-ügynök keretrendszerét használja az Azure-beli virtuális gépeken futó DSC-konfigurációk kézbesítésére, bevezetésére és jelentésére. Az Azure Resource Manager-sablonok használatával végzett fordítási részletekért tekintse meg a Desired State Configuration bővítményt Azure Resource Manager-sablonokkal.

DSC-konfiguráció fordítása az Azure State Configuration-ban

Portál

  1. Az Automation-fiókban válassza az Állapotkonfiguráció (DSC) lehetőséget.
  2. Válassza ki a Konfigurációk lapon, majd válassza ki a lefordítandó konfiguráció nevét.
  3. Válassza a Fordítás lehetőséget.
  4. Ha a konfiguráció nem rendelkezik paraméterekkel, a rendszer kérni fogja, hogy ellenőrizze, hogy lefordítja-e. Ha a konfiguráció paraméterekkel rendelkezik, megnyílik a Fordítási konfiguráció panel, hogy paraméterértékeket adjon meg.
  5. A Fordítási feladat lap meg van nyitva, hogy nyomon tudja követni a fordítási feladat állapotát. Ezen a lapon nyomon követheti az Azure Automation State Configuration lekéréses kiszolgálóján elhelyezett csomópontkonfigurációkat (MOF-konfigurációs dokumentumokat).

Azure PowerShell

A Start-AzAutomationDscCompilationJob használatával elkezdheti a fordítást a Windows PowerShell használatával. Az alábbi mintakód megkezdi a SampleConfig nevű DSC-konfiguráció összeállítását.

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

Start-AzAutomationDscCompilationJob egy fordítási feladat objektumot ad vissza, amellyel nyomon követheti a feladat állapotát. Ezt a fordítási feladatobjektumot a Get-AzAutomationDscCompilationJob használatával meghatározhatja a fordítási feladat állapotát, a Get-AzAutomationDscCompilationJobOutput pedig megtekintheti a streameket (kimenetet). Az alábbi minta elkezdi a SampleConfig konfiguráció összeállítását, megvárja, amíg befejeződik, majd megjeleníti a streameket.

$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

Alapvető paraméterek deklarálása

A DSC-konfigurációk paraméterdeklarációja, beleértve a paramétertípusokat és -tulajdonságokat, ugyanúgy működik, mint az Azure Automation-runbookokban. A runbook paramétereivel kapcsolatos további információkért lásd : Runbook indítása az Azure Automationben.

Az alábbi példa a ParametersExample.mintacsomópont-konfigurációbanlévő tulajdonságok értékeinek meghatározására használ FeatureName és IsPresent paramétereket, amelyek a fordítás során jönnek létre.

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

Olyan DSC-konfigurációkat állíthat össze, amelyek alapszintű paramétereket használnak az Azure Automation State Configuration portálon vagy az Azure PowerShell-lel.

Portál

A portálon a Fordítás gombra kattintás után megadhatja a paraméterértékeket.

Konfigurációfordítási paraméterek

Azure PowerShell

A PowerShell egy kivonatolóban igényel paramétereket, ahol a kulcs megegyezik a paraméter nevével, az érték pedig a paraméter értékével.

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

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

Az objektumok paraméterként való PSCredential átadásáról további információt a Hitelesítő adatok eszköz című témakörben talál.

Összetett erőforrásokat tartalmazó konfigurációk fordítása az Azure Automationben

Az Összetett erőforrások funkció lehetővé teszi a DSC-konfigurációk beágyazott erőforrásokként való használatát egy konfiguráción belül. Ez a funkció lehetővé teszi több konfiguráció alkalmazását egyetlen erőforrásra. Lásd : Összetett erőforrások: DSC-konfiguráció használata erőforrásként az összetett erőforrásokról.

Feljegyzés

Ahhoz, hogy az összetett erőforrásokat tartalmazó konfigurációk megfelelően legyenek lefordítva, először importálnia kell az Azure Automationbe minden olyan DSC-erőforrást, amelyre az összetett erőforrások támaszkodnak. A DSC összetett erőforrás hozzáadása nem különbözik attól, hogy powerShell-modulokat ad hozzá az Azure Automationhez. Ezt a folyamatot az Azure Automation moduljainak kezelése című témakörben dokumentáljuk.

ConfigurationData kezelése az Azure Automation konfigurációinak összeállításakor

ConfigurationData egy beépített DSC-paraméter, amely lehetővé teszi, hogy a PowerShell DSC használata során elkülönítse a szerkezeti konfigurációt a környezetspecifikus konfigurációktól. További információ: "What" és "Where" elválasztása a PowerShell DSC-ben.

Feljegyzés

Az Azure Automation State Configuration összeállításakor az Azure PowerShellben használhatja ConfigurationData , de az Azure Portalon nem.

Az alábbi példa DSC-konfigurációja a kulcsszavakon $AllNodes és a kulcsszavakon keresztül használjaConfigurationData.$ConfigurationData Ehhez a példához az xWebAdministration modulra is szüksége van.

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

Az előző DSC-konfigurációt a Windows PowerShell használatával fordíthatja le. A következő szkript két csomópontkonfigurációt ad hozzá az Azure Automation State Configuration lekérési szolgáltatásához: ConfigurationDataSample.MyVM1 és 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

Eszközök használata az Azure Automationben a fordítás során

Az eszközhivatkozások megegyeznek az Azure Automation State Configuration és a runbookok esetében is. További információért tekintse át az alábbi cikkeket:

Hitelesítőadat-eszközök

Ha egy konfiguráció egy objektumot meghatározó PSCredential paraméterrel rendelkezik, használja Get-AutomationPSCredential egy Azure Automation-hitelesítő adategység nevét a parancsmagnak a hitelesítő adatok lekéréséhez. Az Azure Automation átadja a hitelesítő adatokat a konfigurációnak.

A csomópontkonfigurációk hitelesítő adatainak biztonságossá tételéhez titkosítsa a csomópontkonfiguráció MOF-fájljában lévő hitelesítő adatokat. A csomópontkonfiguráció MOF-generációja során engedélyeznie kell a PowerShell DSC-t, hogy egyszerű szövegben adja ki a hitelesítő adatokat. A PowerShell DSC nem tudja, hogy az Azure Automation a fordítási feladat által létrehozott teljes MOF-fájlt titkosítja.

A PowerShell DSC-nek elmondhatja, hogy nem gond, ha a hitelesítő adatokat egyszerű szövegben adja ki a generált csomópontkonfigurációs MOF-ekben a konfigurációs adatok használatával. A DSC-konfigurációban megjelenő és hitelesítő adatokat használó csomópontblokkok neveihez át kell adnia az adatokat PSDscAllowPlainTextPassword = $trueConfigurationData .

Az alábbi példa egy Automation hitelesítőadat-objektumot használó DSC-konfigurációt mutat be.

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

Az előző DSC-konfigurációt a PowerShell használatával fordíthatja le. A következő PowerShell-kód két csomópontkonfigurációt ad hozzá az Azure Automation State Configuration lekéréses kiszolgálójához: CredentialSample.MyVM1 és CredentialSample.MyVM2.

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

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

Feljegyzés

Ha a fordítás befejeződött, előfordulhat, hogy a hibaüzenet jelenik meg The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported. Ezt az üzenetet nyugodtan figyelmen kívül hagyhatja.

A DSC-konfiguráció fordítása a Windows PowerShellben

A DSC-konfigurációk Windows PowerShellben történő fordításának folyamata a PowerShell DSC írási, fordítási és alkalmazási dokumentációjában található. Ezt a folyamatot egy fejlesztői munkaállomáson vagy egy buildszolgáltatáson belül, például az Azure DevOpsban hajthatja végre. Ezután importálhatja a létrehozott MOF-fájlokat úgy, hogy összeállítja a konfigurációt az Azure State Configuration szolgáltatásba.

A Windows PowerShell fordítása lehetővé teszi a konfigurációs tartalom aláírását is. A DSC-ügynök helyileg ellenőrzi az aláírt csomópont konfigurációját egy felügyelt csomóponton. Az ellenőrzés biztosítja, hogy a csomópontra alkalmazott konfiguráció egy engedélyezett forrásból származik.

Az Azure-on kívül lefordított csomópontkonfigurációkat is importálhatja. Az importálás magában foglalja a fordítást egy fejlesztői munkaállomásról vagy egy olyan szolgáltatásból, mint az Azure DevOps. Ez a megközelítés több előnnyel is rendelkezik, beleértve a teljesítményt és a megbízhatóságot.

Feljegyzés

A csomópontkonfigurációs fájl nem lehet nagyobb 1 MB-nál, hogy az Azure Automation importálhassa.

A csomópontkonfigurációk aláírásával kapcsolatos további információkért lásd a WMF 5.1 – Konfiguráció és modul aláírásának fejlesztéseit.

Csomópontkonfiguráció importálása az Azure Portalon

  1. Az Automation-fiókban válassza az Állapotkonfiguráció (DSC) lehetőséget a Configuration Management területen.

  2. Az Állapotkonfiguráció (DSC) lapon válassza a Konfigurációk lapon, majd a Hozzáadás lehetőséget.

  3. Az Importálás lapon válassza a Csomópontkonfigurációs fájl mező melletti mappaikont a helyi számítógépen található csomópontkonfigurációs MOF-fájl megkereséséhez.

    Keresse meg a helyi fájlt

  4. Adjon meg egy nevet a Konfiguráció neve mezőben. Ennek a névnek meg kell egyeznie annak a konfigurációnak a nevével, amelyből a csomópontkonfigurációt lefordították.

  5. Kattintson az OK gombra.

Csomópontkonfiguráció importálása az Azure PowerShell használatával

Az Import-AzAutomationDscNodeConfiguration parancsmaggal importálhat csomópontkonfigurációt az Automation-fiókjába.

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

Következő lépések