Как читать ключи SSH из хранилища и записывать в файл с солью - PullRequest
0 голосов
/ 08 октября 2019

Я надеюсь, что кто-нибудь может мне помочь ?.

Я хранил ключи 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

, который прекрасно работает, и я получаю ключ ssh, набрав salt-call pillar.items

Однако, когда я запускаю salt-call state.apply, я получаю следующее сообщение об ошибке

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

Что сводит меня с ума!

Я прочитал Многострочная строка на Github , что для написания многострочной строки с солью необходимо иметь | indent(4) (в качестве примера).

У кого-нибудь есть идеи? Буду очень признателен ?

1 Ответ

0 голосов
/ 11 октября 2019

Итак, через некоторое время я попытался изменить indent(4) на indent(5), но ошибка не исчезла. Поэтому я также попытался изменить content на

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

, что решило проблему и теперь работает.

Надеюсь, любой, у кого есть подобные проблемы, найдет это полезным.

Ура!

...