首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在SUSE机器上运行不可执行的任务

仅在SUSE机器上运行不可执行的任务
EN

Stack Overflow用户
提问于 2020-06-04 20:17:19
回答 1查看 744关注 0票数 0

我只想在一个特定的SUSE版本上执行我的Ansible任务。但是这个任务在所有Linux操作系统中都会被执行。这是预料不到的。有人能帮我吗?为什么什么时候条件不起作用?我做错什么了?

代码:

代码语言:javascript
复制
# Action 146: addlink ld-lsb.so.3->ld-2.11.1.so in /lib on sles11.x,12.x for lmutil in cct2000739233
  - name: Addlink ld-lsb.so.3->ld-2.11.1.so in /lib on sles11.x,12.x for lmutil
    shell: "ls ld-*.so|grep -v lsb|head -n 1"
    args:
      chdir: /lib
    register: ldso

  - stat:
      path: /lib64/ld-lsb-x86-64.so.3
    register: lib64_result

  - stat:
      path: /lib/ld-lsb.so.3
    register: lib_result

  - block:
      - file:
          src: "/lib/{{ ldso.stdout }}"
          dest: /lib/ld-lsb.so.3
          state: link
          force: true
      - file:
          src: /lib64/ld-linux-x86-64.so.2
          dest: /lib64/ld-lsb-x86-64.so.3
          state: link
          force: true
    when:
      # Check the OS level. Make sure it runs only on SLES-11 SP4,SLES-12SP0/1/2/3
      - ansible_distribution == 'Suse'
      - ansible_distribution_major_version == "11"
      - ansible_distribution_release == "4"
      - ansible_distribution_version == "11.4"

      - ansible_distribution == 'SLES'
      - ansible_distribution_major_version == "12"
      - ansible_distribution_release == "0" or "1" or "2" or "3"
      - ansible_distribution_version == "12.0" or "12.1" or "12.2" or "12.3"

      - not lib64_result.stat.exists|bool or not lib_result.stat.exists|bool
      - ldso.stdout != ''

  - debug:
      msg: "{{ ldso.stdout }}"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-04 23:04:11

不能这样做or。必须是这样的:

代码语言:javascript
复制
  - ansible_distribution_release == "0" or ansible_distribution_release == "1" or ansible_distribution_release == "2" or ansible_distribution_release == "3"
  - ansible_distribution_version == "12.0" or ansible_distribution_version == "12.1" or ansible_distribution_version == "12.2" or ansible_distribution_version == "12.3"

按照您的方式,ansible_distribution_release == "0" or "1"ansible_distribution_release == "0"计算结果为false,这很好,但"1"则计算为true。然后,false or true计算为true

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62203416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档