ansible之playbook循环(loop)

自作多情 提交于 2020-01-30 22:41:04

当有需要重复性执行的任务时,可以使用迭代机制。其使用格式为将需要迭代的内容定义为item变量引用,并通过loop语句指明迭代的元素列表即可。loop的值是python list数据结构,每个task会循环读取list的值,然后后key的名称是item,list里面也支持python字典。

例子一:安装多个软件
 

tasks:
 
  - name: "Install Packages"
 
    yum: name={{ item }}  state=latest
 
    loop:
 
      - httpd
 
      - mysql-server
 
      - php
例子二:批量创建多个用户。(with_items)

- hosts: slave
  remote_user: suixiaofeng
  sudo: yes
  
  tasks:
    - name: "add user"
      user: name={{ item.name }} state=present groups={{ item.groups }}
      loop:
        - {name: "test5", groups: "tom"}
        - {name: "test6", groups: "tom"}
其中引用变量时前缀item变量是固定的,而item后跟的键名就是在loop中定义的字典键名。
 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!