Puppet 参数查找

Puppet 参数查找

我想知道是否可以查找另一个 Puppet 资源的值,类似以下示例:

define foo( $username ) {
    $home = User[$username].home
    ....
}

上述语法不起作用,但这可能是因为我对 Ruby 不够了解。

答案1

据我所知,这是不可能的。最初,Puppet 使用动态变量范围,但从 2.7.0 开始已弃用。查看更多信息这里你应该怎么做?

但是,在这个特定情况下,我认为简单的范围界定是不行的。事实上,我认为你应该使用虚拟资源或者出口资源。实际上,它们非常相似,只是导出的资源可以在主机间工作。

在我看来,无论哪种方式,您都必须以与您想要执行的操作截然不同的方式来构建代码。花一些时间研究复杂的 puppet 模块,并了解它们如何执行其功能。

答案2

Puppet 有自己的语言,它不使用 Ruby。您可以按如下方式定义资源:

define add_user ( $uid ) {
    $username = $title
    user { $username:
        home    => "/home/$username",
        shell   => "/bin/bash",
        uid     => $uid
    }
}

并使用以下命令调用它:

add_user { tom:
    uid      => 501
}

阅读更多...

相关内容