或条件不适用于我的剧本中的set_facts

问题描述

我创建了一个剧本来根据测试用例运行任务,因此我如下创建

在这里,当我通过 ansible-playbook playbook.yml -e stage = 1 时,它将跳过所有任务,并且当我调试test_case *值时,我可以看到它们都处于错误状态,所以可以帮助我处理这段代码。

---
 - name: test
   hosts: localhost
   tasks:
     - name: setting the level
       set_fact:
        test_case_1: "{{ stage == 1 }}"
        test_case_2: "{{ stage == 1 or stage == 2 }}"
  
     - name: "running ls command"
       shell: "ls -l"
       register: testing
       when:
          - test_case_1 == true

     - debug:
           msg: "{{ testing.stdout_lines }}"
       when:
          - test_case_1 == true

     - name: "kickoff"
       shell: "df -Th"
       register: kick
       when:
          - test_case_2 == true

     - name: "printing kickoff"
       debug:
          msg: "{{ kick.stdout_lines }}"
       when:
          - test_case_2 == true

下面是我得到的错误结果

[root@server ~]# ansible-playbook playbook.yml -e stage=1


PLAY [test] ***********************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************
ok: [localhost]

TASK [setting the level] **********************************************************************************************
ok: [localhost]

TASK [running ls command] *********************************************************************************************
skipping: [localhost]

TASK [debug] **********************************************************************************************************
skipping: [localhost]

TASK [kickoff] ********************************************************************************************************
skipping: [localhost]

TASK [printing kickoff] ***********************************************************************************************
skipping: [localhost]

PLAY RECAP ************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=4    rescued=0    ignored=0

[root@server ~]#

应该是预期的结果,它应该执行播放中的所有任务。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)