我正在尝试将旧的 Puppet 3 基础设施更新到 Puppet 5。
我使用 Hiera 获取数据,后端是 NoSQL。我编写了自己的 ENC 以便从那里获取节点数据,效果很好。
但是,当我将变量放入 Hiera 中时,它们不会被插入。例如,假设我想要一个 Apache vhost 来监听主机的 fqdn:
"apache::vhost": {
"my-vhost": {
"servername": "%{fqdn}"
}
}
(为了切中要点,我缩减了内容)
当我在节点上运行 puppet 时,变量没有被替换,我ServerName %{fqdn}
在我的 Apache 配置中找到了。
有人已经遇到过这个问题吗?我不知道现在该怎么办……
非常感谢 !
此致
答案1
您应该能够使用"%{::fqdn}"
、"%{facts.fqdn}"
或之一"%{facts.networking.fqdn}"
。
您使用的是哪种 NoSQL 后端?我会使用 YAML 或 JSON 后端之一进行验证,以排除 NoSQL 后端。