定义在其他类中继承的init.pp中使用的puppet属性

时间:2014-05-21 13:00:36

标签: puppet

我想强制其他类的内容使用单个定义,而不是在每个类中重复相同的代码,这样做的正确方法是什么?例如(这是伪代码,所以我对语法表示道歉)......

class example::code1 (
   $my_password = 'password',
)

class example::code2 (
   $my_password = 'password',
)

我想要的是只有一个包含my_password的init.pp文件,该文件将被所有其他类继承。如果可以的话,我应该在现有的课程中加入什么?如果我在init.pp中定义它,那么在其他类中使用时会覆盖这些值,还是需要以某种方式引用init.pp文件?如果这是一个愚蠢的问题我很抱歉,我对木偶很新。

1 个答案:

答案 0 :(得分:0)

欢迎来到Puppet和SO。

有多种方法可以为节点提供数据。

  1. 如果您使用诸如Puppet Dashboard之类的ENC,则可以在那里指定值。
  2. Hiera是推荐的分配数据的方式。
  3. 您可以将变量赋值放在任何类之外的全局范围内。
  4. 您可以包含一个类并使用其中声明的值
  5. e.g。

    class config {
      $password = 'foo'
    }
    

    并像

    一样使用它
    class something {
      include config
      $pw = $config::password
    }
    

    可能还有其他选择。你应该先看看Hiera