首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在nodeName中使用*

如何在nodeName中使用*
EN

Stack Overflow用户
提问于 2017-04-14 16:08:01
回答 2查看 1.1K关注 0票数 2

假设我在DSC设置中有两个角色,并且我的设置中有可变数量的节点:

代码语言:javascript
复制
$configdata = @{
    AllNodes = @(
        @{
            NodeName = "*Web*" # < problem lies here
                      # can be prodWeb## or devWeb##
            Role = "IIS", "basic"
        }
        @{
            NodeName = "*"
            Role = "basic"
        }
    )
}

DSC资源:

代码语言:javascript
复制
Configuration CFG
{   
    $AllNodes.where{ $_.Role.Contains("Basic") }.NodeName 
    {
    ...
    }

    $AllNodes.where{ $_.Role.Contains("IIS") }.NodeName 
    {
    ...
    }
}

我能做到吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-12 19:30:24

所以,基本上我所做的是:

代码语言:javascript
复制
Configuration Windows
{   
    node $allnodes.NodeName {
        switch ($Node.Role) {
            "Role1" {
                ...
            }
            "Role2" {
                ...
            }
            "Role3" {
                ...
            }
        }
    }
}

我的配置数据:

代码语言:javascript
复制
@{ AllNodes = @( @{ NodeName = "web"; Role = "Role1", "Role2" } ) }

对于另一组节点:

代码语言:javascript
复制
@{ AllNodes = @( @{ NodeName = "other"; Role = "Role1", "Role3" } ) }

我使用Azure自动化将配置分配给节点,因此它不检查节点名称,它只应用配置在编译时所扮演的任何角色。

票数 1
EN

Stack Overflow用户

发布于 2017-04-19 19:18:36

配置数据中的AllNodes条目是一个哈希表数组。每个哈希表都需要一个密钥NodeName。该值将在表达式计算时被替换。所以像web这样的名字是行不通的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43415205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档