在proxy-minion支柱中使用GPG密码

时间:2019-03-27 13:14:36

标签: jinja2 salt-stack

我正在尝试使用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内容,还有任何建议如何处理?

0 个答案:

没有答案