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

    执行后的结果如下:

  • 相关阅读:
    「SDOI2014」向量集 解题报告
    HNOI 2014 世界树
    LOJ #2205. 「HNOI2014」画框 解题报告
    KM模板
    洛谷 [HNOI2014]道路堵塞 解题报告
    [AHOI2014/JSOI2014] 解题报告
    AndroidStudio中添加依赖的三种方式以及如何引入so文件和arr文件
    android 四大组件详解
    Android—— ListView 的简单用法及定制ListView界面
    Android Studio 使用VCS版本控制
  • 原文地址:https://www.cnblogs.com/wangjq19920210/p/9111219.html
Copyright © 2011-2022 走看看