Nhiệm vụ ansible nên idempotent . Ví dụ. nếu tác vụ không sửa đổi bất cứ điều gì, nó sẽ trả về ok
thay vì changed
. Hầu hết các mô-đun và tác vụ dựng sẵn đã có, nhưng đối với các tác vụ như command
và shell
bạn cần trợ giúp một chút.
Đối với một nhiệm vụ hoàn toàn kiểm tra và không sửa đổi bất cứ điều gì, bạn nên thêm:
changed_when: False
always_run: yes
Cái sau cho phép tác vụ chạy ngay cả trong chế độ kiểm tra .
Để hoàn thiện, các tác vụ như vậy thường được kết hợp với một tác vụ khác thực hiện sửa đổi thực tế, ví dụ:
- command: check command that returns true when no change needed
register: result
changed_when: False
always_run: yes
- command: modify command
when: result.rc != 0