Konfigurációs adataik használata a DSC-benUsing configuration data in DSC

A következőkre vonatkozik: Windows PowerShell 4,0, Windows PowerShell 5,0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

A beépített DSC ConfigurationData paraméter használatával megadhatja a konfiguráción belül használható adattípusokat.By using the built-in DSC ConfigurationData parameter, you can define data that can be used within a configuration. Ez lehetővé teszi, hogy egyetlen konfigurációt hozzon létre, amely több csomóponthoz vagy különböző környezetekhez használható.This allows you to create a single configuration that can be used for multiple nodes or for different environments. Ha például alkalmazást fejleszt, az egyik konfigurációt használhatja fejlesztési és éles környezetekhez is, és konfigurációs adattal is megadhatja az egyes környezetekhez tartozó adatkészleteket.For example, if you are developing an application, you can use one configuration for both development and production environments, and use configuration data to specify data for each environment.

Ez a témakör a ConfigurationData -szórótábla szerkezetét ismerteti.This topic describes the structure of the ConfigurationData hashtable. Példák a konfigurációs információk használatára: a konfigurációs és környezeti információk elkülönítése.For examples of how to use configuration data, see Separating configuration and environment data.

A ConfigurationData Common paraméterThe ConfigurationData common parameter

A DSC-konfiguráció a konfiguráció fordításakor megadott ConfigurationData általános paramétert veszi figyelembe.A DSC configuration takes a common parameter, ConfigurationData , that you specify when you compile the configuration. A konfigurációk fordításával kapcsolatos információkért lásd: DSC-konfigurációk.For information about compiling configurations, see DSC configurations.

A ConfigurationData paraméter egy olyan szórótábla, amelynek legalább egy AllNodes nevű kulccsal kell rendelkeznie.The ConfigurationData parameter is a hashtable that must have at least one key named AllNodes . Egy vagy több másik kulccsal is rendelkezhet.It can also have one or more other keys.

Megjegyzés

A jelen témakörben szereplő példák egyetlen további kulcsot használnak (az elnevezett AllNodes kulcstól eltérő) NonNodeData , de tetszőleges számú további kulcsot is megadhat, és tetszés szerint elnevezheti őket.The examples in this topic use a single additional key (other than the named AllNodes key) named NonNodeData, but you can include any number of additional keys, and name them whatever you want.

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

A AllNodes kulcs értéke egy tömb.The value of the AllNodes key is an array. A tömb minden eleme egy kivonatoló tábla is, amelynek legalább egy csomópontnév nevű kulccsal kell rendelkeznie:Each element of this array is also a hash table that must have at least one key named NodeName :

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


        @{
            NodeName = "VM-2"
        },


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

    NonNodeData = ""
}

Az egyes kivonatoló táblákhoz további kulcsokat is hozzáadhat:You can add other keys to each hash table as well:

$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étrehozhat egy olyan tagot a AllNodes -tömbből, amely csomópontnév rendelkezik * .To apply a property to all nodes, you can create a member of the AllNodes array that has a NodeName of *. Ha például az összes csomópontot egy LogPath tulajdonsággal szeretné megadni, tegye a következőket:For example, to give every node a LogPath property, you could do this:

$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ű egy olyan tulajdonság hozzáadásával, amelynek a neve megegyezik a LogPath "C:\Logs" többi blokk ( VM-1 , VM-2 , és) értékével VM-3 .This is the equivalent of adding a property with a name of LogPath with a value of "C:\Logs" to each of the other blocks (VM-1, VM-2, and VM-3).

A ConfigurationData szórótábla definiálásaDefining the ConfigurationData hashtable

A ConfigurationData megadható változóként ugyanazon a parancsfájlban (például az előző példákban) vagy egy külön .psd1 fájlban.You can define ConfigurationData either as a variable within the same script file as a configuration (as in our previous examples) or in a separate .psd1 file. Ha ConfigurationData szeretne megadni egy .psd1 fájlban, hozzon létre egy fájlt, amely csak a konfigurációs adathalmazt képviselő szórótábla tartalmazza.To define ConfigurationData in a .psd1 file, create a file that contains only the hashtable that represents the configuration data.

Létrehozhat például egy nevű fájlt MyData.psd1 a következő tartalommal:For example, you could create a file named MyData.psd1 with the following contents:

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

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

Konfiguráció fordítása konfigurációs adattalCompiling a configuration with configuration data

