zoukankan      html  css  js  c++  java
  • 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

    执行后的结果如下:

  • 相关阅读:
    游记 Day10
    游记 Day9
    NOIP模拟测试10
    【贪心】P3942 将军令 && P2279 消防局的设立
    在没有上考场之前,菜鸡也有翻盘的机会
    【数据结构】 圆方树&&广义圆方树
    快速幂&&龟速乘&&快速乘
    游记 Day 4
    【容斥】[ZJOI2016] 小星星
    游记 Day3
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/9111219.html
Copyright © 2011-2022 走看看