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

    执行后的结果如下:

  • 相关阅读:
    mysql5.7.26做主从复制配置
    linux编译安装mysql5.7
    suse清除kthrotlds木马病毒
    iptables 常用命令
    抓包工具fiddler下载配置(二):浏览器设置代理
    抓包工具fiddler下载配置(三):手机设置代理
    抓包工具fiddler下载配置(一):下载/安装&信任证书
    如何录制视频生成GIF动态图?
    安装第三方包&查看python版本/第三方包版本
    python3项目打包成exe可执行程序
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/5026621.html
Copyright © 2011-2022 走看看