Share via


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

Megjegyzés:

Az Automation State Configuration engedélyezése előtt szeretnénk tudni, hogy a DSC egy újabb verziója általánosan elérhető, amelyet az Azure Policy vendégkonfiguráció nevű funkciója felügyel. A vendégkonfigurációs szolgáltatás egyesíti a DSC-bővítmény, az Azure Automation State Configuration funkcióit és az ügyfelek visszajelzéseiből leggyakrabban kért funkciókat. A vendégkonfiguráció a hibrid gépek Arc-kompatibilis kiszolgálókon keresztüli támogatását is tartalmazza.

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

Portal

  1. Az Automation-fiókban kattintson az Állapotkonfiguráció (DSC) elemre.
  2. Kattintson a Konfigurációk fülre, majd a lefordítandó konfiguráció nevére.
  3. Kattintson a Fordítás gombra.
  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 megkezdi 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 tekintse meg a runbook azure Automationben való elindítását ismertető témakört.

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.

Portal

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

Configuration compile parameters

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.

Megjegyzé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.

Megjegyzé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 szüksége van az xWeb Rendszergazda istration modulra is.

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. For more information, see the following:

Hitelesítő adatok

Az Azure Automation DSC-konfigurációi a parancsmag használatával hivatkozhatnak az Automation hitelesítő adataira Get-AutomationPSCredential . Ha egy konfiguráció egy objektumot meghatározó PSCredential paraméterrel rendelkezik, használja Get-AutomationPSCredential az Azure Automation hitelesítő adategységének sztringnevét a parancsmagnak a hitelesítő adatok lekéréséhez. Ezután használja ezt az objektumot az objektumot igénylő PSCredential paraméterhez. A háttérben a rendszer lekéri és átadja a konfigurációnak az Azure Automation ilyen nevű hitelesítő adategységét. Az alábbi példa működés közben mutatja be ezt a forgatókönyvet.

A csomópontkonfigurációkban (MOF-konfigurációs dokumentumokban) a hitelesítő adatok biztonságossá tételéhez a csomópontkonfigurációSOF-fájlban lévő hitelesítő adatok titkosítása szükséges. A csomópontkonfiguráció MOF-generációja során jelenleg PowerShell DSC-engedélyt kell adnia a hitelesítő adatok egyszerű szövegben való megadására. A PowerShell DSC nem tudja, hogy az Azure Automation fordítási feladaton keresztül titkosítja a teljes MOF-fájlt a létrehozás után.

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

Megjegyzés:

Ha a fordítás befejeződött, előfordulhat, hogy a hibaüzenet The 'Microsoft.PowerShell.Management' module was not imported because the 'Microsoft.PowerShell.Management' snap-in was already imported. jelenik meg. 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 (MOF-fájlokat) 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.

Megjegyzé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 kattintson az Állapotkonfiguráció (DSC) elemre a Configuration Management területen.

  2. Az Állapotkonfiguráció (DSC) lapon kattintson a Konfigurációk fülre, majd a Hozzáadás gombra.

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

    Browse for local file

  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.

Import-AzAutomationDscNodeConfiguration -AutomationAccountName 'MyAutomationAccount' -ResourceGroupName 'MyResourceGroup' -ConfigurationName 'MyNodeConfiguration' -Path 'C:\MyConfigurations\TestVM1.mof'

Következő lépések