木偶参数查找

我想知道是否有可能查找另一个Puppet资源的值,如下面的示例:

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

上面的语法不起作用,但这可能是因为我不太了解Ruby。

据我所知,这是不可能的。 原来,Puppet对variables使用了dynamic范围,但是从2.7.0开始不推荐使用。 在这里看到更多的信息,你应该做什么。

然而,在这个特定的情况下,我并不认为这是一个简单的范围界定。 事实上,我认为你应该使用虚拟资源或导出资源 。 实际上,它们都非常相似,除了导出的资源在主机间工作。

无论哪种方式,您都必须以与您想要做的完全不同的方式来构build您的代码,在我看来。 花一些时间看复杂的木偶模块,并了解他们如何去做他们所做的事情。

木偶有自己的语言,它不使用Ruby。 你可以定义一个资源如下:

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

并用以下方式调用它:

 add_user { tom: uid => 501 } 

阅读更多 …