首页 > 其他分享 >ansible register

ansible register

时间:2022-09-28 14:44:05浏览次数:42  
标签:dm -- register ansible sda6 thinpool docker

目录

ansible register

ansible register 这个功能非常有用。当我们需要判断对执行了某个操作或者某个命令后,如何做相应的响应处理(执行其他 ansible 语句),则一般会用到register 。

实例1

我们需要判断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

标签:dm,--,register,ansible,sda6,thinpool,docker
From: https://www.cnblogs.com/liwenchao1995/p/16737989.html

相关文章

  • ansible template
    目录ansibletemplatetemplate介绍实例实例1实例2实例3实例4ansibletemplatetemplate介绍Jinja是基于Python的模板引擎。template类是Jinja的另一个重要组件,可以看作一......
  • ansible 二进制安装mysql
    1、编辑mysql.sh脚本vimmysql.sql【#/bin/bash#脚本安装mysql,上传安装包至/rootcd/root#安装日志mysql_log=/root/mysql.log#mysql安装包名mysql_package=mysql-8......
  • ansible 修改/etc/hosts
    1、编辑文件hosts.tmlvim hosts.tml【----hosts: 192.168.59.103 remote_user:root tasks:  -name:addhosts   lineinfile:name=/etc/hostslin......
  • ansible 安装jdk
    1、上传文件到ansible端上/data/jdk/jdk-8u341-linux-x64.tar.gz(下载地址:)2、编辑jdk.yml文件vimjdk.yml【----hosts:192.168.59.103 remote_user:root tasks......
  • ansible 编译安装nginx
    1、准备安装包nginx-1.22.0.tar.gz(地址:https://nginx.org/download/)2、编写剧本vimnginx.yml【----hosts:192.168.59.103 remote_user:root tasks:  -n......
  • Ansible简介
    Ansible是一种常用的自动运维化工具,基于python开发,分布式,无需客户端,轻量级,配置语言采用YAML。Ansible 的特性:1.模块化:调用特定的模块,完成特殊的任务。2.Paramiko(......
  • ansible 安装docker redis
    1、编辑redis.conf配置文件为了后期修改配置,先写一个配置。后期一般要修改配置的,建议先写一个【#库的数量,默认是16databases32】2、编辑剧本vimredis.yml【 #......
  • ansible主机清单inventory
     一、Inventory主机清单1>ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventoryfile中将其分组命名2>默认的inventoryfile为/etc/ansi......
  • The bean 'ip-service.FeignClientSpecification' could not be registered. A bean w
    idea建议Considerrenamingoneofthebeansorenablingoverridingbysettingspring.main.allow-bean-definition-overriding=true使用改方案,可能会导致后加载的bea......
  • ansible 笔记
    ansible基于ssh  主要组成部分  安装yum安装需要先安装epel源:yuminstall-yhttps://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm ......