下面是我的代码,我在其中查找文件/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]
有人可以帮忙吗?
答案 0 :(得分:0)
由于我们不知道您所得到的输出结果看起来很复杂,但是如果您可以grep这个特定的单词,我建议您使用以下类似内容。
何时:h213079.stdout =! “严重”和h213079.stdout =! “服务”
何时:h213079.stdout ==“严重”和h213079.stdout ==“服务”