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), NonNodeData
de 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-2
hozzá.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
MyDscConfiguration
például a$MyTypeName
értékeMyDscConfiguration
. - A Node egy adott bejegyzésre hivatkozik az AllNodes gyűjteményben, miután a használatával szűrte . Where() vagy . ForEach().
- Ezekről a módszerekről a about_arrays
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.