ฉันมีงานที่จะตรวจสอบว่ากระบวนการของฉันกำลังฟังบนพอร์ต 8080 และเฉพาะเมื่อรหัสออกไม่ใช่ศูนย์ฉันจะเรียกใช้fail
ข้อความได้หรือไม่
เมื่อบริการกำลังทำงานบริการจะรายงานว่ามีการเปลี่ยนแปลงสถานะ ok
ฉันต้องการที่จะพูด อะไรchanged
สถานะจริงหมายถึงในเบิ้ล?
ฉันมีงานที่จะตรวจสอบว่ากระบวนการของฉันกำลังฟังบนพอร์ต 8080 และเฉพาะเมื่อรหัสออกไม่ใช่ศูนย์ฉันจะเรียกใช้fail
ข้อความได้หรือไม่
เมื่อบริการกำลังทำงานบริการจะรายงานว่ามีการเปลี่ยนแปลงสถานะ ok
ฉันต้องการที่จะพูด อะไรchanged
สถานะจริงหมายถึงในเบิ้ล?
คำตอบ:
สิ่งใดก็ตามที่ขึ้นอยู่กับบางสิ่งบางอย่างบนเป้าหมายจะได้รับสถานะ "เปลี่ยน" เมื่อดำเนินการแม้ว่าจะเป็นเพียงคำสั่งเชลล์เพื่อสะท้อนบางสิ่งก็ตาม
เพื่อไม่ให้สถานะ "เปลี่ยน" คุณสามารถเพิ่มบรรทัดต่อไปนี้ในงาน:
changed_when: false
สิ่งนี้และสิ่งอื่น ๆ ที่เกี่ยวข้องมีการระบุไว้ในหน้าเอกสารที่ไม่น่าเชื่อถือนี้
งานเบิ้ลควรจะidempotent เช่น. ถ้างานไม่ได้ปรับเปลี่ยนอะไรมันควรจะกลับแทนok
changed
โมดูลและงานบิวด์อินส่วนใหญ่มีอยู่แล้ว แต่สำหรับงานต่าง ๆ เช่นcommand
และshell
คุณต้องการความช่วยเหลือเล็กน้อย
สำหรับงานที่ตรวจสอบอย่างหมดจดและไม่แก้ไขอะไรคุณควรเพิ่ม:
changed_when: False
always_run: yes
หลังช่วยให้งานในการทำงานแม้จะอยู่ในโหมดการตรวจสอบ
เพื่อความสมบูรณ์งานดังกล่าวมักจะรวมกับงานอื่นที่ทำการแก้ไขจริงเช่น:
- 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