我目前正试图移动我们的木偶设置,以进一步使用Hiera。 关于这一点,我想用Hiera创build用户,但是在层次结构中移动时如何做到这一点,存在一些问题。
这个场景是我想要一个包含在每个安装中的基本用户。 另外,我有时需要为一些不同的节点子集添加一些特定的用户,可能是某些数据中心或某些节点特有的。
所以我想了下面的设置:
hiera.yaml:
:hierarchy: - "nodes/%{::trusted.certname}" - "datacenter/${::datacenter}" - "common"
users.pp:
class profile::users { $user_accounts = hiera('user_accounts') create_resources(user, $user_accounts) }
和common.yaml:
user_accounts: bob: comment: "Bob" managehome: true
然后上升到层次结构。 我看到的主要问题是:
managehome: true
,而不是每次都明确地写入。 不过,我可能想要禁用它。 user_accounts
,它会覆盖来自common.yaml的user_accounts
散列,所以我需要复制条目。 我偶然发现了Hiera的深度合并 ,但不知道这是实际使用还是最佳实践。 此外,它不会解决第一个问题,我需要在merge_behavior
中设置merge_behavior,我想避免。 那么,有没有人有一个洞察用户pipe理是如何很好地完成与木偶? 谢谢 :)
在types定义中为每个用户实现默认属性:
define user($managehome = true) { ... }
是的,你需要使用合并,而不是在hiera数据中指定它,使用hiera_array
函数来查找你想要的数据。
SSH密钥只是数据集中的另一个属性,您的user
types应在系统上正确设置。