如何从 vault 中读取 ssh 密钥并使用 salt 写入文件

How to read ssh keys from vault and write to file with salt

希望有人能帮助我。

我已将 ssh 密钥作为秘密存储在保险库中。使用 saltstack 配置,我正在阅读带有支柱的秘密。像这样

  docker:
  {% set sshkey = salt['vault'].read_secret('super/secret/sshinfo', 'slackbot') %}
  sshkey: | 
    {{ sshkey | indent(4) }}

并且 init.sls 文件如下所示:

{% set docker_config = pillar['docker'] %}
    git-key:
      file.managed:
        - name: /root/.ssh/slack-bot
        - contents: {{ docker_config.sshkey }}
        - mode: 400
        - user: root

效果很好,我通过输入 salt-call pillar.items

获得了 ssh 密钥

但是,当我 运行 salt-call state.apply 我收到以下错误消息

local:
    Data failed to compile:
----------
    Rendering SLS 'base:docker' failed: could not find expected ':'

这让我抓狂!

我读到 Mulitline string on Github 要用 salt 编写多行代码,您需要 | indent(4)(作为示例)。

有人有什么想法吗?将不胜感激

于是,过了一段时间我尝试把indent(4)改成indent(5),但是还是报错了。所以我也尝试把content改成

  - contents: |
    {{ docker_config.sshkey | indent(5) }}

已解决问题,现在可以使用了。

希望遇到类似问题的人觉得这有用。

干杯!