为什么在条件正确的情况下Ansible仍会跳过任务?

时间:2019-01-22 21:15:20

标签: ansible

下面是我的代码,我在其中查找文件/home/xxx/logs/213079.txt中的值,并将条件设置为true或false。

  - name: register name
    shell: cat /home/xxx/213079.txt
    register: a213079

  - name: register output
    shell: cat /home/xxx/logs/213079.txt
    register: h213079

  - shell: echo {{ a213079.stdout }} Healthy >> /home/xxx/ABC/213079.txt
    when:
      - "'Serious' not in h213079.stdout"
      - "'Service' not in h213079.stdout"

  - shell: echo {{ a213079.stdout }} Faulty >> /home/xxx/ABC/213079.txt
    when:
      - "'Serious' in h213079.stdout"
      - "'Service' in h213079.stdout"

但是当我以相同的速度运行时,所有条件都将跳过。

TASK [tmp : register output] *******************************************************************************************************************************************
changed: [127.0.0.1]

TASK [tmp : shell] *****************************************************************************************************************************************************
skipping: [127.0.0.1]

TASK [tmp : shell] *****************************************************************************************************************************************************
skipping: [127.0.0.1]

TASK [tmp : shell] *****************************************************************************************************************************************************
skipping: [127.0.0.1]

TASK [tmp : shell] *****************************************************************************************************************************************************
skipping: [127.0.0.1]

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

由于我们不知道您所得到的输出结果看起来很复杂,但是如果您可以grep这个特定的单词,我建议您使用以下类似内容。

何时:h213079.stdout =! “严重”和h213079.stdout =! “服务”

何时:h213079.stdout ==“严重”和h213079.stdout ==“服务”