0Pricing
DevOps Bootcamp · บทเรียน

จัดเตรียมแล้วกำหนดค่าในกระบวนการเดียว

ส่งต่อโฮสต์ใหม่ให้กับ Play สำหรับกำหนดค่า

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

สองงาน หนึ่งเพลย์บุ๊ก

การจัดเตรียมทำให้เซิร์ฟเวอร์ มีอยู่ ส่วนการกำหนดค่าทำให้เซิร์ฟเวอร์ใช้งานได้จริง พลังที่แท้จริงคือการทำทั้งสองอย่างในเพลย์เดียวที่ราบรื่น 🔗

จัดเตรียมบนโหนดควบคุม

งานสร้างคลาวด์ทำงานในเครื่องโดยเรียกใช้ API ของ AWS ดังนั้นเพลย์สำหรับจัดเตรียมจึงกำหนดเป้าหมายเป็น localhost ไม่ใช่เซิร์ฟเวอร์ใหม่

- hosts: localhost
  gather_facts: false
  tasks:
    - amazon.aws.ec2_instance: { name: web-01 }

บันทึกโฮสต์ใหม่

คุณไม่สามารถเชื่อมต่อ SSH ไปยังเครื่องที่ยังไม่รู้จักได้ ให้ register ผลลัพธ์ของ ec2_instance เพื่อดึง IP สาธารณะใหม่ของเครื่อง

- amazon.aws.ec2_instance:
    name: web-01
  register: ec2

เพิ่มลงในคลังข้อมูลในหน่วยความจำ

โมดูล add_host จะเพิ่มเซิร์ฟเวอร์ใหม่ลงในคลังข้อมูลที่กำลังทำงานอยู่ ดังนั้นเพลย์ถัดไปจึงกำหนดเป้าหมายไปยังเซิร์ฟเวอร์นั้นได้โดยไม่ต้องใช้ไฟล์แบบตายตัว

- add_host:
    name: "{{ ec2.instances[0].public_ip_address }}"
    groups: launched

รอจน SSH พร้อมใช้งาน

อินสแตนซ์ที่กำลังเริ่มทำงานยังไม่สามารถเข้าถึงได้ทันที wait_for จะหยุดรอจนกว่าพอร์ต 22 จะตอบสนอง ก่อนที่คุณจะพยายามเชื่อมต่อ

- wait_for:
    host: "{{ ec2.instances[0].public_ip_address }}"
    port: 22

เริ่มเพลย์ที่สอง

ตอนนี้เปิดเพลย์ใหม่ที่กำหนดเป้าหมายไปยังกลุ่ม launched ที่คุณเพิ่งสร้าง เพลย์นี้จะทำงานบนเซิร์ฟเวอร์คลาวด์โดยตรง

- hosts: launched
  become: true
  tasks:
    - ping:

กำหนดค่าโฮสต์ใหม่

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

- hosts: launched
  tasks:
    - package:
        name: nginx
        state: present

ส่งผู้ใช้ SSH ที่ถูกต้อง

อิมเมจคลาวด์ใช้ชื่อเข้าสู่ระบบเฉพาะ เช่น ubuntu หรือ ec2-user กำหนด ansible_user เพื่อให้เพลย์กำหนดค่าเชื่อมต่อได้อย่างถูกต้อง

add_host:
  name: "{{ ec2.instances[0].public_ip_address }}"
  groups: launched
  ansible_user: ubuntu

ไฟล์เดียวตั้งแต่ต้นจนจบ

ผลลัพธ์คือเพลย์บุ๊กเดียว: เพลย์แรกสร้างโครงสร้างพื้นฐาน ส่วนเพลย์ที่สองกำหนดค่าให้โครงสร้างนั้น เรียกใช้เพียงครั้งเดียว แล้วเซิร์ฟเวอร์ที่ใช้งานได้ก็จะปรากฏขึ้น

ทำซ้ำได้ตลอดกระบวนการ

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

ข้ามข้อความถามคีย์โฮสต์

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

add_host:
  name: "{{ ec2.instances[0].public_ip_address }}"
  groups: launched
  ansible_ssh_common_args: "-o StrictHostKeyChecking=no"

ตรวจสอบความเข้าใจอย่างรวดเร็ว

คุณเพิ่งเปิดใช้งานเครื่อง EC2 และต้องการให้เพลย์ถัดไปกำหนดค่าเครื่องนั้น โดยไม่มีรายการโฮสต์แบบคงที่ อะไรจะช่วยเชื่อมช่องว่างนี้

สรุปทบทวน

คุณเชื่อมการจัดเตรียมและการกำหนดค่าเข้าด้วยกันแล้ว: สร้างบน localhost ลงทะเบียน IP ใช้ add_host รอ SSH แล้วจึงกำหนดค่าในเพลย์ที่สอง ✨

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

บทเรียน “จัดเตรียมแล้วกำหนดค่าในกระบวนการเดียว” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “จัดเตรียมแล้วกำหนดค่าในกระบวนการเดียว”

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

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

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

บทเรียน “จัดเตรียมแล้วกำหนดค่าในกระบวนการเดียว” ใช้เวลานานแค่ไหน

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

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

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

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

  1. Collection บนคลาวด์และการยืนยันตัวตน
  2. เปิดใช้งานอินสแตนซ์ EC2 แบบประกาศเจตนา
  3. เครือข่าย: VPC, Subnet และกลุ่มความปลอดภัย
  4. จัดเตรียมแล้วกำหนดค่าในกระบวนการเดียว
← กลับไปที่ DevOps Bootcamp