Ansible Loops
一、简介
通常一个任务会做很多事情,如创建大量的用户,安装很多包,或重复的轮询特定的步骤,直到某种结果条件为止,Ansible为我们提供了此支持。下面是关于循环的一些语句。
with_items #标准循环
with_nested #嵌套循环
with_dict #字典循环(Looping over hashed)
with_file #循环文件
with_fileglob #通配符循环文件
with_together #循环映射
with_subelements #子元素循环
with_sequence #生成一系列的数字
with_random_choice #任意选择
#with_first_found #选择第一个找到的,不会用
with_lines #循环程序执行的输出信息with_items:`command_result`.`stdout_lines`
with_flattened #循环列表中的列表的item
二、实例
--- - hosts: local #with_item 和 with_nested 用法vars:Sta: falseUser: [ "Aheahe","yunzhonghe" ]tasks:- name: Standard Loopsdebug: msg="{{ item.name }},{{ item.fun }}"with_items: #生成标准循环- { name: Loops, fun: xx }- { name: Conditional, fun: yy }when: Sta- name: Nested Loopsdebug: msg= "name={{ item[0] }},priv={{ item[1] }}"with_nested: #嵌套循环- "{{ User }}" #这里的User 可以直接使用列表。- [ "Student","Engineer","Friends" ]
--- - hosts: local #with_dict 用法 # vars_files: # hash.ymlvars:users:alice:name: Alice Appleworthtelephone: 123-456-7890bob:name: Bob Bananaramatelephone: 987-654-3210tasks:- name: Print phone recordsdebug: msg="User item.key is item.value.name item.value.telephone "with_dict: users #循环列表可以查看输出信息。以获取结果
--- - hosts: local #with_file 与 with_fileglob 用法。vars:test_file: falsetasks:- name: test fileshell: echo {{ item }}with_file: #循环文件的内容- test #test文件里面为任意内容。- test1when: test_file- name: Test file Globshell: echo {{ item }}with_fileglob: #循环文件的通配符。- /home/aheahe/playbook/*
--- - hosts: local #with_together用法vars:alpha: [ 'a', 'b', 'c', 'd' ]numbers: [ 1, 2, 3, 4 ]test: [ 'A', 'B', 'C', 'D' ]tasks:- debug: msg="{{ item.0 }} and {{ item.1 }} and {{ item.2 }}"with_together: #循环映射信息- "`alpha`"- "`numbers`"- "`test`"
--- - hosts: local #with_subelement用法vars:users:- name: aliceauthorized:- /tmp/alice/onekey.pub- /tmp/alice/twokey.pubmysql:password: mysql-passwordhosts:- "%"- "127.0.0.1"- "::1"- "localhost"privs:- "*.*:SELECT"- "DB1.*:ALL"- name: bobauthorized:- /tmp/bob/id_rsa.pubmysql:password: other-mysql-passwordhosts:- "db1"privs:- "*.*:SELECT"- "DB2.*:ALL"tasks:- name: Test1shell: echo "name={{ item.name }}"with_items: "`users`"- name: Test2shell: echo "User={{ item.0.name }},key={{ item.1 }}"with_subelements: #循环子元素。- users- authorized
--- - hosts: localtasks:- name: Learn loop sequencedebug: msg={{ item }}with_sequence: start=0 end=6 stride=2
--- - hosts: local # with_random_choice 用法tasks:- name: Learn Randomdebug: msg={{ item }}with_random_choice:- "go through the door"- "drink from the goblet"- "press the red button"- "do nothing"
--- - hosts: local #with_lines 用法tasks:- name: test resultshell: echo {{ item }}with_lines: /bin/df -Th- name: flattened loop demo #with_flatted用法yum: name={{ item }} state=installedwith_flattened:- "`packages_base`"- "`packages_apps`"
---- # file: roles/foo/vars/main.yml packages_base:- [ 'foo-package', 'bar-package' ] packages_apps:- [ ['one-package', 'two-package' ]]- [ ['red-package'], ['blue-package']]
转载于:https://blog.51cto.com/amyhehe/1715445
Ansible Loops相关推荐
- ansible入门_Ansible入门
ansible入门 The software development industry has grown over the years, from simple software running i ...
- Ansible 入门指南 - ansible-playbook 命令
上篇文章Ansible 入门指南 - 安装及 Ad-Hoc 命令使用介绍的额是 Ad-Hoc 命令方式,本文将介绍 Playbook 方式. Playbook 译为「剧本」,觉得还挺恰当的. play ...
- ansible-playbook之循环(Loops)
ansible-playbook的循环(Loops) 1.标准的Loops:也是最常用的一种循环 例:当需要安装10个软件包时,不用写10次任务,只需要写一次然后进行循环即可 #注:已经安装的软件系统 ...
- Ansible自动化运维笔记3(playbook)
1.基本语法 playbook文件格式为yaml语法.示例如下: 1.1 nginx.yaml --- - hosts: alltasks:- name: Install Nginx Packagey ...
- Ansible 使用变量
使用变量 虽然自动化的存在是为了更容易使事情可重复,但并非所有系统都完全相同.有些可能需要与其他配置略有不同的配置.在某些情况下,观察到的一个系统的行为或状态可能会影响您配置其他系统的方式.例如,您可 ...
- CHAPTER 5 Ansible playbook(二)
ansible-playbook 5.1 任务控制 5.1.1 Ansible任务控制基本介绍 5.1.2 条件判断(when) 5.1.3 循环控制(with_items) 5.1.3.1 标准lo ...
- Ansible免密码登陆
配置Linux主机无密码访问 生成秘钥 ssh-keygen -t rsaGenerating public/private rsa key pair. Enter file in which to ...
- centos7+ansible自动化工具使用
一.基础介绍 ========================================================================================== 1. ...
- 一星期没完成Ansible任务
这个星期,前4天,我在看Nginx,没有深入Ansible. 这几天我有思考做Ansible的哪个方面,现在我用Ansible可以用,但是没有生产环境,我对基础部分热情不是特别大,应该是基础部分大家在 ...
- 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...
最新文章
- c语言函数与编译预处理教学视频,C语言课程第6章 函数及编译预处理.ppt
- a=(1,)b=(1),c=(“1”) 分别是什么类型的数据
- 【Linux】FrameBuffer操作入门
- python函数的传参要求_python中函数传参详解
- (1)hibenrate入门例子
- BFS迷宫问题模型(具体模拟过程见《啊哈算法》)
- 【sdut 1751】 区间覆盖问题
- Java教程:Java JDK环境变量配置
- ubuntu 1404部署tomcat7
- 【python基础学习必备小手册(适合新手)详细教程】
- 用一套键盘鼠标同时控制两台电脑
- 计算机在数据处理方面的论文,数据挖掘论文3000字范文参考(2)
- 1、黑塞矩阵Hessian matrix
- 使用Bochs写Hello world
- android View的生命周期
- java 实现点击率_redis实现点击量/浏览量
- Interpreter(解释器)
- 使用cmd打开任意软件
- JavaScript中md5加密基础使用方法
- 大学毕业学技术学什么好
热门文章
- 祝各位MM们节日快乐!
- 爬虫—分析Ajax爬取今日头条图片
- SpringBoot整合Redis及Redis工具类撰写
- js通过codeURL画二维码
- 前台传来的文件通过流stream转成bytes 再把文件写入数据库 类型是blob
- length()函数_掌握Kotlin中的标准库函数: run、with、let、also和apply(转)
- 每天学点Python Cookbook(三)
- ES5 对象的扩展(Object.preventExtensions)、密封(Object.seal)和冻结(Object.freeze)
- MySQL更新死锁问题
- Spring Mvc前台访问报404