trích dẫn từ Điều kiện với bao gồm:
Khi bạn sử dụng điều kiện trên câu lệnh bao gồm_*, điều kiện chỉ được áp dụng cho chính tác vụ bao gồm chứ không áp dụng cho bất kỳ tác vụ nào khác trong (các) tệp được bao gồm.
Điều này hoạt động như mong đợi
- bao gồm_tác vụ: set-x.yml
khi: x không được xác định
Không có tác vụ nào từ tệp đi kèm sẽ được sử dụng
NHIỆM VỤ [bao gồm_tác vụ] ************************************************ **
bao gồm: /export/scratch/tmp8/set-x.yml cho máy chủ cục bộ
Tình hình là khác nhau với khối. trích dẫn từ Nhóm các nhiệm vụ với các khối:
Tất cả các tác vụ trong một khối kế thừa các chỉ thị được áp dụng ở cấp độ khối. ... Chỉ thị không ảnh hưởng đến chính khối đó, nó chỉ được kế thừa bởi các tác vụ được bao quanh bởi một khối. Ví dụ: câu lệnh when được áp dụng cho các tác vụ trong một khối chứ không phải cho chính khối đó.
Nếu bạn đặt bao gồm_task thành một khối
- chặn:
- bao gồm_tác vụ: set-x.yml
khi: x không được xác định
điều kiện được áp dụng cho tất cả các nhiệm vụ. Ngoài ra đối với các tác vụ được bao gồm, do đó ghi đè quy tắc trước đó rằng một điều kiện chỉ được áp dụng cho chính tác vụ được bao gồm.
NHIỆM VỤ [bao gồm_tác vụ] ************************************************ ***
bao gồm: /export/scratch/tmp8/set-x.yml cho máy chủ cục bộ
NHIỆM VỤ [set_fact] ************************************************ ********
được rồi: [máy chủ cục bộ]
NHIỆM VỤ [gỡ lỗi] ************************************************ ************
bỏ qua: [localhost]
mở một số báo nếu bạn nghĩ rằng đây là một lỗi.