1

我刚刚在我的 Puppet 3.8 开源环境中设置了 hiera-eyaml。

defaults.yaml
db_password: ENC[PKCS7,MXCGFDS......]

site.pp
$password=hiera(db_password)

如果我正在跑步:

puppet master --debug --compile funky_hostname.mydomain.com --environment=dev

我可以看到我的模板配置文件正在正确生成:

password="password123"

但是当我在实际节点(funky_hostname.mydomain.com)上运行它时,我得到了原始的加密字符串:

password="ENC[PKCS7,MXCGFDS......]"

Hiera解密不是在人偶大师那边发生吗?

4

2 回答 2

1

Puppet 目录是在 Puppet Master 上编译的。然后通过 SSL 连接与客户端共享编译后的目录(假设 Puppet CA 已签署来自客户端的 SSL 证书请求)。然后在客户端上实现目录。编译阶段还涉及合并Hiera 数据(如果使用 EYAML 后端,则首先解密)。如果使用例如 GPG 加密,则使用 Puppet Master 上的 GPG 收件人文件来决定在解密过程中使用哪些密钥。最终结果是客户端实际上并未解密 EYAML,这一切都在 Puppet Master 上完成。唯一可以解密 EYAML(至少在使用 GPG 的情况下)的客户端是 GPG 收件人文件中列出的那些客户端。希望有帮助!

于 2016-01-18T15:42:09.487 回答
0

看起来有多个问题在一起,其中之一是密钥文件的权限。

$ chown -R puppet:puppet /etc/puppet/secure/keys
enter code here$ chmod -R 0500 /etc/puppet/secure/keys
$ chmod 0400 /etc/puppet/secure/keys/*.pem
$ ls -lha /etc/puppet/secure/keys
-r-------- 1 puppet puppet 1.7K Sep 24 16:24 private_key.pkcs7.pem
-r-------- 1 puppet puppet 1.1K Sep 24 16:24 public_key.pkcs7.pem

使用 --debug --verbose 标志在 --no-deamonize 模式下运行 puppet master 有助于跟踪双方发生的情况。

于 2016-01-18T19:09:59.133 回答