我正在尝试使用GPG加密apikey,并将其用作我的proxy-minions的支柱。但是到目前为止,我还无法正常工作。
我的支柱文件夹中包含以下内容:
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
进行测试,则不会在proxy
下打印apikey(请注意passwd: None
):
fusion:
----------
key:
----------
apikey:
XXXXXXXX
proxy:
----------
driver:
ios
host:
127.0.0.1
passwd:
None
proxytype:
napalm
username:
cisco
如果有可能,关于如何在融合支柱的proxy
中获得apikey解密密钥和printet的任何建议?
我设法加载了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
我想是因为Jinja无法解密/渲染GPG内容,还有任何建议如何处理?