一、循环
在ansible2.5之前,大多数人使”with_XXX”类型的关键字来操作循环,但是从2.6版本开始,官方推荐是loop关键字代替” with_XXX”。
ansible中的循环都是借助迭代来实现的。基本都是以"with_"开头。以下是常见的几种循环。
1.1、with_items迭代列表
示例一:
创建多个目录及拷贝多个文件,如下图所示:
示例二:
添加多个用户,并将用户加入不同的组内,如下图所示:
1.2、with_nested嵌套迭代
嵌套迭代是指多次迭代列表项。例如:
示例一:创建多个目录
说明:item.0的值有两个,分别为age1、age2,item.1的值有三个,分别为boy1、boy2、boy3。
执行结果,如下图所示:
1.3、with_dict迭代字典项
使用"with_dict"可以迭代字典项。迭代时,使用"item.key"表示字典的key,"item.value"表示字典的值。
示例一:
执行结果,如下图所示:
1.4、with_fileglob迭代文件
例如,拷贝一堆用通配符匹配出来的文件到各远程主机上。
示例一:
执行结果,如下图所示:
说明:通配符无法匹配"/",因此无法递归到子目录中,也就无法迭代子目录中的文件。
1.5、with_lines迭代行
with_lines很好用,可以将命令行的输出结果按行迭代。例如,find一堆文件出来,copy走。
示例一:
执行结果,如下图所示:
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》