我有一个变量,它是带有嵌套字典的字典列表,如下所示:
my_users:
- { name: "James Doe", user_id: "xman01", user_password: { clear_text: "password1", hash_md5: "", hash_sha512: "" } }
- { name: "John Dean", user_id: "xman02", user_password: { clear_text: "password2", hash_md5: "", hash_sha512: "" } }
- { name: "Jane Burn", user_id: "xman03", user_password: { clear_text: "password3", hash_md5: "", hash_sha512: "" } }
...
在执行剧本期间,我想遍历每个项目,为clear_text值生成md5和sha512散列,并将它们存储回数据结构本身中,换句话说,就像:
- name: update users data with password hashes
set_fact:
item.user_password.hash_md5 = "{{ item.user_password.clear_text | password_hash('md5') }}"
item.user_password.hash_sha512 = "{{ item.user_password.clear_text | password_hash('sha512') }}"
with_items: "{{ my_users }}"
我知道这在Ansible中是行不通的,因为语法错误,而且我尝试改编了很多类似的示例,但是没有运气。 有什么建议吗?
由于CentOS-5 / RHEL-5的兼容性限制,我处于ansible 2.3.x。