2017-06-17 47 views
0

我使用Hiera设置我的Puppet代码,以便如果在Hiera中找不到值,则会为其分配默认值。我没有得到预期的结果,想知道别人是怎么做的:如何设置默认的hiera查找值

lookup(<NAME>, [<VALUE TYPE>], [<MERGE BEHAVIOR>], [<DEFAULT VALUE>]) 

我想我找到了答案 https://www.devco.net/archives/2016/03/13/the-puppet-4-lookup-function.php ,会尝试很快

lookup({"name" => "some::thing", "default_value" => "default"}) 
+0

此外,如果您使用的是经典'hiera'函数,那么它们的最后一个参数将是默认值。 –

+0

这是否意味着,我不需要添加散列结构,而是简单地使用 lookup({“name”=>“some :: variable”,“default_value”}) – user1074593

回答

0

是为我工作是解决:

$myvar1 = lookup({ "name" => "myvar1", "default_value" => "default" }) 
0

一般来说,如果该值日志路径在hiera中声明。木偶清单将自动提取该值。如果在Hiera中找不到该值,则木偶代理将错误地显示未找到该值。

如果该值未在Hiera中声明,总是有一种方法可以在puppet manifest中声明该值。如果在Puppet Hiera中找不到该值,则会查找清单以查找傀儡值。

作为一个很好的做法,价值hiera声明和以及木偶清单。如果值Hiera没有找到,木偶将考虑变量出现在清单