• ansible 之条件语句 when


    注册变量:

    变量的另一个用途是将一条命令的运行结果保存到变量中,供后面的playbook使用。例如:

    - hosts: webservers

       tasks:

          - shell: /usr/bin/foo

             register: foo_result

             ignore_errors: True   使用ignore_errors来忽略错误信息

          - shell: /usr/bin/bar

            when: foo_result.rc == 5

    条件语句:

    在某些情况下,一个变量的值可以依赖于其他变量的值,当然也会影响Ansible的执行过程。

    下面主要介绍When声明.

      tasks:

        - name: "shutdown Debian flavored systems"

          command: /sbin/shutdown -t now

          when: ansible_os_family == "Debian"

    下面再看一个示例,通过判断一条命令执行结果做不同分支的二级处理。

      tasks:

        - command: /bin/false    没有 - name 时,此行将被默认成为标题--- TASK: [command: /bin/false] 

           register: myresult

           ignore_errors: True

        - command: /bin/something

           when: myresult|failed

        - command: /bin/something_else

           when: myresult|success

        - command: /bin/still/something_else

           when: myresult|skipped

    其中success为Ansible内部过滤器方法,返回True代表命令运行成功。

    ---------------------------------------------------------------------------

    [root@localhost when]# cat main.yml 
    - hosts: webservers
      tasks: 
       - name: haha
         command: /bin/uname
         register: result
         ignore_errors: True
       - command: /bin/df
         when: result|failed
         register: aaa
       - command: /bin/ls
         when: result|success
       - command: /bin/lsblk
         when: aaa|skipped

    执行后的结果如下:

  • 相关阅读:
    并发与并行的区别
    Java 中的JSON 字符串
    java spark list 转为 RDD 转为 dataset 写入表中
    SparkConf和SparkContext
    Java 中清空map
    java JSON的使用和解析
    presto计算日期间隔天数或者小时间隔——date_diff函数使用
    Nginx 负载均衡配置
    Nginx 反向代理配置示例(conf文件配置)
    前端同学 linux常用指令汇总
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/9111219.html
Copyright © 2020-2023  润新知