如何在AnsiblePlaybook中使用循环
来自菜鸟教程
在自动化服务器设置时,有时您需要使用不同的值重复执行相同的任务。 例如,您可能需要更改多个文件的权限,或创建多个用户。 为避免在 playbook 文件中多次重复该任务,最好使用循环。
在编程中,loop 允许您重复指令,通常直到满足某个条件。 Ansible 提供了不同的循环方法,loop
关键字是最推荐的长期兼容性选项。
以下示例在 /tmp
位置创建三个不同的文件。 它在使用三个不同值实现循环的任务中使用 file
模块。
在 ansible-practice
目录中创建一个名为 playbook-06.yml
的新文件:
nano ~/ansible-practice/playbook-06.yml
然后将以下行添加到新的剧本文件中:
~/ansible-practice/playbook-06.yml
--- - hosts: all tasks: - name: creates users files file: path: /tmp/ansible-{{ item }} state: touch loop: - sammy - erika - brian
完成后保存并关闭文件。
然后,使用与前面示例相同的连接参数运行 ansible-playbook
。 同样,我们使用了一个名为 inventory
的清单文件和一个名为 sammy
的用户,但您应该相应地更改这些值:
ansible-playbook -i inventory playbook-06.yml -u sammy
你会得到这样的输出,显示循环中使用的每个单独的项目值:
Output... TASK [creates users files] ****************************************************************************** changed: [203.0.113.10] => (item=sammy) changed: [203.0.113.10] => (item=erika) changed: [203.0.113.10] => (item=brian) ...
更多关于编写 Ansible playbook 时如何使用循环的详细信息,请参考【X102X】官方文档【X128X】。