此刻,我面临的问题是,我必须在远程主机上执行脚本,并将成对的主机名和(生成的)密码收集到字典中,以便我可以在另一个主机上遍历它们。 目前,我编写了以下文件:
库存-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!"
也许我只需要放松身心并享受周末的余下时间,明天我就会明白问题所在,但是到现在为止,也许有人可以看看我的问题并给我提示我做错了什么? 最好的祝福 丹