2

有人可以向我解释为什么会这样:

node 'puppetagent'{
    $my_role="proxmoxnode"
    include role_proxmoxnode
}

class role_proxmoxnode {
    include sshdconf
}

这不会:

node 'puppetagent'{
    include role_proxmoxnode
}

class role_proxmoxnode {
    $my_role="proxmoxnode"
    include sshdconf
}

“工作”是指 sshdconf 模块设置的 sshd_config.erb 文件将按预期找到 $my_role="proxmoxnode" 。“不起作用”是指模板抱怨“找不到'my_role'的价值”我使用puppet 3.0。

我遵循了http://projects.puppetlabs.com/projects/1/wiki/Infrastructure_Design_Guidelines中关于角色的文档。

谢谢

4

1 回答 1

1

在木偶 3.0 中。在 4 个地方查找不合格的变量:

  1. 本地范围
  2. 继承自基类
  3. 节点级
  4. 顶级范围

顺便说一下,局部范围将适用类中定义的变量,而不是简单地包含它的类。

所以,在你的第一个例子中,我们去寻找:

  1. 是本地的吗?不。
  2. 它在基类中吗?不。
  3. 它在节点中吗?是的。我们停下来。

在第二个例子中......

  1. 是本地的吗?不。
  2. 它在基类中吗?不。
  3. 它在节点中吗?不。
  4. 是否在顶级范围内?不,失败。

清除?

于 2012-10-17T14:26:05.493 回答