如何在节点名称中使用“*”
How to use "*" in nodeName
假设我在我的 DSC 设置中有 2 个角色,我的设置中有可变数量的节点:
$configdata = @{
AllNodes = @(
@{
NodeName = "*Web*" # < problem lies here
# can be prodWeb## or devWeb##
Role = "IIS", "basic"
}
@{
NodeName = "*"
Role = "basic"
}
)
}
DSC 资源:
Configuration CFG
{
$AllNodes.where{ $_.Role.Contains("Basic") }.NodeName
{
...
}
$AllNodes.where{ $_.Role.Contains("IIS") }.NodeName
{
...
}
}
我能做到吗?
配置数据中的 AllNodes 条目是哈希表数组。每个哈希表都需要有一个键 NodeName。当表达式计算时,该值将被替换。所以像 web* 这样的节点名将不起作用
所以,基本上我所做的是:
Configuration Windows
{
node $allnodes.NodeName {
switch ($Node.Role) {
"Role1" {
...
}
"Role2" {
...
}
"Role3" {
...
}
}
}
}
我的配置数据:
@{ AllNodes = @( @{ NodeName = "web"; Role = "Role1", "Role2" } ) }
对于另一组节点:
@{ AllNodes = @( @{ NodeName = "other"; Role = "Role1", "Role3" } ) }
我正在使用 Azure Automation 将配置分配给节点,因此它不会检查节点名称,它只会应用配置在编译时具有的任何角色。
假设我在我的 DSC 设置中有 2 个角色,我的设置中有可变数量的节点:
$configdata = @{
AllNodes = @(
@{
NodeName = "*Web*" # < problem lies here
# can be prodWeb## or devWeb##
Role = "IIS", "basic"
}
@{
NodeName = "*"
Role = "basic"
}
)
}
DSC 资源:
Configuration CFG
{
$AllNodes.where{ $_.Role.Contains("Basic") }.NodeName
{
...
}
$AllNodes.where{ $_.Role.Contains("IIS") }.NodeName
{
...
}
}
我能做到吗?
配置数据中的 AllNodes 条目是哈希表数组。每个哈希表都需要有一个键 NodeName。当表达式计算时,该值将被替换。所以像 web* 这样的节点名将不起作用
所以,基本上我所做的是:
Configuration Windows
{
node $allnodes.NodeName {
switch ($Node.Role) {
"Role1" {
...
}
"Role2" {
...
}
"Role3" {
...
}
}
}
}
我的配置数据:
@{ AllNodes = @( @{ NodeName = "web"; Role = "Role1", "Role2" } ) }
对于另一组节点:
@{ AllNodes = @( @{ NodeName = "other"; Role = "Role1", "Role3" } ) }
我正在使用 Azure Automation 将配置分配给节点,因此它不会检查节点名称,它只会应用配置在编译时具有的任何角色。