ansible register 之用法
来源:互联网 发布:张恩民 php 编辑:程序博客网 时间:2024/05/01 08:35
ansible register 这个功能非常有用。当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register 。
举个例子:
我们需要判断sda6是否存在,如果存在了就执行一些相应的脚本,则可以为该判断注册一个register变量,并用它来判断是否存在,存在返回 succeeded, 失败就是 failed.
- name: Create a register to represent the status if the /dev/sda6 exsited shell: df -h | grep sda6 register: dev_sda6_result ignore_errors: True tags: docker- name: Copy docker-thinpool.sh to all hosts copy: src=docker-thinpool.sh dest=/usr/bin/docker-thinpool mode=0755 when: dev_sda6_result | succeeded tags: 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 exsited shell: lsblk | grep docker-thinpool register: docker_thinpool_result ignore_errors: True tags: docker
然后在when
中用and
或者or
来组合判断。比如当两种条件之一成功,都对docker配置文件进行修改:
- name: Special config for docker-thinpool devicemapper lineinfile: 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
0 0
- ansible register 之用法
- ansible学习之--ansible初探
- ansible常用模块用法
- ansible高级用法
- ansible常用模块用法
- ansible常用模块用法
- ansible常用模块用法
- [App] Ansible 基本用法
- Ansible(二):Ansible之剧本(Playbooks)
- ansible之并发运行
- LINUX学习之ANSIBLE
- ansible之inventory文件
- ansible之yaml语法
- ansible之patterns
- ansible之playbook入门
- ansible之variable
- ansible之条件语句
- ansible之loops
- i++和++j的区别
- 太多选择——企业如何选择合适的BI工具?
- 原生js 页面倒计时
- 一步步学习电子维修 二极管挡维修法
- android 5.0 界面常用的颜色属性
- ansible register 之用法
- STM32移植RT-Thread的串口只能接收一个字节数据的问题
- GitHub入门指南(翻译)
- HMM隐马尔科夫 python库hmmlearn
- Android之Listview(一)
- 48-信号大结局
- 架构为什么会腐化
- 回调和观察者模式的关系
- tomcat 与 nginx,apache的区别及优缺点