Chỉnh sửa: Nếu bạn có Ansible 2.2 trở lên, hãy sử dụng câu trả lời của mkadan. Câu trả lời dưới đây không hoạt động với các phiên bản mới hơn của Ansible. Cũng lưu ý rằng theo nhận xét của Enis Afgan bên dưới, do lỗi, câu trả lời này không hoạt động với các phiên bản Ansible từ 2.0.2 đến 2.1.2.
Kể từ Ansible 2.0, bạn có thể sử dụng hành động bao gồm trong trình xử lý của mình để chạy nhiều tác vụ.
Ví dụ: đặt các nhiệm vụ của bạn trong một tệp riêng restart_tasks.yml
(nếu bạn sử dụng các vai trò, thì sẽ đi vào thư mục con nhiệm vụ, không phải trong thư mục con của trình xử lý):
- name: Restart conditionally step 1
shell: check_is_started.sh
register: result
- name: Restart conditionally step 2
service: name=service state=restarted
when: result
Trình xử lý của bạn sau đó sẽ chỉ đơn giản là:
- name: Restart conditionally
include: restart_tasks.yml
Nguồn: chủ đề vấn đề trên github: https://github.com/ansible/ansible/issues/14270