แยกแขนงตามข้อเท็จจริงของตระกูล OS
ใช้ขั้นตอนต่างกันสำหรับ Debian และ RedHat
แยกแขนงตามข้อเท็จจริงของตระกูล OS เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
เพลย์บุ๊กเดียว รองรับหลายดิสโทร
Debian ใช้ apt ส่วน RedHat ใช้ dnf เมื่อใช้แฟกต์ร่วมกับ when เพลย์บุ๊กเดียวจะปรับให้เหมาะกับแต่ละระบบปฏิบัติการได้ 🐧
แฟกต์ os_family
Ansible จะรวบรวม ansible_os_family ซึ่งเป็นป้ายกำกับระดับกว้าง เช่น Debian หรือ RedHat ที่ใช้จัดกลุ่มดิสโทรที่เกี่ยวข้องกัน
when: ansible_facts["os_family"] == "Debian"ตระกูลกับดิสโทร
os_family เป็นข้อมูลระดับกว้าง ส่วน ansible_distribution ระบุได้ละเอียดกว่า Ubuntu และ Debian อยู่ในตระกูล Debian เดียวกัน แต่เป็นคนละดิสโทร
งานสำหรับ Debian เท่านั้น
กำหนดเงื่อนไขให้งาน apt ทำงานเฉพาะบนตระกูล Debian เท่านั้น โฮสต์ RedHat จะถูกข้ามไป
- name: Install nginx (apt)
ansible.builtin.apt:
name: nginx
when: ansible_os_family == "Debian"คู่กันสำหรับ RedHat
เพิ่มงานอีกงานสำหรับตระกูล RedHat ตอนนี้ทั้งสองสภาพแวดล้อมได้รับการรองรับใน play เดียวกัน
- name: Install nginx (dnf)
ansible.builtin.dnf:
name: nginx
when: ansible_os_family == "RedHat"ทางลัดของมอดูล package
สำหรับการติดตั้งแบบง่าย มอดูลทั่วไปอย่าง package จะเลือกเครื่องมือที่เหมาะสมให้อัตโนมัติ ดังนั้นคุณอาจไม่จำเป็นต้องแยกงานตามระบบปฏิบัติการ
สตริงแยกแยะตัวพิมพ์เล็กใหญ่
ชื่อตระกูลต้องตรงกันทุกตัวอักษร คือ RedHat ไม่ใช่ Redhat หรือ redhat หากใช้ตัวพิมพ์ผิด โฮสต์ทุกเครื่องจะถูกข้ามไปอย่างเงียบ ๆ ⚠️
แฟกต์ OS อื่น ๆ ที่มีประโยชน์
นอกจากตระกูลแล้ว ยังมี ansible_distribution_version และ ansible_distribution_major_version สำหรับการตัดสินใจที่ละเอียดและคำนึงถึงเวอร์ชันมากขึ้น
when: ansible_distribution_major_version == "9"ตรวจสอบก่อนแยกเงื่อนไข
ไม่แน่ใจค่าที่ได้ใช่ไหม งาน debug อย่างง่ายจะแสดงแฟกต์นั้น เพื่อให้คุณเขียนเงื่อนไขที่ตรงกับค่าจริงได้
- ansible.builtin.debug:
var: ansible_os_familyต้องรวบรวมแฟกต์ก่อน
การแยกเงื่อนไขตามแฟกต์ของระบบปฏิบัติการต้องเปิดใช้ gather_facts หากคุณปิดใช้งานไว้ ตัวแปร os_family จะไม่ได้รับการกำหนดค่า
คู่มือพกพาชนะ
ไฟล์เดียวที่รองรับทุกดิสโทรดูแลรักษาได้ง่ายกว่าการมีสำเนาแยกตาม OS ข้อมูลข้อเท็จจริงและ when ทำให้การทำงานอัตโนมัติพกพาได้ 🌍
ตรวจสอบอย่างรวดเร็ว
มาทำความเข้าใจการแยกแขนงตาม OS ให้ชัดเจนกัน
สรุปทบทวน
ใช้ ansible_os_family ใน when เพื่อแยก Debian กับ RedHat เปิดใช้ข้อมูลข้อเท็จจริงไว้ และจับคู่ด้วยชื่อที่ตรงกันทุกตัวอักษร ✅
คำถามที่พบบ่อย
บทเรียน “แยกแขนงตามข้อเท็จจริงของตระกูล OS” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แยกแขนงตามข้อเท็จจริงของตระกูล OS” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แยกแขนงตามข้อเท็จจริงของตระกูล OS”
ใช้ขั้นตอนต่างกันสำหรับ Debian และ RedHat คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “แยกแขนงตามข้อเท็จจริงของตระกูล OS” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม
ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เรียกใช้งานเฉพาะเมื่อเป็น True
- แยกแขนงตามข้อเท็จจริงของตระกูล OS
- รวมเงื่อนไขด้วย and / or
- ลงทะเบียนผลลัพธ์ แล้วจึงตัดสินใจ