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."
}
}
}
给定这本词典:
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."
}
}
}