Ansible-playbook循环学习

循环语句简介

我们在编写playbook的时候,不可避免的要执行一些重复性操作,比如指安装软件包,批量创建用户,操作某个目录下的所有文件等。正如我们所说,ansible一门简单的自动化语言,所以流程控制循环语句这些编程语言的基本元素它同样都具备。

loop关键字说明
在playbook中使用循环,直接使用loop关键字即可。
示例1:
启动httpd和postfix服务
item调用loop中的变量

vim test.yml
---
- hosts: webtasks: - name: postfix and httpd are runningservice:name: "{{item}}"state: startedloop:- postfix- httpd
[root@tdm2 playbook]# ansible-playbook test1.yml PLAY [web] *************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************ok: [182.92.243.89]TASK [postfix and httpd are running] ***********************************************************************************changed: [182.92.243.89] => (item=postfix)
changed: [182.92.243.89] => (item=httpd)PLAY RECAP *************************************************************************************************************182.92.243.89              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

在这里插入图片描述

示例2:
也可以将loop循环的列表提前赋值给一个变量,然后在循环语句中调用

[root@tdm2 playbook]# cat test_service.yml 
test_service:- httpd- postfix
vim test.yml
---
- hosts: webvars_files:- test_service.ymltasks:- name: postfix and httpd are runningservice:name: "{{item}}"state: startedloop: "{{test_service}}"
[root@tdm2 playbook]# ansible-playbook test.yml PLAY [web] *************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************ok: [182.92.243.89]TASK [postfix and httpd are running] ***********************************************************************************changed: [182.92.243.89] => (item=httpd)
changed: [182.92.243.89] => (item=postfix)PLAY RECAP *************************************************************************************************************182.92.243.89              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

在这里插入图片描述

示例3

vim test.yml
---
- hosts: webtasks:- name: add www groupgroup:name: www- name: add  usersuser:name: "{{ item.name }}"state: presentgroups: "{{ item.groups }}"loop:- { name: 'test1', groups: 'wheel' }- { name: 'test2', groups: 'www' }
[root@tdm2 playbook]# ansible-playbook  test3.yml PLAY [web] *************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************ok: [182.92.243.89]TASK [add www group] ***************************************************************************************************ok: [182.92.243.89]TASK [add  users] ******************************************************************************************************ok: [182.92.243.89] => (item={u'name': u'test1', u'groups': u'wheel'})
ok: [182.92.243.89] => (item={u'name': u'test2', u'groups': u'www'})PLAY RECAP *************************************************************************************************************182.92.243.89              : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ceph入门到精通-LVS基础知识

LB集群: (Load Balancing)即负载均衡集群,其目的是为了提高访问的并发量及提升服务器的性能,其 实现方式分为硬件方式和软件方式。 硬件实现方式: 常用的有 F5公司的BIG-IP系列、A10公司的AX系列、Citrix公司的 NetScaler系列…

VisualStudio配置pybind11-Python调用C++方法

个人测试下来Debug生成的dll改pyd,py中import会报错gilstate->autoInterpreterState 如果遇到同样问题使用Release吧 目录 1.安装pybind11 1.pip: 2.github: 2.配置VS工程 2.在VC目录中的包含目录添加: 3.在VC目录中的库目录…

【Web系列二十四】使用JPA简化持久层接口开发

