我刚刚在我的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......]"
希拉解密不是发生在傀儡大师这边吗?
偶目录是在木偶大师上编译的。 然后,编译后的目录通过SSL连接与客户端共享(假设Puppet CA已签署来自客户端的SSL证书请求)。 然后,目录在客户身上实现。 编译阶段还涉及合并 Hiera 数据(如果使用 EYAML 后端,则首先解密)。 如果使用例如GPG加密,则使用Puppet Master上的GPG接收者文件来决定在解密过程中使用哪些密钥。 最终结果是客户端实际上不会解密 EYAML,这一切都是在 Puppet Master 上完成的。 唯一可以解密 EYAML 的客户端(至少在使用 GPG 的情况下)是 GPG 收件人文件中列出的那些客户端。 希望对您有所帮助!
看起来一起有多个问题,其中一个是密钥文件的权限。
$ 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-demonize 模式下运行傀儡大师有助于跟踪双方发生的事情。