Ansible 的任務沒有下中斷的話,即便有使用 when 偵測,playbook 會繼續往下走,可以利用 fail
這個參數讓條件不符合時直接把 process 中斷,以 stat 偵測目錄是否存在來做範例。
- hosts: localhost
vars:
path: /tmp/sync/
tasks:
- name: "stat {{ path }}"
stat:
path: "{{ path }}"
register: the_dir
- name: "shutdown when {{ path }} is not exists"
fail:
msg: "{{ path }} not exists"
when: the_dir.stat.exists == False
- name: "echo yes when {{ path }} exists"
debug:
msg: 'yes'
when: the_dir.stat.exists
當我們設定的 path
不存在時,會直接中斷,不會走道最後的 "echo yes when {{ path }} exists"
。
沒有留言:
張貼留言