ที่มาและลำดับความสำคัญของตัวแปร
แผนผังเบื้องต้นของแหล่งที่มาของตัวแปร
ที่มาและลำดับความสำคัญของตัวแปร เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
มีแหล่งที่มามากมาย
ตัวแปรเดียวกันอาจถูกกำหนดได้จากหลายที่ เช่น รายการโฮสต์ ตัวแปรของเพลย์ ไฟล์ CLI และอื่น ๆ แล้วค่าจากแหล่งใดจะมีผลจริง 🌟
ลำดับความสำคัญเป็นตัวตัดสิน
Ansible ใช้ลำดับตายตัวที่เรียกว่า ลำดับความสำคัญของตัวแปร เมื่อกำหนดชื่อเดียวกันซ้ำสองครั้ง แหล่งที่มาที่มีลำดับสูงกว่าจะเขียนทับแหล่งที่มาที่มีลำดับต่ำกว่า
ค่าเริ่มต้นของบทบาทมีลำดับต่ำสุด
ค่าภายในโฟลเดอร์ defaults ของบทบาทจะอยู่ล่างสุด ค่านี้มีจุดประสงค์ให้สิ่งอื่นแทนที่ได้ง่าย
# roles/web/defaults/main.yml
http_port: 80ตัวแปรจากรายการโฮสต์
ตัวแปรที่กำหนดในรายการโฮสต์ เช่นใน group_vars หรือ host_vars จะมีลำดับสูงกว่าค่าเริ่มต้นของบทบาท แต่ต่ำกว่าตัวแปรระดับเพลย์
# group_vars/web.yml
http_port: 8080ตัวแปรของเพลย์มีลำดับสูงกว่า
ตัวแปรใต้คีย์ vars ของเพลย์จะมีลำดับเหนือกว่าค่าจากรายการโฮสต์ กำหนดค่าไว้ที่นี่แล้วค่านั้นจะมีลำดับเหนือกว่าทุกอย่างใน group_vars
- hosts: web
vars:
http_port: 9090ตัวแปรของงานมีขอบเขตแคบ
คุณสามารถแนบ vars ไว้กับงานเดียวได้ ค่านั้นจะมีผลเฉพาะที่นั่น และมีลำดับเหนือกว่าตัวแปรของเพลย์ที่มีขอบเขตกว้างกว่า
- debug:
var: http_port
vars:
http_port: 1234ค่าที่ลงทะเบียนและ set_fact
ค่าที่เก็บด้วย register หรือกำหนดระหว่างการทำงานด้วย set_fact จะอยู่ในลำดับที่สูง โดยอยู่ถัดลงมาจากตัวแปรเพิ่มเติม
- set_fact:
http_port: 7000ตัวแปรเพิ่มเติมอยู่บนสุด
ตัวแปรเพิ่มเติม จากบรรทัดคำสั่งมีลำดับเหนือกว่าทุกอย่าง ค่าที่ส่งด้วย -e จะเป็นคำตัดสินสุดท้ายสำหรับการทำงานครั้งนั้น
ansible-playbook site.yml -e http_port=443คำจำกัดความสุดท้ายมีผลภายในระดับเดียวกัน
เมื่อแหล่งที่มาสองแห่งอยู่ในระดับเดียวกัน แหล่งที่มาที่โหลด ทีหลัง จะมีผล ใช้ลำดับความสำคัญก่อน แล้วใช้ลำดับการโหลดตัดสินกรณีเสมอกัน
ทำให้เรียบง่าย
คุณแทบไม่จำเป็นต้องจำแผนผังทั้งหมด ใส่ค่าที่เหมาะสมไว้ใน defaults แทนที่ค่าอย่างตั้งใจ และหลีกเลี่ยงการกำหนดชื่อเดียวกันไว้ทุกที่
ตรวจสอบค่าที่ได้รับ
ไม่แน่ใจว่าค่าใดมีผลใช่ไหม พิมพ์ค่าด้วย debug เพื่อดูผลลัพธ์ที่ได้รับการแก้ค่าก่อนนำไปใช้งานจริง
- debug:
var: http_portตรวจสอบอย่างรวดเร็ว
แหล่งที่มาของตัวแปรใดมีลำดับความสำคัญสูงสุด
สรุป
คุณได้ทำความเข้าใจลำดับความสำคัญเป็นขั้น ๆ แล้ว ได้แก่ defaults ต่ำสุด ตามด้วยตัวแปรจากรายการโฮสต์ ตัวแปรของเพลย์และงาน จากนั้นคือ set_fact และมีตัวแปรเพิ่มเติมอยู่บนสุด ✨
คำถามที่พบบ่อย
บทเรียน “ที่มาและลำดับความสำคัญของตัวแปร” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ที่มาและลำดับความสำคัญของตัวแปร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ที่มาและลำดับความสำคัญของตัวแปร”
แผนผังเบื้องต้นของแหล่งที่มาของตัวแปร คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ที่มาและลำดับความสำคัญของตัวแปร” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนดและใช้ vars ใน Play
- ไวยากรณ์การแทนที่ {{ }}
- ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง
- ที่มาและลำดับความสำคัญของตัวแปร