在Ansible中进行内部循环的最佳实践是使用with_ *关键字,该关键字使其更简单和可读。以下是一个示例,它将使用内部循环从csv文件中读取数据来更新用户的密码。
- name: Updating user passwords
hosts: server
tasks:
- name: get user data
with_csv: "/home/user/data.csv"
register: users
- name: update user passwords
shell: "echo {{ item.password }} | passwd {{ item.user }} --stdin"
with_items: "{{ users.list }}"
在这个示例中,使用with_csv从文件中读取用户数据,然后使用with_items循环遍历用户列表,并通过shell模块来更新他们的密码。这是使用内部循环的一种简单,利于维护的方法,还可以与其他模块一起使用。