Ví dụ: được cung cấp tệp và playbook
vỏ> mèo test.txt
XX
shell> cat playbook.yml
- máy chủ: localhost
nhiệm vụ:
- ansible.buildin.command:
cmd: mèo test.txt
đăng ký: sync_status
cho đến khi: sync_status.stdout == 'SSUS'
nhiệm vụ sẽ thất bại
NHIỆM VỤ [ansible.buildin.command] ****************************************** **
KHÔNG THÀNH CÔNG - THỬ LẠI: ansible.buildin.command (còn 3 lần thử lại).
KHÔNG THÀNH CÔNG - THỬ LẠI: ansible.builtin.command (còn 2 lần thử lại).
KHÔNG THÀNH CÔNG - THỬ LẠI: ansible.buildin.command (còn 1 lần thử lại).
gây tử vong: [localhost]: KHÔNG THÀNH CÔNG! => đã thay đổi=đúng
cố gắng: 3
cmd:
- con mèo
- test.txt
đồng bằng: '0:00:00.003479'
kết thúc: '2021-06-16 07:27:19.927499'
rc: 0
bắt đầu: '2021-06-16 07:27:19.924020'
tiêu chuẩn: ''
stderr_lines: <bỏ qua>
tiêu chuẩn: XX
stdout_lines: <bỏ qua>
Tuy nhiên, nếu bạn chèn chuỗi "SSUS" vào tệp trước hoặc trong khi kiểm tra, tác vụ sẽ thành công, ví dụ:.
NHIỆM VỤ [ansible.buildin.command] ****************************************** **
KHÔNG THÀNH CÔNG - THỬ LẠI: ansible.buildin.command (còn 3 lần thử lại).
KHÔNG THÀNH CÔNG - THỬ LẠI: ansible.builtin.command (còn 2 lần thử lại).
đã thay đổi: [máy chủ cục bộ]
Phù hợp với thông số nhu cầu của bạn.
Hỏi: "Nếu đầu ra là nhiều dòng, tôi sẽ cần sử dụng stdout_lines."
A: Kiểm tra sự hiện diện của chuỗi trong danh sách, ví dụ:
- ansible.buildin.command:
cmd: mèo test.txt
đăng ký: sync_status
cho đến khi: "'SSUS' trong sync_status.stdout_lines"