ansible register 之用法
ansible register 这个功能非常有用。当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register 。
举个例子:
我们需要判断sda6是否存在,如果存在了就执行一些相应的脚本,则可以为该判断注册一个register变量,并用它来判断是否存在,存在返回 succeeded, 失败就是 failed.
- name: Create a register to represent the status if the /dev/sda6 exsitedshell: df -h | grep sda6register: dev_sda6_resultignore_errors: Truetags: docker- name: Copy docker-thinpool.sh to all hostscopy: src=docker-thinpool.sh dest=/usr/bin/docker-thinpool mode=0755when: dev_sda6_result | succeededtags: docker
注意:
1、register变量的命名不能用 -
中横线,比如dev-sda6_result
,则会被解析成sda6_result
,dev
会被丢掉,所以不要用-
2、ignore_errors
这个关键字很重要,一定要配合设置成True
,否则如果命令执行不成功,即 echo $?
不为0,则在其语句后面的ansible语句不会被执行,导致程序中止。
那我如何去做多种条件的判断呢,比如我还需要判断是否有 docker-thinpool 存在,则还需要为它注册一个变量。
- name: Create a register to represent the status if the docker-thinpool exsitedshell: lsblk | grep docker-thinpoolregister: docker_thinpool_resultignore_errors: Truetags: docker
然后在when
中用and
或者or
来组合判断。比如当两种条件之一成功,都对docker配置文件进行修改:
- name: Special config for docker-thinpool devicemapperlineinfile: dest=/etc/sysconfig/docker regexp=^OPTIONS= line=OPTIONS='--selinux-enabled=false --insecure-registry=10.213.42.254:10500 --log-level=warn --storage-opt dm.basesize={{ dm_base_size }} --storage-opt dm.loopdatasize={{ dm_loop_data_size }} --storage-opt dm.loopmetadatasize={{ dm_loop_meta_size }} --storage-driver=devicemapper --storage-opt=dm.thinpooldev=/dev/mapper/docker-thinpool --storage-opt=dm.use_deferred_removal=true --storage-opt=dm.use_deferred_deletion=true'when: (dev_sda6_result | succeeded) or (docker_thinpool_result | succeeded)tags: docker
ansible register 之用法相关推荐
- ansible register 用法
ansible register 用法 ansible register 这个功能非常有用.当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般 ...
- ansible register when: result | succeeded when: item.rc != 0
ansible register 这个功能非常有用.当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register . 举个例子: ...
- ansible中serial用法
实验环境:ansible2.7 1.默认情况下,Ansible将尝试并行管理playbook中所有的机器.对于滚动更新用例,可以使用serial关键字定义Ansible一次应管理多少主机: - nam ...
- 1.11学习配置管理工具 Ansible 的基本用法,包括主机管理、Playbook 编写教程
目录 简介 主机管理 手动管理 利用 Ansible 管理主机 Playbook 编写 基本结构 常用模块 变量管理 简介 Ansible 是一种基于 Python 编写的配置管理工具,它能够让运维人 ...
- ansible之block用法
block 模块 : 将多个任务组合成一个块,并且可以对这个块做条件判断,以及当块里面的任务失败时,进行失败处理. --- - hosts: hadoop remote_user: roo ...
- Ansible registers用法
Ansible registers用来捕捉一个task的输出作为一个变量.在Ansible的其它地方我们可以使用该变量,例如logging等. 这种变量包含了这个任务的返回值.当我们使用不同的模块时, ...
- Linux自学笔记——Ansible
运维工作:系统安装(物理机.虚拟机)à 程序包安装.配置.服务启动 à 批量操作 à 程序发布 à 监控 OS Provisioning: 物理机:PXE.Cobbler 虚拟机:Image Temp ...
- Ansible基础和常用模块(一)
文章目录 1. Ansible 概述 2. Ansible 安装配置 3. Ansible Inventory 清单 4. Ansible ad-hoc 5. Ansible 功能模块 5.1 Ans ...
- ansible之安装与简单使用
http://www.ansible.com.cn/:参照中文文档 安装方式:采用epel源安装 a安装epel源: yum install wget wget dl.fedoraproject.or ...
最新文章
- 【Linux】Linux简单操作之管道与重定向
- 如何使用工具包 (NLTK) 开发NLP 项目?(附教程)
- 面试经典:链表中倒数第k个结点?如何从大量数据中找出高频词?
- 2019.4.1考试2019.4.2考试2019.4.4考试
- STP 简介----PVST+ RSTP和快速PVST+ (1)
- ASP防止SQL注入
- 微信php翻译和天气预报整合,微信公众平台天气预报功能开发
- MariaDB数据库介绍之一、备份(mysqldump、lvm2快照、xtrabackup)
- java对读写文件进行操作
- 解决keil4与keil5不兼容问题
- 【计算机组成原理】实验2:十六位数据总线实验
- 基于Java+Swing+Mysql酒店客房预订管理系统设计
- Word里输入上下标五种方法
- win10配置系统默认utf-8编码
- php 判断中文和英文,PHP如何判断中文还是英文?
- OpenCV 微信QRCode二维码
- c语言 解元二次函数的源代码,学霸强推,高中数学万能解题方法,对数学一筹莫展的你必看!...
- PMP考试有哪些科目
- php开发中常用字符串函数总结
- 在Linux上运行若依出错,解决若依linux启动ERROR
热门文章
- Kubernetes集群中Pod间文件拷贝
- 渗透学习-靶场篇-WebGoat靶场(JWT攻击)
- 对坐标的曲线积分求做功_曲线积分与曲面积分(前篇 曲线积分-坐标曲线积分-格林公式)...
- 打造狼性的呼叫中心外呼团队
- 关于Windows在ping虚拟机时出现请求超时的解决问题
- QList使用注意(浅拷贝 深拷贝)
- C#基于 iTextSharp.text.pdf 实现PDF水印添加功能
- [Kafka]为什么使用kafka?
- 互联网快讯:极米投影仪获用户青睐;粉笔科技创新OMO模式谋突围;华虹半导体拟科创板上市
- android bp文件_理解Android.bp