Ansible:如何用随机密码填充字典值?

Ansible: How to fill dict value with random passwords?

给定这本词典:

  passes:
    sql_x:
      password:
    sql_y:
      password:

我想为 passes 字典中的任意键创建随机密码。

如何遍历字典中的键并使用随机密码填充 password 值?

我可以用列表来完成,但我需要使用字典。

像这样:

- name: create passwords
  set_fact: "{{ item.value.password}}": "{{ lookup('password', '/dev/null', seed=inventory_hostname) }}"
  loop: "{{ lookup('dict', passes) }}"

上面的代码当然不起作用,只是为了清楚我正在努力实现的目标。

感谢任何提示。

你循环 dict2items

- name: "make this working"
  hosts: localhost

  vars: 
    passes:
      sql_x:
        password:
      sql_y:
        password:

  tasks:
    - name: Debug
      set_fact:
        passes: "{{ passes  | combine ({item.key: {'password': password}})  }}"        
      loop: "{{ passes | dict2items }}"
      vars: 
        password: "{{ lookup('password', '/dev/null') }}"

    - name: display
      debug:
        msg: "{{ passes }}"

结果:

ok: [localhost] => {
    "msg": {
        "sql_x": {
            "password": "kcOqz_mbIiiT0Wo_2Qox"
        },
        "sql_y": {
            "password": "TMN_nKbnAEIzI5w-8Of."
        }
    }
}