目录 环境配置 1、引入依赖 配置文件 代码编写 实体类创建 JPA常用注解 Service与ServiceImpl Service ServiceImpl Controller Dao 三种实现Dao功能方式 1.继承接口,使用默认接口实现 2.根据接口命名规则默认生成实现 3.自定义接口实现(类似MyBatis…

汽车类 ±0.25°C SPI 温度传感器,TMP126EDBVRQ1、TMP126EDCKRQ1、TMP127EDBVRQ1引脚配置图

一、概述 TMP126-Q1 是一款精度为 0.25C 的数字温度传感器 , 支持的环境温度范围为 -55C 至 175C 。TMP126-Q1 具 有 14 位 ( 有符号 ) 温度分辨率(0.03125C/LSB),并且可在 1.62V 至 5.5V 的电源电压范围内工作。TMP126-Q1 具有转…

同创永益入选首批“金融数字韧性与混沌工程实践试点机构”

8月16日下午,由北京国家金融科技认证中心、北京国家金融标准化研究院联合主办的“传递信任 服务发展”金融科技标准认证生态大会在太原成功举办。中国金融电子化集团有限公司党委书记、董事长周逢民,中国科学院院士冯登国,中国工商银行首席技…

Unity 粒子特效遮罩(ParticleMask)

1.需求: 游戏中粒子特效能实现非常好的效果,但是由于粒子特效是独立的系统,Unity自带的Mask普通的遮罩,遮不住粒子特效。 2.实现原理: 通过shader把超出范围的粒子纹理(Texture),改成透明颜色&#xff0…

Python安装指南(Windows版)

安装python环境 官网下载地址: Download Python | Python.org 我选择3.10.4版本,当然你也可以选择其他版本 安装 安装完成,需要验证是否安装成功。 打开CMD窗口,输入python命令,如果进入如下python窗口则安装成功&…

docker打包vue vite前端项目

打包vue vite 前端项目 1.打包时将测试删除 2.修改配置 3.打包项目 npm run build 显示成功(黄的也不知道是啥) 打包好的前端文件放入 4.配置 default.conf upstream wms-app {server 你自己的ip加端口 ;server 192.168.xx.xx:8080 ; } server { …

怎样将几个pdf合并?

在日常工作中,我们经常需要处理大量的PDF文件。有时候,我们需要将多个PDF文件合并成一个文件,以便于快速传输或方便查阅。虽然PDF文件本身不能进行编辑,但是借助专业的PDF编辑软件,我们可以轻松地实现将多个PDF文件合并…

推荐两款开源的绘制流程图软件

一句话导读 目前流程图绘制软件非常多,包括本机安装的、web端的都有,如Visio、Graphviz、processOn等等。但是几乎都是收费的。本文给大家介绍两款优秀的开源免费的流程图绘制软件。 目录 一句话导读 一、draw.io 二、Meta2d.js ​1.为什么使用 2.…

4、DVWA——文件包含

文章目录 一、文件包含概述二、low2.1 源码分析2.2 通关分析 三、medium3.1 源码分析3.2 通关思路 四、high4.1 源码分析4.2 通关思路 五、impossible 一、文件包含概述 文件包含是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(i…

Java“牵手”京东商品详情数据,京东API接口申请指南

京东平台商品详情接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取京东商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品详情接口API是一种用于获取电商平台上商品详情数据的接口,通过…

JVM调优指令参数

常用命令查找文档站点:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html -XX:PrintFlagsInitial 输出所有参数的名称和默认值,默认不包括Diagnostic和Experimental的参数。可以配合 -XX:UnlockDiagnosticVMOptions和-XX:UnlockEx…

【Locomotor运动模块】抓取:按朝向抓取(Orientation Handler)案例

文章目录 案例原理 案例 左右手柄抓宝剑时,宝剑的朝向不同 L35 一个手柄对应一个抓取点 原理 1、左右手柄分别抓取的是宝剑上的不同抓取点——GenericOrientation Handle通用朝向把手 它是我们设置“按朝向抓取”(Orientation Handler)时&…

项目一:基于YOLOv7的输电线路销钉缺失检测项目

1. YOLOv7模型介绍 YOLOv7是目标检测算法YOLO(You Only Look Once)的第七个版本,也是目前较流行的YOLO算法版本之一。 YOLOv8主要结构: 1. Backbone网络:采用CSPDarknet53作为主干网络,在不增加参数数量…

【牛客网题目】合并两个排序的链表

目录 描述 题目分析 描述 输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。 数据范围:0≤n≤1000,1000≤节点值≤1000 要求:空间复杂度 O(1),时间复杂…

自然语言处理的多行业应用

在我们小时候,甚至是我们会走路或说话之前,就已经在察觉周围发出的声音了。我们倾听其他人发出的声响和声音。我们将声音组合成有意义的词语,例如“母亲”和“门”,并学习解读周围人的面部表情,以加深我们对词组的理解…

现浇钢筋混泥土楼板施工岗前安全VR实训更安全高效

建筑行业天天与钢筋混凝土砼在,安全施工便成了企业发展的头等大事。 当今社会,人人都奉行生命无价,安全至上。可工地安全事故频繁发生,吞噬掉多少宝贵生命。破坏了多小个家庭?痛定死痛,为了提高施工人员的安全意识。 …

密度图及山脊图绘图基础

文章目录 3 种绘制密度图方法对比多组数据、同一个核函数渐变颜色填充“山脊”图同一坐标系中多个密度图的绘制 Seaborn 的 kdeplot() 函数是 Python 中绘制密度图的方式之一,Matplotlib 在现阶段则没有具体的绘制密度图的函数,一般是结合 Scipy 库中的 …

使用多进程的方式改写聊天程序(有名管道)

目录 1、思路2 、步骤 1、思路 2 、步骤 步骤1&#xff1a;创建两个管道 makefifo fifo1 fifo2步骤2&#xff1a;编写talkA.c文件 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<sys/stat.h> #in…