Puppet 使用hiera创建变量名
我希望Puppet根据与环境关联的hiera文件创建不同的变量名。我想这样做是因为我想使用与特定网络接口关联的ip地址。理想情况下,网络接口将位于hiera文件中。通过这种方式,您可以将ip_地址变量名与hiera文件中定义的网络接口连接起来,这类似于Puppet 使用hiera创建变量名,puppet,hiera,Puppet,Hiera,我希望Puppet根据与环境关联的hiera文件创建不同的变量名。我想这样做是因为我想使用与特定网络接口关联的ip地址。理想情况下,网络接口将位于hiera文件中。通过这种方式,您可以将ip_地址变量名与hiera文件中定义的网络接口连接起来,这类似于 ::ipaddress{$network\u interface\u from\u hiera\u file} 这可能吗 现在我有一个如下的例子,但我认为有一个更好的实现。如果网络接口发生变化,我将不得不添加另一个案例 if $environme
::ipaddress{$network\u interface\u from\u hiera\u file}
这可能吗
现在我有一个如下的例子,但我认为有一个更好的实现。如果网络接口发生变化,我将不得不添加另一个案例
if $environment == 'production' {
$client_address = $::ipaddress_enp130s0f0
} else {
$client_address = $::ipaddress_eth2
}
听起来像是在Puppet中寻找
eval
,就像在shell和Perl其他语言中一样,据我所知,没有
我可能只会使用一个自定义事实,它总是返回我关心的IP地址。当然,然后您需要解决如何将自定义事实输出到您的车队的问题
另一种解决方案可能是使用Hiera的分层查找:
在hiera.yaml中:
:hierarchy:
- %{::node_environment}
- common
共同点。yaml:
---
myclass::client_address: "%{::ipaddress_eth2}"
在production.yaml中:
---
myclass::client_address: "%{::ipaddress_enp130s0f0}"
最后,请注意,您可以从Hiera中查找值,请参阅。这可能会有帮助