尽管添加了键/值对,但字典变量未定义

时间:2018-09-23 15:58:58

标签: ansible

此刻,我面临的问题是,我必须在远程主机上执行脚本,并将成对的主机名和(生成的)密码收集到字典中,以便我可以在另一个主机上遍历它们。 目前,我编写了以下文件:

库存-hosts.ini

[testserver]
192.168.1.100

[nodes]
k8s-2
k8s-3
k8s-4

Playbook-site.yml

- hosts: testserver
  remote_user: jdoe
  roles:
    - password

组变量:group_vars / testserver.yml

certs: {}

密码角色变量定义:role / password / vars / main.yml

  pwd: "{{ lookup('password', '/dev/null length=10 chars=ascii_letters,digits') }}"

任务角色:角色/密码/任务/main.yml

- name: Generate Passwords
  include_tasks: gen_passwords.yml hname={{ item }}
  with_items: "{{ groups['nodes'] }}"

- name: debug output
  debug:
    var: "{{ certs }}"

任务角色:角色/密码/任务/en_passwords.yml

- name: Generate Certificates
  command: /home/dsteffen/genCerts.sh "{{pwd}}"

  name: Write Host and pwd to dict
  set_facts:
    certs: "{{ certs | combine( '{{hname}}':  '{{pwd}}')  }}"

我希望类似

{'k8-s2': '9l2bjfm','k8s-3': 'l2a4jfl', 'k8s-4': 'l25a9vsm'}

从role / password / main.yml中的调试中获取,但我却得到了:

"<type 'dict'>": "VARIABLE IS NOT DEFINED!"

也许我只需要放松身心并享受周末的余下时间,明天我就会明白问题所在,但是到现在为止,也许有人可以看看我的问题并给我提示我做错了什么? 最好的祝福 丹

0 个答案:

没有答案