【python运维】ansible循环

版权声明:本文为CSDN博主「KEL-1」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kellyseeme/article/details/50619562

1、       前言

有可能在一个任务中,可能要做很多事情,例如创建多个用户,安装很多个包等,那么就有可能用到循环。

2、       标准循环

重复的任务可以用下面的方式:

- name: add several users

  user: name={{ item }} state=present groups=wheel

with_items:

     - testuser1

     - testuser2

如果你定义了一个变量文件创建了一个YAML的列表,或者是在var节中,那么可以使用以下的方式:

with_items: "{{ somelist }}"

上面的和下面的表示为相同的含义,如下:

- name: add user testuser1
  user: name=testuser1 state=present groups=wheel
- name: add user testuser2
  user: name=testuser2 state=present groups=wheel

Yum和apt模块在使用with_items的时候,可以减少包管理事务。

在遍历的各项中,可以不是简单的列表,如果是hash列表的时候,你可以使用子健,如下:

- name: add several users
  user: name={{ item.name }} state=present groups={{ item.groups }}
  with_items:
    - {name: 'testuser1',groups:'wheel'}
    - {name: 'testuser2',groups:'root'}

3、       嵌套循环

嵌套循环如下所示:

name: give users access to multiple databases
mysql_user: name={{ item[0] }} priv={{ item[1] }}.*:ALL append_privs=yes password=foo
with_nested:
  - ['alice','bob']
  - ['clientdb','employeedb','providerdb']

在上面的with_items中,也可以使用以前定义的变量,如下所示:

- name:here, 'users' contains the above list of employees
  mysql_user:name={{ item[0] }} priv={{ item[1] }}.*:ALL append_privs=yes password=foo
  with_nested:
    - "{{users}}"
    - ['clientdb','employeedb','providerdb']

4、       遍历hash

假设存在以下变量:

---
users:
  alice:
    name:Alice Appleworth
    telephone:123-456-7890
  bob:
    name:Bob Bananarama
    telephone:987-654-3210

转自:

https://blog.csdn.net/kellyseeme/article/details/50619562

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值