Ansible Academy · บทเรียน

ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง

แทนที่ค่าขณะทำงานด้วย -e

บทเรียน 3 จาก 413 ขั้นตอน

ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

ค่าขณะทำงาน

บางครั้งคุณต้องการเลือกค่าเมื่อเริ่มเรียกใช้เพลย์ แทนที่จะฝังค่านั้นไว้ในไฟล์ นั่นคือหน้าที่ของ extra vars 🌟

แฟล็ก -e

ส่ง extra vars ด้วยแฟล็ก -e หรือ --extra-vars บน ansible-playbook ค่าแต่ละค่าจะกลายเป็นตัวแปรสำหรับการเรียกใช้ทั้งหมด

ansible-playbook site.yml -e "env=prod"

คู่ key=value หลายคู่

แยกค่าหลายค่าด้วยช่องว่างภายในสตริงที่มีเครื่องหมายอัญประกาศชุดเดียว Ansible จะแยกวิเคราะห์คู่ key=value แต่ละคู่ให้เป็นตัวแปร

ansible-playbook site.yml -e "env=prod port=443"

การใช้ -e ซ้ำ

คุณสามารถส่ง -e ได้มากกว่าหนึ่งครั้ง แต่ละครั้งจะเพิ่มตัวแปรของตัวเอง ทำให้คำสั่งยาว ๆ อ่านง่ายขึ้น

ansible-playbook site.yml -e env=prod -e port=443

JSON สำหรับชนิดข้อมูลที่ซับซ้อน

key=value จะทำให้ทุกอย่างเป็นข้อความ หากต้องการส่งตัวเลข รายการ หรือพจนานุกรม ให้ใช้ JSON ภายในตัวแปรเพิ่มเติมแทน

ansible-playbook site.yml -e '{"port": 443}'

โหลดตัวแปรเพิ่มเติมจากไฟล์

เติม @ ไว้หน้าค่าเพื่ออ่านตัวแปรจากไฟล์ YAML หรือ JSON เหมาะอย่างยิ่งสำหรับชุดค่าที่ต้องการแทนที่จำนวนมาก

ansible-playbook site.yml -e @overrides.yml

ตัวแปรเพิ่มเติมมีลำดับเหนือกว่า

ตัวแปรเพิ่มเติมจะมีลำดับเหนือกว่าแหล่งที่มาอื่นเกือบทั้งหมด หากกำหนด env ไว้ทั้งใน vars และบน CLI ระบบจะใช้ค่าจาก บรรทัดคำสั่ง

ค่าเริ่มต้นสำหรับการแทนค่าที่ปลอดภัย

ใช้ตัวแปรเพิ่มเติมคู่กับตัวกรอง default เพื่อให้เพลย์ยังทำงานได้เมื่อไม่มีการระบุค่าที่ต้องการแทนที่

name: "{{ env | default('dev') }}"

เหมาะสำหรับสภาพแวดล้อมต่าง ๆ

เพลย์บุ๊กเดียวกันสามารถทำงานกับสภาพแวดล้อมการพัฒนา การทดสอบ หรือการใช้งานจริงได้ เพียงเปลี่ยน ตัวแปรเพิ่มเติม หนึ่งตัวขณะเริ่มทำงาน ไฟล์เดียว รองรับเป้าหมายได้หลายแบบ

ansible-playbook deploy.yml -e env=staging

สลับพฤติกรรมด้วยแฟล็ก

ตัวแปรเพิ่มเติมเหมาะสำหรับใช้เป็นสวิตช์เปิดหรือปิด เปิดใช้หรือข้ามงานได้โดยจับคู่ตัวแปรหนึ่งตัวกับเงื่อนไข when

when: run_migrations | default(false)

ใส่เครื่องหมายอัญประกาศเมื่อมีช่องว่าง

หากค่ามีช่องว่าง ให้ใส่เครื่องหมายอัญประกาศครอบคู่ทั้งหมด เพื่อไม่ให้เชลล์แยกค่านั้นออกจากกัน โปรดใส่ใจเรื่องการใส่เครื่องหมายอัญประกาศในเชลล์

ansible-playbook s.yml -e "motd=Hello there"

ตรวจสอบอย่างรวดเร็ว

คุณกำหนด port ไว้ใน vars และส่ง -e port=443 เพิ่มเติม ค่าใดจะมีผล

สรุป

ขณะนี้คุณสามารถแทนที่ค่าขณะเริ่มทำงานด้วย -e ส่ง JSON หรือ @files และวางใจได้ว่าตัวแปรเพิ่มเติมจะมีลำดับเหนือกว่าแหล่งที่มาอื่น ✨

เริ่มต้นได้ฟรี

เรียนรู้ YAML ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง”

แทนที่ค่าขณะทำงานด้วย -e คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม

ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดและใช้ vars ใน Play
  2. ไวยากรณ์การแทนที่ {{ }}
  3. ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง
  4. ที่มาและลำดับความสำคัญของตัวแปร
← กลับไปที่ Ansible Academy