Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Windows PowerShell 4.0, Windows PowerShell 5.0
À l’aide du paramètre DSC ConfigurationData intégré, vous pouvez définir des données qui peuvent être utilisées dans une configuration. Cela vous permet de créer une configuration unique qui peut être utilisée pour plusieurs nœuds ou pour différents environnements. Par exemple, si vous développez une application, vous pouvez utiliser une configuration pour les environnements de développement et de production, et utiliser les données de configuration pour spécifier les données de chaque environnement.
Cette rubrique décrit la structure de la table de hachage ConfigurationData . Pour obtenir des exemples d’utilisation des données de configuration, consultez Séparation des données de configuration et d’environnement.
Le paramètre commun ConfigurationData
Une configuration DSC prend un paramètre commun, ConfigurationData, que vous spécifiez lorsque vous compilez la configuration. Pour plus d’informations sur la compilation des configurations, reportez-vous à la section Configurations DSC.
Le paramètre ConfigurationData est une table de hachage qui doit avoir au moins une clé nommée AllNodes. Il peut également avoir une ou plusieurs autres touches.
Note
Les exemples de cette rubrique utilisent une seule clé supplémentaire (autre que la clé AllNodes nommée) nommée NonNodeData, mais vous pouvez inclure n’importe quel nombre de clés supplémentaires et les nommer comme vous le souhaitez.
$MyData =
@{
AllNodes = @()
NonNodeData = ""
}
La valeur de la clé AllNodes est un tableau. Chaque élément de ce tableau est également une table de hachage qui doit avoir au moins une clé nommée NodeName :
$MyData =
@{
AllNodes =
@(
@{
NodeName = "VM-1"
},
@{
NodeName = "VM-2"
},
@{
NodeName = "VM-3"
}
);
NonNodeData = ""
}
Vous pouvez également ajouter d’autres clés à chaque table de hachage :
$MyData =
@{
AllNodes =
@(
@{
NodeName = "VM-1"
Role = "WebServer"
},
@{
NodeName = "VM-2"
Role = "SQLServer"
},
@{
NodeName = "VM-3"
Role = "WebServer"
}
);
NonNodeData = ""
}
Pour appliquer une propriété à tous les nœuds, vous pouvez créer un membre du tableau AllNodes dont le NodeName est .* Par exemple, pour donner une LogPath propriété à chaque nœud, vous pouvez procéder comme suit :
$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"
}
);
}
Cela équivaut à ajouter une propriété avec un nom de LogPath avec une valeur de "C:\Logs" à chacun des autres blocs (VM-1, VM-2, et VM-3).
Définition de la table de hachage ConfigurationData
Vous pouvez définir ConfigurationData soit en tant que variable dans le même fichier de script qu’une configuration (comme dans nos exemples précédents), soit dans un fichier distinct .psd1 . Pour définir ConfigurationData dans un .psd1 fichier, créez un fichier qui contient uniquement la table de hachage qui représente les données de configuration.
Par exemple, vous pouvez créer un fichier nommé MyData.psd1 avec le contenu suivant :
@{
AllNodes =
@(
@{
NodeName = 'VM-1'
FeatureName = 'Web-Server'
},
@{
NodeName = 'VM-2'
FeatureName = 'Hyper-V'
}
)
}
Compilation d’une configuration à l’aide de données de configuration
Pour compiler une configuration pour laquelle vous avez défini des données de configuration, vous transmettez les données de configuration en tant que valeur du paramètre ConfigurationData .
Cela créera un fichier MOF pour chaque entrée du tableau AllNodes . Chaque fichier MOF sera nommé avec la propriété de l’entrée NodeName de tableau correspondante.
Par exemple, si vous définissez les données de configuration comme dans le MyData.psd1 fichier ci-dessus, la compilation d’une configuration créera les deux VM-1.mof fichiers et VM-2.mof .
Compilation d’une configuration avec des données de configuration à l’aide d’une variable
Pour utiliser des données de configuration définies en tant que variable dans le même .ps1 fichier que la configuration, vous devez passer le nom de la variable en tant que valeur du paramètre ConfigurationData lors de la compilation de la configuration :
MyDscConfiguration -ConfigurationData $MyData
Compilation d’une configuration avec des données de configuration à l’aide d’un fichier de données
Pour utiliser les données de configuration définies dans un fichier .psd1, vous devez transmettre le chemin d’accès et le nom de ce fichier en tant que valeur du paramètre ConfigurationData lors de la compilation de la configuration :
MyDscConfiguration -ConfigurationData .\MyData.psd1
Utilisation des variables ConfigurationData dans une configuration
DSC fournit les variables spéciales suivantes qui peuvent être utilisées dans un script de configuration :
- $AllNodes fait référence à l’ensemble des nœuds définis dans ConfigurationData. Vous pouvez filtrer la collection AllNodes à l’aide de . Où() et . ForEach().
- ConfigurationData fait référence à l’intégralité de la table de hachage qui est transmise en tant que paramètre lors de la compilation d’une configuration.
-
MyTypeName contient le nom de configuration dans lequel la variable est utilisée. Par exemple, dans la configuration
MyDscConfiguration, le$MyTypeNameaura une valeur deMyDscConfiguration. -
Node fait référence à une entrée particulière de la collection AllNodes après son filtrage à l’aide de . Où() ou . ForEach().
- Vous pouvez en savoir plus sur ces méthodes dans about_arrays
Utilisation de données non noeudiques
Comme nous l’avons vu dans les exemples précédents, la table de hachage ConfigurationData peut avoir une ou plusieurs clés en plus de la clé AllNodes requise. Dans les exemples de cette rubrique, nous n’avons utilisé qu’un seul nœud supplémentaire et l’avons NonNodeDatanommé . Cependant, vous pouvez définir n’importe quel nombre de clés supplémentaires et les nommer comme vous le souhaitez.
Pour obtenir un exemple d’utilisation de données non noeudales, consultez Séparation des données de configuration et d’environnement.