ไวยากรณ์การแทนที่ {{ }}
แทรกตัวแปรลงในสตริงและอาร์กิวเมนต์
ไวยากรณ์การแทนที่ {{ }} เป็นบทเรียน Ansible Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ansible Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
ทำความรู้จักกับ Jinja2
วงเล็บปีกกาคู่มาจาก Jinja2 ซึ่งเป็นเครื่องมือสร้างแม่แบบที่ Ansible ใช้ ทุกสิ่งที่อยู่ภายในคือ expression ที่ต้องประเมินค่า 🌟
การแทนค่าพื้นฐาน
ในรูปแบบพื้นฐานที่สุด {{ name }} จะถูกแทนที่ด้วยค่าของ name Ansible จะประเมินค่าก่อนที่โมดูลจะทำงาน
msg: "Welcome, {{ name }}!"ระวังช่องว่าง
ช่องว่างภายในวงเล็บเป็นรูปแบบที่ใช้กันทั่วไปและไม่มีผลต่อการทำงาน {{ name }} จึงเท่ากับ {{name}} รูปแบบที่มีช่องว่างและอ่านง่ายเป็นมาตรฐานที่นิยมใช้
ใส่เครื่องหมายอัญประกาศเมื่อเริ่มต้นค่า
หากค่าเริ่มต้นด้วยวงเล็บปีกกา YAML จะต้องใส่เครื่องหมายอัญประกาศครอบทั้งสตริง มิฉะนั้น YAML จะเข้าใจผิดว่าเป็น dictionary
name: "{{ app_name }}"ผสมข้อความกับตัวแปร
คุณสามารถผสมข้อความตามตัวอักษรกับค่าที่แทนได้อย่างอิสระภายในสตริงเดียว เพื่อประกอบเส้นทางหรือข้อความทีละส่วน
path: "/var/www/{{ site_name }}/index.html"เข้าถึงคีย์ในพจนานุกรม
สำหรับตัวแปรชนิดพจนานุกรม ให้เข้าถึงคีย์ด้วยสัญกรณ์จุดหรือสัญกรณ์วงเล็บ ทั้ง db.port และ db['port'] จะคืนค่าเดียวกัน
msg: "DB on {{ db.host }}:{{ db.port }}"เข้าถึงรายการในลิสต์
ใช้วงเล็บเพื่อระบุตำแหน่งในตัวแปรชนิดรายการ การนับเริ่มจากศูนย์ ดังนั้น packages[0] จึงเป็นสมาชิกตัวแรก
msg: "First package is {{ packages[0] }}"นิพจน์ ไม่ใช่แค่ชื่อ
วงเล็บปีกกาสามารถเก็บ expressions จริงได้ เช่น การคำนวณทางคณิตศาสตร์ การเปรียบเทียบ หรือแม้แต่การต่อข้อความ Ansible จะประเมินค่าทั้งหมด
msg: "Total: {{ workers * 2 }}"ฟิลเตอร์แปลงค่า
เครื่องหมายไปป์จะใช้ filter เพื่อปรับรูปแบบของค่า ในที่นี้ upper จะเปลี่ยนสตริงเป็นตัวพิมพ์ใหญ่ก่อนแสดงผล
msg: "{{ region | upper }}"วงเล็บปีกกาใช้เฉพาะในสตริง
การแทนค่าจะอยู่ภายในค่าชนิดสตริง คีย์เปล่าอย่าง name ยังคงต้องใส่เครื่องหมายอัญประกาศเมื่อขึ้นต้นด้วย {{ }}
ระวังค่าไม่ได้กำหนด
การอ้างอิงชื่อที่ไม่เคยกำหนดจะทำให้เกิดข้อผิดพลาด undefined variable ให้กำหนดค่าก่อน หรือระบุฟิลเตอร์ค่าเริ่มต้น
msg: "{{ tier | default('web') }}"ตรวจสอบอย่างรวดเร็ว
เหตุใด name: {{ app_name }} จึงต้องใส่เครื่องหมายอัญประกาศ
สรุปทบทวน
ตอนนี้คุณสามารถแทนค่าด้วย {{ }} เข้าถึงรายการและพจนานุกรม ใช้ฟิลเตอร์ และใส่เครื่องหมายอัญประกาศเมื่อขึ้นต้นด้วยวงเล็บปีกกาได้แล้ว ✨
คำถามที่พบบ่อย
บทเรียน “ไวยากรณ์การแทนที่ {{ }}” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ไวยากรณ์การแทนที่ {{ }}” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ansible Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ansible Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ไวยากรณ์การแทนที่ {{ }}”
แทรกตัวแปรลงในสตริงและอาร์กิวเมนต์ คุณปฏิบัติ Ansible Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ansible Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ansible Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ไวยากรณ์การแทนที่ {{ }}” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ansible Academy นี้ได้ไหม
ได้ บทเรียน Ansible Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนดและใช้ vars ใน Play
- ไวยากรณ์การแทนที่ {{ }}
- ตัวแปรเพิ่มเติมบนบรรทัดคำสั่ง
- ที่มาและลำดับความสำคัญของตัวแปร