ตัวอย่างเช่น กำหนดไฟล์และ playbook
เชลล์> cat test.txt
XX
เปลือก> cat playbook.yml
- โฮสต์: localhost
งาน:
- ansible.buildin.command:
cmd: cat test.txt
ลงทะเบียน: sync_status
จนกระทั่ง: sync_status.stdout == 'SSUS'
งานจะล้มเหลว
งาน [ansible.buildin.command] ****************************************** **
ล้มเหลว - การลองใหม่: ansible.buildin.command (เหลือการลองใหม่ 3 ครั้ง)
ล้มเหลว - การลองใหม่: ansible.buildin.command (เหลือการลองใหม่ 2 ครั้ง)
ล้มเหลว - กำลังลองใหม่: ansible.buildin.command (เหลืออีก 1 ลองใหม่)
ร้ายแรง: [localhost]: ล้มเหลว! => เปลี่ยนแปลง=จริง
ความพยายาม: 3
ซม.:
- แมว
- ทดสอบ. txt
เดลต้า: '0:00:00.003479'
สิ้นสุด: '2021-06-16 07:27:19.927499'
รอบ: 0
เริ่มต้น: '2021-06-16 07:27:19.924020'
สเตเดอร์: ''
stderr_lines: <ละไว้>
มาตรฐาน: XX
stdout_lines: <ละเว้น>
แต่ถ้าคุณใส่สตริง "SSUS" ลงในไฟล์ก่อนหรือระหว่างการทดสอบ งานก็จะสำเร็จ เช่น
งาน [ansible.buildin.command] ****************************************** **
ล้มเหลว - การลองใหม่: ansible.buildin.command (เหลือการลองใหม่ 3 ครั้ง)
ล้มเหลว - การลองใหม่: ansible.buildin.command (เหลือการลองใหม่ 2 ครั้ง)
เปลี่ยนแล้ว: [localhost]
พอดีกับ พารามิเตอร์ ตามความต้องการของคุณ
ถาม: "หากเอาต์พุตมีหลายบรรทัด ฉันจะต้องใช้ stdout_lines"
ตอบ: ทดสอบการมีอยู่ของสตริงในรายการ เช่น
- ansible.buildin.command:
cmd: cat test.txt
ลงทะเบียน: sync_status
จนถึง: "'SSUS' ใน sync_status.stdout_lines"