我想创建SSL证书并尝试保护此操作。我正在使用Puppet 5.5.2和gem hiera-eyaml。
创建简单的清单
cat / etc / puppetlabs / code / environments / production / manifests / …
找到另一个解决方
它是查找和散列的问题。当我在hiera哈希中有多个行时,我必须指定它们 https://docs.puppet.com/puppet/4.5/function.html#lookup
所以我决定只使用'content'变量来查找
cat site.pp $filecrt = lookup('files') file { 'server.crt': ensure => present, path => '/etc/httpd/conf/server.crt', content => $filecrt, owner => 'root', group => 'root', mode => '0600', }
和希拉
--- files:'ENC[PKCS7{LOT_OF_STRING_SKIPPED}+uaCmcHgDAzsPD51soM+AIkIlv0ANpUXzBpwM3tqQ3ysFtz81S0xuVbKvslK]'
问题似乎是缩进了 common.yaml 不对 - 目前, file 将会 null 而不是哈希,这解释了错误消息。此外,应该调用该文件 common.eyaml ,否则 ENC 字符串不会被解密。尝试
common.yaml
file
null
common.eyaml
ENC
--- files: '/etc/httpd/conf/server.crt': ensure: present mode: '0600' owner: 'root' group: 'root' content: 'ENC[PKCS7{LOTS_OF_STRING_SKIPPED}UXzBpwM3tqQ3ysFtz81S0xuVbKvslK]'
有一个在线YAML解析器 http://yaml-online-parser.appspot.com/ 如果你想看到缩进产生的差异。