Egy olyan konfiguráció fordításához, amelynek konfigurációs adatmennyiségét definiálta, a konfigurációs adatmennyiséget a ConfigurationData paraméter értékeként adja át.To compile a configuration for which you have defined configuration data, you pass the configuration data as the value of the ConfigurationData parameter.

Ezzel létrehoz egy MOF-fájlt a AllNodes tömb minden egyes bejegyzéséhez.This will create a MOF file for each entry in the AllNodes array. Minden MOF-fájl neve a NodeName megfelelő tömb bejegyzésének tulajdonságával történik.Each MOF file will be named with the NodeName property of the corresponding array entry.

Ha például a fenti fájlban a konfigurációs adatértékeket adja meg, akkor a MyData.psd1 konfiguráció fordítása mind a, mind a VM-1.mof fájlokat létrehozza VM-2.mof .For example, if you define configuration data as in the MyData.psd1 file above, compiling a configuration would create both VM-1.mof and VM-2.mof files.

Konfigurációs adattal rendelkező konfiguráció fordítása változó használatávalCompiling a configuration with configuration data using a variable

Ha a konfigurációval megegyező fájlban változóként definiált konfigurációs adatmennyiséget szeretne használni .ps1 , akkor a konfiguráció fordításakor a ConfigurationData paraméter értékeként adja meg a változó nevét:To use configuration data that is defined as a variable in the same .ps1 file as the configuration, you pass the variable name as the value of the ConfigurationData parameter when compiling the configuration:

MyDscConfiguration -ConfigurationData $MyData

Konfigurációs adattal rendelkező konfiguráció fordítása adatfájl használatávalCompiling a configuration with configuration data using a data file

A. psd1 fájlban definiált konfigurációs adatmennyiségek használatához adja meg a fájl elérési útját és nevét a ConfigurationData paraméter értékeként a konfiguráció fordításakor:To use configuration data that is defined in a .psd1 file, you pass the path and name of that file as the value of the ConfigurationData parameter when compiling the configuration:

MyDscConfiguration -ConfigurationData .\MyData.psd1

ConfigurationData-változók használata konfigurációbanUsing ConfigurationData variables in a configuration

A DSC a következő különleges változókat biztosítja, amelyek használhatók egy konfigurációs parancsfájlban:DSC provides the following special variables that can be used in a configuration script:

  • $AllNodes a ConfigurationData -ben definiált csomópontok teljes gyűjteményére hivatkozik.$AllNodes refers to the entire collection of nodes defined in ConfigurationData . A AllNodes -gyűjteményt a használatával szűrheti . WHERE () és . ForEach () .You can filter the AllNodes collection by using .Where() and .ForEach() .
  • A ConfigurationData a konfiguráció fordításakor paraméterként átadott teljes kivonatoló táblázatra hivatkozik.ConfigurationData refers to the entire hash table that is passed as the parameter when compiling a configuration.
  • A MyTypeName tartalmazza azt a konfigurációs nevet, amelyet a változó használ a ben.MyTypeName contains the configuration name the variable is used in. A konfigurációban például MyDscConfiguration a értéke a következő $MyTypeName lesz: MyDscConfiguration .For example, in the configuration MyDscConfiguration, the $MyTypeName will have a value of MyDscConfiguration.
  • A csomópont a AllNodes gyűjtemény egy adott bejegyzésére hivatkozik, miután azt a használatával szűrte . WHERE () vagy . ForEach () .Node refers to a particular entry in the AllNodes collection after it is filtered by using .Where() or .ForEach() .

Nem csomópontos adat használataUsing non-node data

Ahogy az előző példákban is látható, a ConfigurationData szórótábla egy vagy több kulccsal is rendelkezhet a szükséges AllNodes -kulcs mellett.As we've seen in previous examples, the ConfigurationData hashtable can have one or more keys in addition to the required AllNodes key. A jelen témakörben szereplő példákban csak egyetlen további csomópontot használtunk, és megnevezettük NonNodeData .In the examples in this topic, we have used only a single additional node, and named it NonNodeData. Megadhat azonban tetszőleges számú további kulcsot, és elnevezheti őket, amit csak szeretne.However, you can define any number of additional keys, and name them anything you want.

A nem csomópontos adatmennyiségek használatára vonatkozó példát a konfigurációs és környezeti információk elkülönítésecímű témakörben talál.For an example of using non-node data, see Separating configuration and environment data.

Lásd még:See Also