Konfigurációs adatok használata a DSC-ben

Érintett kiadások: Windows PowerShell 4.0, Windows PowerShell 5.0

A beépített DSC ConfigurationData paraméterrel definiálhatja a konfiguráción belül használható adatokat. Ez lehetővé teszi egyetlen konfiguráció létrehozását, amely több csomóponthoz vagy különböző környezetekhez használható. Ha például egy alkalmazást fejleszt, egy konfigurációt használhat fejlesztési és éles környezetekhez is, és konfigurációs adatokkal megadhatja az egyes környezetek adatait.

Ez a témakör a ConfigurationData kivonattábla szerkezetét ismerteti. Példák a konfigurációs adatok használatára: Konfigurációs és környezeti adatok elkülönítése.

A ConfigurationData gyakori paramétere

A DSC-konfigurációk a konfiguráció lefordításakor megadott gyakori ConfigurationData paramétert használja. A konfigurációk fordításával kapcsolatos információkért lásd: DSC-konfigurációk.

A ConfigurationData paraméter egy kivonattábla, amelynek legalább egy AllNodes nevű kulccsal kell rendelkeznie. Egy vagy több másik kulcs is lehet benne.

Megjegyzés

A jelen témakörben szereplő példák egyetlen további kulcsot használnak (a nevesített AllNodes-kulcs kivételével), NonNodeDatade tetszőleges számú további kulcsot is megadhat, és tetszés szerint elnevezheti őket.

$MyData =
@{
    AllNodes = @()
    NonNodeData = ""
}

Az AllNodes kulcs értéke egy tömb. A tömb minden eleme egy kivonattábla is, amelynek legalább egy NodeName nevű kulccsal kell rendelkeznie:

$MyData =
@{
    AllNodes =
    @(
        @{
            NodeName = "VM-1"
        },


        @{
            NodeName = "VM-2"
        },


        @{
            NodeName = "VM-3"
        }
    );

    NonNodeData = ""
}

Az egyes kivonattáblákhoz további kulcsokat is hozzáadhat:

$MyData =
@{
    AllNodes =
    @(
        @{
            NodeName = "VM-1"
            Role     = "WebServer"
        },


        @{
            NodeName = "VM-2"
            Role     = "SQLServer"
        },


        @{
            NodeName = "VM-3"
            Role     = "WebServer"
        }
    );

    NonNodeData = ""
}

Ha egy tulajdonságot az összes csomópontra alkalmazni szeretne, létrehozhatja az AllNodes tömb egy olyan tagját*, amelynek NodeName értéke . Ha például minden csomópontnak tulajdonságot LogPath szeretne adni, a következőket teheti:

$MyData =
@{
    AllNodes =
    @(
        @{
            NodeName     = "*"
            LogPath      = "C:\Logs"
        },


        @{
            NodeName     = "VM-1"
            Role         = "WebServer"
            SiteContents = "C:\Site1"
            SiteName     = "Website1"
        },


        @{
            NodeName     = "VM-2"
            Role         = "SQLServer"
        },


        @{
            NodeName     = "VM-3"
            Role         = "WebServer"
            SiteContents = "C:\Site2"
            SiteName     = "Website3"
        }
    );
}

Ez egyenértékű azzal, ha egy tulajdonságot a többi blokkhoz (, és VM-3) értékével rendelkező névvel "C:\Logs"LogPath ad VM-2hozzá.VM-1

A ConfigurationData kivonattábla meghatározása

A ConfigurationData definiálható változóként ugyanabban a szkriptfájlban, mint egy konfiguráció (ahogyan az előző példákban is látható), vagy egy külön .psd1 fájlban. A ConfigurationData fájlban való .psd1 definiálásához hozzon létre egy fájlt, amely csak a konfigurációs adatokat képviselő kivonattáblát tartalmazza.

Létrehozhat például egy nevű MyData.psd1 fájlt a következő tartalommal:

@{
    AllNodes =
    @(
        @{
            NodeName    = 'VM-1'
            FeatureName = 'Web-Server'
        },

        @{
            NodeName    = 'VM-2'
            FeatureName = 'Hyper-V'
        }
    )
}

Konfiguráció összeállítása konfigurációs adatokkal

Ha olyan konfigurációt szeretne összeállítani, amelyhez konfigurációs adatokat definiált, a konfigurációs adatokat a ConfigurationData paraméter értékeként kell átadnia.

Ezzel létrehoz egy MOF-fájlt az AllNodes tömb minden egyes bejegyzéséhez. Minden MOF-fájl neve a NodeName megfelelő tömbbejegyzés tulajdonságával lesz elnevezve.

Ha például a MyData.psd1 fenti fájlban megadott konfigurációs adatokat adja meg, akkor a konfiguráció összeállítása mind a VM-2.mof fájlokat, mind VM-1.mof a fájlokat létrehozza.

Konfiguráció összeállítása konfigurációs adatokkal változó használatával

Ha a konfigurációval azonos .ps1 fájlban változóként definiált konfigurációs adatokat szeretne használni, a konfiguráció összeállításakor a configurationData paraméter értékeként adja át a változó nevét:

MyDscConfiguration -ConfigurationData $MyData

Konfiguráció összeállítása konfigurációs adatokkal adatfájl használatával

A .psd1 fájlban definiált konfigurációs adatok használatához a konfiguráció összeállításakor a konfiguráció összeállításakor a fájl elérési útját és nevét adja meg a ConfigurationData paraméter értékeként:

MyDscConfiguration -ConfigurationData .\MyData.psd1

ConfigurationData változók használata konfigurációban

A DSC a következő speciális változókat biztosítja, amelyek egy konfigurációs szkriptben használhatók:

  • $AllNodes a ConfigurationData-ban definiált csomópontok teljes gyűjteményére vonatkozik. Az AllNodes gyűjteményt a használatával szűrheti . Where() és . ForEach().
  • A ConfigurationData a konfiguráció összeállításakor paraméterként átadott teljes kivonattáblára utal.
  • A MyTypeName a változó konfigurációnevét tartalmazza. A konfigurációban MyDscConfigurationpéldául a $MyTypeName értéke MyDscConfiguration.
  • A Node egy adott bejegyzésre hivatkozik az AllNodes gyűjteményben, miután a használatával szűrte . Where() vagy . ForEach().

Nem csomópontos adatok használata

Ahogy az előző példákban is láthattuk, a ConfigurationData kivonattáblának a szükséges AllNodes-kulcs mellett egy vagy több kulcsa is lehet. A jelen témakör példáiban csak egyetlen további csomópontot használtunk, és elneveztük.NonNodeData Megadhat azonban tetszőleges számú további kulcsot, és tetszőleges nevet adhat nekik.

Példa a nem csomópontos adatok használatára: Konfigurációs és környezeti adatok elkülönítése.

Lásd még: