ansible剧本-循环
ansible剧本-循环
教程每周二、四、六更新
循环可以在一个任务中干很多事,比如创建一群用户,安装很多包,或者重复一个轮询步骤直到收到某个特定结果.
标准循环
在一个任务中创建多个文件:---
- hosts: com
tasks:
- name: touch some files
file: path=/data/{{ item }}
with_items:
- file1
- file2
- file3
- jasonfile
也可以创建多个用户:- name: add several users
user: name={{ item }} state=present groups=wheel
with_items:
- testuser1
- testuser2
也可以在变量文件中定义变量:# 变量文件中的形式:
somelist:
- testuser1
- testuser2
# 使用的时候:
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
小结:
with_items 就是用来定义一个列表。
itemitem变量是一个特殊的变量,用来获取with_items 列表中的元素。
课后实战:
-
使用with_items 来给远程主机安装三个软件包:vim、htop、sl
-
使用with_items 来给远程主机创建多个用户组:devops、product、hr
嵌套循环
循环也可以嵌套。例如,我们在创建用户的时候,希望在创建用户的同时把用户添加到某个特定的组里。这时候就需要用到嵌套循环。- name: add some users
user: name={{ item.name }} group={{ item.group }} state=present
with_items:
- { name: 'user1', group: 'group1' }
- { name: 'user2', group: 'group2' }
上面{{ item.name }}就是用来取列表元素的某个key的值,这是一种用法:item.key_name.
雷哥开通了抖音(云计算雷哥)和微信视频号,求关注!!!和大家一起学习 技术!
推荐阅读
《一站式教程之集群架构》:
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
Cloud研习社
为Linux云计算零基础同学服务,致力于打造一套完整的linux云计算教程。包括新手学习路线、linux、存储、集群架构以及Docker,K8S,DevOps等
公众号
收录于合集 #一站式教程
233个上一篇ansible剧本-变量的定义(2)下一篇ansible剧本-template中的for循环和if的使用(1)