- 本书赞誉
- 前言
- 第一部分 基础篇
- 第1章 系统基础信息模块详解
- 第2章 业务服务监控详解
- 第3章 定制业务质量报表详解
- 第4章 Python 与系统安全
- 第二部分 高级篇
- 第5章 系统批量运维管理器 pexpect 详解
- 第6章 系统批量运维管理器 paramiko 详解
- 第7章 系统批量运维管理器Fabric详解
- 第8章 从零开发一个轻量级 WebServer
- 第9章 集中化管理平台 Ansible 详解
- 第10章 集中化管理平台 Saltstack 详解
- 第11章 统一网络控制器 Func 详解
- 第12章 Python 大数据应用详解
- 第三部分 案例篇
- 第13章 从零开始打造 B/S 自动化运维平台
- 第14章 打造 Linux 系统安全审计功能
- 第15章 构建分布式质量监控平台
- 第16章 构建桌面版 C/S 自动化运维平台
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
9.11 循环
通常一个任务会做很多事情,如创建大量的用户、安装很多包,或重复轮询特定的步骤,直到某种结果条件为止,Ansible为我们提供了此支持。下面是一个简单的示例:
- name: add several users user: name={{ item }} state=present groups=wheel with_items: - testuser1 - testuser2
这个示例实现了一个批量创建系统用户的功能,with_items会自动循环执行上面的语句“user:name={{item}}state=present groups=wheel”,循环的次数为with_items的元素个数,这里有2个元素,分别为testuser1、testuser2,会分别替换{{item}}项。这个示例与下面的示例是等价的:
- name: add user testuser1 user: name=testuser1 state=present groups=wheel - name: add user testuser2 user: name=testuser2 state=present groups=wheel
当然,元素也支持字典的形式,如下:
- name: add several users user: name={{ item.name }} state=present groups={{ item.groups }} with_items: - { name: 'testuser1', groups: 'wheel' } - { name: 'testuser2', groups: 'root' }
循环也支持列表(List)的形式,不过是通过with_flattened语句来实现的,例如:
---- # file: roles/foo/vars/main.yml packages_base: - [ 'foo-package', 'bar-package' ] packages_apps: - [ ['one-package', 'two-package' ]] - [ ['red-package'], ['blue-package']]
以上定义了两个列表变量,分别是需要安装的软件包名,以便后面进行如下引用:
- name: flattened loop demo yum: name={{ item }} state=installed with_flattened: - packages_base - packages_apps
通过使用with_flattened语句循环引用定义好的列表变量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论