0

我正在尝试debops.nullmailer在 Ansible (2.4) 上使用在我的主机上配置 nullmailer。我想在变量中加密密码,所以我希望使用保险库功能来加密秘密。我的剧本如下所示:

---
- name: My baseline
  hosts: all
  become: true
  vars:
    nullmailer__default_remotes:
     - port: "587"
       host: smtp.mailgun.org
       user: myusername
       pass: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          6430...63433
  roles:
    - role: debops.nullmailer

但是,应用它--ask-vault-pass会产生一个冗长的错误:

任务 [debops.nullmailer : 生成私有配置文件] *************************************** ****************************************************** ****************************************************** ************************************
致命的:[talkbot]:失败!=> {"failed": true, "msg": "[{u'dest': u'/etc/nullmailer/remotes', u'content': u\"{{lookup('template', 'lookup/ nullmailer__remotes.j2') | 来自_yaml | join('\n') }}\", u'group': u'mail', u'mode': u'0600', u'owner': u'mail'}]: 运行时出现未处理的异常查找插件“模板”。错误是原始消息:意外的模板类型错误发生在 ({% set nullmailer__tpl_remotes = [] %}\n{% for entry in (nullmailer__default_remotes + nullmailer__remotes) %}\n{% set nullmailer__tpl_entry = [] %}\n{% if entry is string %}\n{% set _ = nullmailer__tpl_remotes.append(entry) %}\n{% elif entry is mapping %}\n{% if entry.

取出pass变量会导致它成功工作,但显然不需要--pass=参数/etc/nullmailer/remotes

我对ansible很陌生-这里发生了什么?为什么它试图连接 astr和 an AnsibleVaultEncryptedUnicode?解密不行吗?

4

1 回答 1

1

解密不行吗?

append在 Jinja2 (Python)方法中使用 Ansible Vault 加密变量时,甚至没有尝试过。

也就是说,您很可能应该:

  • 使用 Ansible Vault 文件而不是变量,或者

  • 在 GitHub 上提交问题/ansible-nullmailer自己修复项目以处理这种情况。

于 2017-11-25T19:32:37.450 回答