Score:1

ฉันจะดูได้อย่างไรว่าคำสั่งใดที่รันได้และผลลัพธ์ของคำสั่งเหล่านั้น

ธง us

ฉันเพิ่งเริ่มใช้ Ansible และใช่ ฉันรู้ว่ามีคนถามเรื่องนี้หลายครั้งแล้ว แต่ฉันพยายามใช้คำแนะนำที่เคยเห็นที่อื่นแล้ว

ฉันทำ ส่งออก ANSIBLE_STDOUT_CALLBACK=debug แล้ว ansible-playbook -vvvvvv arch-upgrade.yaml -l โฮสต์ของฉัน กับ arch-upgrade.yaml ด้านล่าง:

- ชื่อ: ArchLinux เป็นปัจจุบัน
  โฮสต์: ทั้งหมด
  งาน:
    - ชื่อ: อัปเกรดระบบเต็มรูปแบบ
      แพ็คแมน:
        update_cache: ใช่
        อัพเกรด: ใช่
      ลงทะเบียน: ออก
    - แก้ปัญหา: msg="{{ ออก }}"

ฉันเข้าใจ มาก รายละเอียดเกี่ยวกับวิธีที่ ansible เปิดมัน การเชื่อมต่อ ssh ถ่ายโอนไฟล์ python รันจากระยะไกล ฯลฯ แต่เท่าที่ฉันสามารถบอกได้ ไม่ใช่สิ่งเดียวที่เกี่ยวกับคำสั่งที่สคริปต์ python เรียกใช้จริงและสิ่งที่ส่งคืน (stdout, stderr, รหัสส่งคืน) นั่นเป็นเหตุผลที่ฉันไม่รวมบันทึกที่ยาวมากนี้ไว้ที่นี่ แต่ฉันทำได้ตามคำขอ

มีคนรู้ว่าฉันสามารถขอให้ ansible เป็นรายละเอียดมากขึ้นได้อย่างไร อะไร มันไม่ (และไม่ อย่างไร มันทำ) ?

br flag
Ansible สามารถให้ผลลัพธ์ของโมดูลแก่คุณ ดู [โมดูลการแก้ไขจุดบกพร่อง](https://docs.ansible.com/ansible/latest/dev_guide/debugging.html#debugging-modules) หากคุณต้องการเรียนรู้เพิ่มเติม มันค่อนข้างตรงไปตรงมา คุณขอให้ Ansible ทิ้งรหัสไว้ที่โหนดระยะไกล ดู ANSIBLE_KEEP_REMOTE_FILES จากนั้น ที่รีโมตโหนด คุณคลายโค้ดและเรียกใช้ *pdb*
us flag
โอเค ขอบคุณ ฉันเดาว่านี่เป็นวิธีที่จะทำได้ ดูเหมือนจะค่อนข้างซับซ้อนแม้ว่าไม่มีวิธี "ดั้งเดิม" เพื่อดูว่าเกิดอะไรขึ้นจากบรรทัดคำสั่ง ansible หรือไม่ ฉันหมายถึงสิ่งต่าง ๆ เช่น `run_command` ไม่โต้ตอบกับกลไกการบันทึกดั้งเดิมบางประเภทภายใน ansible ?
br flag
ไม่มันไม่ใช่. ลองนึกดูว่า Ansible ทำงานอย่างไร ประการแรก ที่คอนโทรลเลอร์ ข้อมูลและโค้ดทั้งหมดจะถูกบีบอัดลงในแพ็คเก็ต ``AnsiballZ`` จากนั้นแพ็กเก็ตนี้จะถูกส่งไปยังโหนดระยะไกล ที่โหนดระยะไกล ข้อมูลและรหัสจะถูกแยกและดำเนินการ เมื่องานเสร็จสิ้น เอาต์พุตจะถูกส่งกลับจากรีโมตโหนดไปยังคอนโทรลเลอร์ อ่านลิงค์ด้านบน
us flag
ใช่ สิ่งที่คุณเสนอนั้นเรียบง่ายจากมุมมองของการออกแบบระบบ มันไม่ง่ายเลยจากมุมมองของผู้ใช้ ฉันประหลาดใจเล็กน้อยที่ไม่มีเฟรมเวิร์กทั่วไปภายใน ansible เพื่อบันทึกผลข้างเคียงของสิ่งที่โมดูลทำ (คำสั่งเชลล์ การเรียกระบบ การเรียก API ฯลฯ) โดยไม่ต้องเรียกใช้ด้วยมือ อย่างไรก็ตาม ขอบคุณสำหรับข้อมูลเชิงลึกเกี่ยวกับภายในของ ansible !
br flag
ด้วยความยินดี! จำเป็นต้องเข้าใจว่าความสำเร็จของ Ansible คือการจัดเตรียมเฟรมเวิร์กที่ครอบคลุมเพื่อเขียนโมดูลที่กำหนดเอง มี [โครงสร้างแบบรวมของเอาต์พุต](https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#creating-an-info-or-a-facts-module) แต่เนื่องจากความหลากหลาย ของโมดูล คุณจะได้รับเฉพาะเอาต์พุตที่ผู้เขียนโมดูลจัดเตรียมไว้ให้เท่านั้น ฉันคิดว่ามีโมดูลประมาณ 10k ในขณะนี้ ดู [คอลเลกชัน Ansible](https://github.com/orgs/ansible-collections/repositories)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา