如何从 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) }}
已解决问题,现在可以使用了。
希望遇到类似问题的人觉得这有用。
干杯!
希望有人能帮助我。
我已将 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
但是,当我 运行 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) }}
已解决问题,现在可以使用了。
希望遇到类似问题的人觉得这有用。
干杯!