如果跳过了相关步骤,则跳过可执行的进度任务



如果跳过相关任务,我想跳过下面的可执行进度任务吗?我将如何实现它?

- name: long running shell
shell:
cmd: '/opt/apps/long_running_script.sh'
async: 1000
poll: 0
when:
verify.rc != 0
register: check_status
- name: Check on long running step
async_status:
jid: "{{ check_status.ansible_job_id }}"
register: job_result
until: job_result.finished
retries: 90
delay: 10

我尝试使用when: check_status is finished,但在跳过第一个任务时看到错误。

当跳过任务时,生成的变量将具有值为true的属性名称skipped,因此您应该能够编写如下逻辑。

when: check_status.skipped | default(false)

将需要默认值,因为对于常规流(未跳过(,跳过的属性在check_status中不可用。

或者,

when: check_status.skipped is defined and check_status.skipped

更简单的是@β.εηιτ.βε评论,

when: check_status is skipped

最新更新