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

    执行后的结果如下:

  • 相关阅读:
    bnuoj 4207 台风(模拟题)
    bnuoj 4208 Bubble sort
    bnuoj 4209 Triangle(计算几何)
    bnuoj 33656 J. C.S.I.: P15(图形搜索题)
    bnuoj 33648 Neurotic Network(树形模拟题)
    bnuoj 33647 Angry Grammar Nazi(字符串)
    bnuoj 16493 Just Pour the Water(矩阵快速幂)
    Solidity合约记录——(三)如何在合约中对操作进行权限控制
    预赛第二场
    预赛第一场
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/9111219.html
Copyright © 2011-2022 走看看