我正在使用 Ansible 2.4
在剧本中,我从 Ansible 保险库文件中检索了一个秘密,并尝试使用docker_secret模块将此秘密作为一个群秘密注入:
- hosts: managers
become: yes
become_method: sudo
gather_facts: yes
tasks:
- name: Include secrets vars in task
include_vars: "{{ playbook_dir }}/vault/vault.yml"
name: secrets
- debug:
msg: "{{ secrets }}"
- name: Set Docker secrets in SWARM
docker_secret:
name: "secrets.properties"
data: "{{ secrets }}"
state: present
调试输出正确的值,但 docker_secret 作业正在崩溃,告诉我没有“秘密”属性。
PLAY [经理]
任务[收集事实] ************************************************ ************ 好的:[测试1]
任务[秘密] ************************************************ ******************* 好的:[test1]
任务[调试] ********************************************** ********************* 好的:[test1] => {“msg”:“ secrets.gitJenkinsPassword=MY_SECRET_PASSWORD ”}
任务 [在 SWARM 中设置 Docker 机密] ****************************************** *** 致命:[test1]:失败!=> {"changed": false, "failed": true, "module_stderr": "与 node1.mycompany.com 的共享连接已关闭。\r\n", "module_stdout": "回溯(最近一次通话):\ r\n 文件 \"/tmp/ansible_9JUi1H/ansible_module_docker_secret.py\",第 283 行,在 \r\n main()\r\n 文件 \"/tmp/ansible_9JUi1H/ansible_module_docker_secret.py\",第 278 行,在main\r\n SecretManager(client, results)()\r\n File \"/tmp/ansible_9JUi1H/ansible_module_docker_secret.py\",第 170 行, 调用中\r\n self.present()\r\n 文件 \"/tmp/ansible_9JUi1H/ansible_module_docker_secret.py\",第 209 行,当前\r\n secret = self.get_secret()\r\n 文件 \" /tmp/ansible_9JUi1H/ansible_module_docker_secret.py\",第 177 行,在 get_secret\r\n secrets = self.client.secrets(filters={'name': self.name})\r\nAttributeError: 'AnsibleDockerClient' object has没有属性 'secrets'\r\n", "msg": "MODULE FAILURE", "rc": 0} 重试,使用:--limit @/var/jenkins_home/workspace/deploy/ansible/playbooks/swarm。重试