【问题标题】:Puppet eYAML to FilePuppet eYAML 到文件
【发布时间】:2022-09-23 04:43:05
【问题描述】:

我有一个使用hiera-eyaml 加密并包含在我的配置中的文件:

mymodule::config_file: ENC[PKCS7,...]

现在我尝试将解码字符串的内容写入文件,如下所示:

class mymodule (
  String $config_file
) {
  file { \'/etc/agent_config.json\':
    content => $config_file,
    mode    => \'0644\',
  }
}

我希望输出文件是解密的字符串,但我却得到了加密的 eYAML。

我正在做的事在 puppet 中是不可能的吗?

编辑:

运行eyaml edit 时文件看起来正确

前任:

itglue::fireeye::fireeye_config: DEC(1)::PKCS7[{
  \"serverlist\": {
    \"servers\": [
      ...
    ]
  }
}]!

编辑2:

我们的hiera.yaml 是这样的:

---
:backends:
  - yaml
  - eyaml
:yaml:
  :datadir: /etc/puppet/hiera/hieradata
:eyaml:
  :datadir: /etc/puppet/hiera/hieradata
  :pkcs7_private_key: /var/lib/puppet/keys/private_key.pkcs7.pem
  :pkcs7_public_key:  /var/lib/puppet/keys/public_key.pkcs7.pem
:hierarchy:
  - secure
  - \"%{::clientcert}\"
  - \"node_role/%{::node_role}\"
  - \"env/%{::environment}\"
  - \"node_types/%{nodetype}\"
  - global
:logger: console
  • hiera 配置是否包含解密设置?
  • @MattSchuchard 您能否更具体地说明解密设置是什么?我启用了 eyaml 作为后端,并且 eyaml 配置指向正确的公钥和私钥。
  • 如果您未在 puppet 服务器上配置 hiera-eyaml,则它无法解密您的秘密。在 puppet 服务器上配置 hiera 的示例可以在 hiera-eyaml 存储库中找到:github.com/voxpupuli/hiera-eyaml#hiera
  • 在文件内容参数中使用解密值应该没有问题。不确定问题出在哪里。但我要强调的是,使用eyaml edit 成功解密并不一定表明hiera.yaml 中的eyaml 配置是正确的。
  • 您可以在这里发布您的hiera.yaml 文件吗?我以前曾见过类似的问题,其中 yaml 部分位于 hiera.yaml 文件中的 eyaml 部分之前,因此在 yaml 搜索期间而不是在 eyaml 搜索中找到了密钥。避免这种情况的方法之一是为秘密搜索提供完全独立的路径,如github.com/voxpupuli/hiera-eyaml#with-hiera-5 所示。

标签: puppet


【解决方案1】:

我没有带有 hiera 版本 3 的系统来测试它,所以它完全是在黑暗中刺伤,但尝试交换后端的顺序,所以

:backends:
  - yaml
  - eyaml

变成

:backends:
  - eyaml
  - yaml

如果这不起作用,我建议将您的秘密数据存储在不同的位置,所以有

/etc/puppet/hiera/hieradata

为您的 yaml 和

/etc/puppet/hiera/hierasecretdata

对于秘密,这样 yaml 搜索将永远不会在可以找到密钥匹配的 eyaml 文件中查找。

【讨论】:

    猜你喜欢
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    相关资源
    最近更新 更多