循环这东西你早就懂的不是么
就像python里的for一样
在ansible中 使用loop关键字来实现迭代
简单循环
简单循环中一般使用loop关键字来开始循环
使用循环变量item来存储每个迭代过程中使用的值
举个例子 栗子啊
首先让我们拿出两个任务片段
- name: Postfix is running
service:
name: postfix
state: started
- name: dovceot is running
service:
name: postfix
state: started
这两个任务极其相似,这种时候我们可以使用循环
将两个任务写成一个循环
- name: postfix and povecot are running
service:
name: "{{item}}"
state: started
loop:
- psotfix
- dovecot
在这个循环中 item会逐一使用 loop中的值
我们也可以通过一个变量提供loop所使用的列表
vars:
mail_services:
- postfix
- dovecot
使用该变量
tasks:
- name: postfix and dovecot are running
service:
name: "{{ item }}"
state: started
loop: "{{ mail_services }}"
循环散列或者字典列表
也就是说loop这玩意能循环的不只是列表
还可以是散列或者字典
每个散列或字典具有两个键,及name和groups
在使用循环时,item循环变量中每个键的值可以
通过 item.name 和 item.groups 变量来检索
- name: users exist and are in the correct groups
user:
name: "{{ item.name }}"
state: present
groups: "{{ item.group}}"
loop:
- name: jane
groups: wheel
- name: joe
groups: root
这里的loop两行为一组 每次循环调用一组
这里提一下较早样式的Ansible循环