木偶包括和变量范围

时间:2012-10-17 14:14:05

标签: puppet

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

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中关于角色的文档进行了操作。

由于

1 个答案:

答案 0 :(得分:1)

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

  1. 本地范围
  2. 继承自基类
  3. 节点级别
  4. 顶级范围
  5. 顺便提一下,

    本地范围将适用于在类中 中定义的变量,而不是仅包含它的类。

    所以,在你的第一个例子中,我们看看:

    1. 是本地人吗?否。
    2. 是否在基类中?否。
    3. 是否在节点中?是。我们停下来。
    4. 在第二个例子中......

      1. 是本地人吗?否。
      2. 是否在基类中?否。
      3. 是否在节点中?否。
      4. 是否在最高范围内?没有。失败。
      5. 清除?