Использование пароля GPG в столбце proxy-minion - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь зашифровать apikey с помощью GPG и использовать его для столбов моих прокси-миньонов. Но пока я не могу заставить его работать.

У меня в папке столбов есть следующее:

top.sls

base:
  fusion:
    - fusion
    - key

key.sls

#!yaml|gpg

key:
  apikey: |
    -----BEGIN PGP MESSAGE-----
    Version: GnuPG v2.0.22 (GNU/Linux)
    ...
    -----END PGP MESSAGE-----

fusion.sls:


{% set apikey = salt['pillar.get']('key:apikey') %}
proxy:
  proxytype: napalm
  driver: ios
  host: 127.0.0.1
  username: cisco
  passwd: {{apikey}}

Если я проверю его с помощью sudo salt fusion pillar.items, он не будет печатать apikey под proxy (Примечание passwd: None):

fusion:
    ----------
    key:
        ----------
        apikey:
            XXXXXXXX
    proxy:
        ----------
        driver:
            ios
        host:
            127.0.0.1
        passwd:
            None
        proxytype:
            napalm
        username:
            cisco

Любые предложения о том, как я могу получить дешифрование и печать apikey в пределах proxy в моем столбе синтеза, если это вообще возможно?

Обновление

Мне удалось загрузить apikey, но затем перейти к следующему вопросу. Я загружаю ключ через:

{% import_text "/etc/salt/configs/key.yaml" as configkey %}
{% set apikey = configkey %}

И я могу перечислить (sudo salt '*' pillar.items) это, если я просто сделаю:

proxy:
  key: {{apikey}}

Я должен использовать ключ, расшифрованный с помощью jinja, чтобы сделать вызов API следующим образом:

{% set urlbase = "https://someurl" %}
{% set url = urlbase~"/searchpasswords/?apikey="~apikey %}
{% set json = salt.http.query(url,verify_ssl=False) %}
{% set data = json.body|load_json %}

Но тогда я получаю следующую ошибку: mapping values are not allowed in this context

И я полагаю, это потому, что Джинджа не может расшифровать / воспроизвести материал GPG, есть предложения, как с этим справиться?

...