gpt4 book ai didi

puppet - 如何避免 hiera 数据中出现 "write everything twice"?

转载 作者:行者123 更新时间:2023-12-02 05:45:19 26 4
gpt4 key购买 nike

有更好的方法来格式化我的 hiera 数据吗?我想避免“将所有内容都写两次”的问题。

这是我现在拥有的:

[root@puppet-el7-001 ~]# cat example.yaml 
---
controller_ips:
- 10.0.0.51
- 10.0.0.52
- 10.0.0.53
controller::horizon_cache_server_ip:
- 10.0.0.51:11211
- 10.0.0.52:11211
- 10.0.0.53:11211

我想知道 hiera 中是否有可用的功能,类似于 Perl 的 map 功能。如果是这样,那么我可以做类似的事情:

controller::horizon_cache_server_ip: "%{hiera_map( {"$_:11211"}, %{hiera('controller_ips')})}"

谢谢

最佳答案

这取决于您使用的 puppet 版本。我是puppet 3.x,你可以执行以下操作:

common::test::var1: a
common::test::var2: b

common::test::variable:
- "%{hiera('common::test::var1')}"
- "%{hiera('common::test::var2')}"

common::test::variable2:
- "%{hiera('common::test::var1')}:1"
- "%{hiera('common::test::var2')}:2"

在 puppet 4.0 中,您可以尝试使用 zip 的组合, hash来自 stdlib 的函数,带有内置函数 map 。像这样的东西:

$array3 = zip($array1, $array2)
$my_hash = hash($array3)
$my_hash.map |$key,$val|{ "${key}:${val}" }

关于puppet - 如何避免 hiera 数据中出现 "write everything twice"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30084576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com