คืนค่า JSON และรองรับ changed
สื่อสารตามโพรโทคอลผลลัพธ์ของโมดูล
คืนค่า JSON และรองรับ changed เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
โมดูลสื่อสารด้วย JSON
เมื่อโมดูลทำงานเสร็จ โมดูลต้องส่งผลลัพธ์แบบ JSON ให้ Ansible นี่คือวิธีที่ตัวควบคุมเรียนรู้ว่าเกิดอะไรขึ้นบนเครื่องโฮสต์
ออกจากการทำงานด้วย exit_json
เรียกใช้ module.exit_json เมื่อทำงานสำเร็จ คำสั่งนี้จะแสดงผลลัพธ์เป็น JSON และจบการทำงานของโมดูลอย่างเรียบร้อยด้วยรหัสการออกจากโปรแกรมที่ถูกต้อง
module.exit_json(changed=True, name='web')คีย์ changed สำคัญ
รายงานค่า changed ตามความเป็นจริงเสมอ ค่านี้บอก Ansible ว่าคุณได้เปลี่ยนแปลงระบบหรือไม่ และกำหนดว่าผลลัพธ์จะแสดงบรรทัด ok หรือ changed
module.exit_json(changed=False)ตรวจสอบสถานะก่อนเปลี่ยนแปลง
เพื่อให้รายงานค่า changed ได้ถูกต้อง ให้ตรวจสอบสถานะปัจจุบันก่อน หากสถานะตรงกับเป้าหมายอยู่แล้ว ให้กำหนด changed=False และไม่ต้องทำอะไร
if current == desired:
module.exit_json(changed=False)ส่งคืนข้อมูลเพิ่มเติม
เพิ่มคีย์ใดก็ได้ลงใน exit_json แล้วคีย์เหล่านั้นจะปรากฏในผลลัพธ์ของงาน ผู้ใช้สามารถบันทึกและนำข้อมูลดังกล่าวกลับมาใช้ภายหลังได้
module.exit_json(changed=True, user_id=42)แจ้งข้อผิดพลาดด้วย fail_json
เมื่อเกิดข้อผิดพลาด ให้เรียกใช้ module.fail_json พร้อมข้อความที่ชัดเจน Ansible จะทำเครื่องหมายว่างานล้มเหลวและแสดงข้อความของคุณ
module.fail_json(msg='API request timed out')อย่าแค่แสดงผล
อย่าใช้ print หรือเอาต์พุตมาตรฐานดิบ Ansible คาดหวังเฉพาะออบเจ็กต์ JSON สุดท้ายเท่านั้น ดังนั้น print ที่หลงเหลือจะ ทำให้ ผลลัพธ์เสียหายและทำให้งานล้มเหลว
เรียกออกจากการทำงานเพียงครั้งเดียว
โมดูลแต่ละตัวต้องจบด้วย exit_json หรือ fail_json เพียงครั้งเดียว ทั้งสองคำสั่งจะเรียกใช้ SystemExit ดังนั้นโค้ดหลังจากนั้นจะไม่ทำงาน
ข้อความที่มีประโยชน์ช่วยได้
ใส่ msg ที่เป็นมิตรในผลลัพธ์ เพื่ออธิบายว่าคุณทำอะไรไปบ้าง ข้อความที่ดีช่วยเปลี่ยนการทำงานที่สับสนให้กลายเป็นผลลัพธ์ที่อ่านเข้าใจง่าย
module.exit_json(changed=True, msg='Created user web')ให้พฤติกรรมเหมือนโมดูลในตัว
ทำให้ผลลัพธ์ของคุณมีลักษณะเหมือนโมดูลหลัก: รายงานค่า changed ส่งคืนฟิลด์ที่มีความหมาย และแจ้งข้อผิดพลาดอย่างชัดเจนพร้อมเหตุผล ความสม่ำเสมอช่วยสร้างความไว้วางใจ
ผลลัพธ์เป็นตัวขับเคลื่อนทุกอย่าง
ตัวจัดการ เงื่อนไข และตัวแปรที่ลงทะเบียนไว้ต่างอ่านข้อมูล JSON ของคุณ การกำหนดค่า changed ให้ถูกต้องทำให้โมดูลของคุณเป็นพลเมืองที่ดีของ Ansible
ตรวจสอบอย่างรวดเร็ว
ลองคิดดูว่าโมดูลของคุณควรรายงานอย่างไรเมื่อไม่มีสิ่งใดถูกแก้ไข
ทบทวน
จบการทำงานด้วย exit_json เมื่อสำเร็จ หรือใช้ fail_json เมื่อเกิดข้อผิดพลาด รายงานค่า changed ตามความเป็นจริง และอย่าแสดงเอาต์พุตดิบ นี่คือโพรโทคอลผลลัพธ์ของโมดูล 📦
คำถามที่พบบ่อย
บทเรียน “คืนค่า JSON และรองรับ changed” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “คืนค่า JSON และรองรับ changed” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “คืนค่า JSON และรองรับ changed”
สื่อสารตามโพรโทคอลผลลัพธ์ของโมดูล คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “คืนค่า JSON และรองรับ changed” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม
ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เมื่อใดควรสร้างโมดูลแบบกำหนดเอง
- AnsibleModule และข้อกำหนดอาร์กิวเมนต์
- คืนค่า JSON และรองรับ changed
- รองรับโหมดตรวจสอบในโมดูลของคุณ