Я пытаюсь зашифровать 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, есть предложения, как с этим справиться?