แบบฝึกหัด - สร้างสคริปต์เริ่มต้นระบบคลาวด์สําหรับการใช้งานกับ Azure CycleCloud

เสร็จสมบูรณ์เมื่อ

เมื่อจัดเตรียมโหนดสําหรับคลัสเตอร์ คุณอาจต้องการทํางานการกําหนดค่าแบบกําหนดเองระหว่างกระบวนการบูตระบบปฏิบัติการ ก่อนที่การเปลี่ยนแปลงที่ขับเคลื่อนด้วยตัวจัดกําหนดการใด ๆ จะมีผล งานเหล่านี้อาจรวมถึงการปรับปรุงตัวแปรสภาพแวดล้อมเส้นทาง การกําหนดค่าการตั้งค่าการแก้ปัญหาชื่อระบบชื่อโดเมน (DNS) หรือโหนดการผูกกับโดเมน Microsoft Entra Domain Services (AD DS)

เพื่อใช้ฟังก์ชันการทํางานนี้ คุณตัดสินใจที่จะสํารวจการใช้ cloud-init ในคลัสเตอร์ Azure CycleCloud และทดสอบด้วยสคริปต์ Bash อย่างง่ายที่ปรับเปลี่ยนเนื้อหาของไฟล์ภายในเครื่องในแต่ละโหนด คุณต้องการตรวจสอบผลลัพธ์โดยการเชื่อมต่อกับโหนดคลัสเตอร์และตรวจสอบเนื้อหาของไฟล์ที่ปรับเปลี่ยนแล้ว

หมายเหตุ

เมื่อเขียนสคริปต์ cloud-init คุณสามารถใช้วิธีการเขียนสคริปต์หรือการกําหนดค่าใด ๆ ที่ระบบปฏิบัติการที่ทํางานบนโหนดเป้าหมายสามารถจดจําและประมวลผล รวมถึงการเขียนสคริปต์เชลล์แบบดั้งเดิม Python และ YAML

ในแบบฝึกหัดนี้ คุณจะทํางานต่อไปนี้:

  • งานที่ 1: กําหนดค่าการรับรองความถูกต้องโดยใช้ SSH ไปยังโหนดคลัสเตอร์ Azure CycleCloud
  • งานที่ 2: เพิ่มสคริปต์เริ่มต้นระบบคลาวด์ไปยังโหนดคลัสเตอร์
  • งานที่ 3: ตรวจสอบฟังก์ชันการทํางานของระบบคลาวด์บนโหนดตัวจัดกําหนดการ
  • งานที่ 4: ตรวจสอบฟังก์ชันการทํางานของระบบคลาวด์บนโหนดการคํานวณ
  • แบบฝึกหัดที่ 5: ล้างสภาพแวดล้อมแบบทดสอบ

หมายเหตุ

ตรวจสอบให้แน่ใจว่าคุณได้ทําแบบฝึกหัดก่อนหน้านี้เสร็จสิ้นแล้วก่อนที่คุณจะเริ่มแบบฝึกหัดนี้

งานที่ 1: กําหนดค่าการรับรองความถูกต้องโดยใช้ SSH ไปยังโหนดคลัสเตอร์ Azure CycleCloud

เพื่อตรวจสอบการดําเนินการของสคริปต์เริ่มต้นระบบคลาวด์ คุณจะต้องเชื่อมต่อกับโหนดคลัสเตอร์ด้วย Azure CycleCloud CLI จาก Azure Cloud Shell การเชื่อมต่อนี้อาศัยการรับรองความถูกต้องโดยใช้คีย์ SSH ดังนั้นคุณจะต้องอัปโหลดคีย์ส่วนตัวที่สอดคล้องกับคีย์สาธารณะที่แจกจ่ายไปยังโหนดคลัสเตอร์ไปยังไดเรกทอรีหลักของ Azure Cloud Shell

  1. นําทางไปยัง พอร์ทัล Azure และเมื่อได้รับพร้อมท์ ให้รับรองความถูกต้องด้วยบัญชี Microsoft หรือบัญชี Microsoft Entra ที่มีบทบาทผู้สนับสนุนหรือเจ้าของในการสมัครใช้งาน Azure ที่คุณกําลังใช้ในมอดูลนี้

  2. จากพอร์ทัล Azure เปิด Cloud Shell โดยการเลือกไอคอนในแถบเครื่องมือที่อยู่ถัดจากกล่องค้นหา และตรวจสอบให้แน่ใจว่าคุณกําลังใช้งานเซสชัน Bash

  3. ในบานหน้าต่าง Azure Cloud Shell ในแถบเครื่องมือของบานหน้าต่าง ให้เลือกไอคอนที่สี่ที่แสดงหน้าที่มีคู่ของลูกศรแนวตั้งที่ชี้ไปในทิศทางตรงกันข้าม จากนั้น ในเมนูดรอปดาวน์ เลือกอัปโหลด

  4. ในกล่องโต้ตอบ เปิด ให้นําทางไปยังตําแหน่งที่ตั้งของไฟล์ .pem ที่ประกอบด้วยคีย์ส่วนตัวและเลือก เปิด

  5. เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อย้ายไฟล์ .pem ที่อัปโหลดไปยังตําแหน่งที่ถูกต้องและกําหนดค่าสิทธิ์ระดับไฟล์ที่จําเป็น (แทนที่ <private_key.pem> ข้อความตัวอย่างด้วยชื่อของไฟล์ .pem ):

    mkdir -p ~/.ssh
    mv private_key.pem ~/.ssh
    chmod 600 ~/.ssh/cc-ssh-keys.pem
    

งานที่ 2: เพิ่มสคริปต์เริ่มต้นระบบคลาวด์ไปยังโหนดคลัสเตอร์

ตัวเลือกในการเพิ่มสคริปต์ไปยังโหนดคลัสเตอร์จะพร้อมใช้งานจากส่วนติดต่อแบบกราฟิก Azure CycleCloud โดยตรง คุณจะใช้เพื่อกําหนดสคริปต์เริ่มต้นระบบคลาวด์ตัวเดียวกันให้กับตัวจัดกําหนดการ และคํานวณโหนด และตรวจสอบฟังก์ชันการทํางานของมัน สคริปต์เพิ่มรายการ 10.10.10.10 cc.contoso.com ไปยังไฟล์ /etc/hosts

  1. หากคุณยังไม่ได้เชื่อมต่อกับแอปพลิเคชันเว็บ Azure CycleCloud ให้เปิดหน้าต่างเบราว์เซอร์อื่นและนําทางไปยัง https://< IP_address> URL ถ้าคุณได้รับพร้อมท์ ให้ยืนยันว่าคุณต้องการดําเนินการต่อ

  2. ถ้าคุณได้รับพร้อมท์ให้รับรองความถูกต้อง ให้ลงชื่อเข้าใช้โดยใช้ข้อมูลประจําตัวของบัญชีผู้ใช้แอปพลิเคชัน Azure CycleCloud ของคุณที่มีบทบาทผู้ดูแลระบบ

  3. ในอินเทอร์เฟซแบบกราฟิก Azure CycleCloud ให้นําทางไปยังหน้าคลัสเตอร์ ในรายการของคลัสเตอร์ เลือกรายการ contoso แบบกําหนดเอง-slurm-lab-cluster แล้วเลือกแก้ไข

  4. ในหน้าต่างป๊อปอัป แก้ไข contoso custom-slurm-lab-cluster เลือกรายการ Cloud-init และบนแท็บ ตัวจัดกําหนดการ ในส่วน การกําหนดค่า Cloud-init ให้ป้อนสคริปต์ต่อไปนี้:

    #!/bin/bash
    echo "10.10.10.10 www.contoso.com" >> /etc/hosts
    

    สกรีนช็อตของแท็บ Cloud-init ของหน้าต่างป๊อปอัปแก้ไข contoso แบบกําหนดเอง-slurm-lab-cluster ในเว็บแอปพลิเคชัน Azure CycleCloud

  5. ในหน้าต่างป็อปอัพเดียวกัน เมื่อเลือกรายการ Cloud-init ให้เลือกแท็บที่เหลือแต่ละแท็บ (รวมถึง cuda, hpc และ htc) แล้วป้อนสคริปต์เดียวกัน เลือก บันทึก

งานที่ 3: ตรวจสอบฟังก์ชันการทํางานของระบบคลาวด์บนโหนดตัวจัดกําหนดการ

เมื่อต้องการตรวจสอบฟังก์ชันเริ่มต้นระบบคลาวด์บนโหนดตัวจัดกําหนดการ คุณจะเริ่มต้นคลัสเตอร์ ซึ่งจะทริกเกอร์การเตรียมใช้งานโหนดตัวจัดกําหนดการ หลังจากที่โหนดกําลังทํางาน คุณจะสามารถเชื่อมต่อจาก Azure Cloud Shell และตรวจสอบว่าไฟล์ /etc/hosts มีรายการ 10.10.10.10 www.contoso.comหรือไม่

  1. ในหน้าต่างเบราว์เซอร์ที่แสดงแอปพลิเคชันเว็บ Azure CycleCloud ให้เลือกลิงก์เริ่ม บนหน้าคลัสเตอร์ contoso-custom-slurm-lab เมื่อได้รับพร้อมท์ให้ยืนยัน ให้เลือก ตกลง

    หมายเหตุ

    ถ้าคลัสเตอร์กําลังทํางานอยู่แล้ว คุณจะต้องยุติและรีสตาร์ทเพื่อที่จะใช้การกําหนดค่าที่อัปเดตแล้ว มิฉะนั้นการกําหนดค่าจะไม่สามารถมองเห็นได้ในขั้นตอนต่อไป

  2. ในรายการของโหนด เลือกรายการตัวจัดกําหนดการ และตรวจสอบสถานะในบานหน้าต่างรายละเอียด รอจนกว่าจะมีการเปลี่ยนแปลงจากการเข้ารับเป็นพร้อม

    หมายเหตุ

    ซึ่งอาจใช้เวลาประมาณสามนาที

  3. ในบานหน้าต่างรายละเอียด ให้เลือก เชื่อมต่อ ในหน้าต่างป๊อปอัป ของตัวจัดกําหนดการที่ หัวข้อ การใช้ CycleCloud CLI ให้เลือกรายการที่มีคําสั่งที่ช่วยให้คุณสามารถเชื่อมต่อกับโหนดตัวจัดกําหนดการและเลือก ปิด:

    สกรีนช็อตของหน้าต่างเชื่อมต่อกับโหนด: หน้าต่างป๊อปอัปตัวจัดกําหนดการในเว็บแอปพลิเคชัน Azure CycleCloud

    หมายเหตุ

    คําสั่งควรมีรูปแบบ cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster

  4. สลับไปยังหน้าต่างเว็บเบราว์เซอร์ด้วยบานหน้าต่าง Cloud Shell และเรียกใช้คําสั่งที่คุณคัดลอกในขั้นตอนก่อนหน้า

    หมายเหตุ

    คําสั่งควรสร้างเอาต์พุตในรูปแบบต่อไปนี้:

    m@Azure:~$ cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster
    Connecting to cc-admin@40.87.52.25 (contoso-custom-slurm-lab-cluster scheduler) using SSH
    [cc-admin@ip-0A000304 ~]$
    
  5. เมื่อคุณเชื่อมต่อกับโหนด scheduler ให้เรียกใช้คําสั่งต่อไปนี้เพื่อตรวจสอบว่าไฟล์ /etc/hosts มีรายการ 10.10.10.10 www.contoso.com:

    grep "10.10.10.10 www.contoso.com" /etc/hosts
    

    หมายเหตุ

    คําสั่งควรสร้างเอาต์พุตในรูปแบบต่อไปนี้:

    [cc-admin@ip-0A000304 ~]$ grep "10.10.10.10 www.contoso.com" /etc/hosts
    10.10.10.10 www.contoso.com
    

งานที่ 4: ตรวจสอบฟังก์ชันการทํางานของระบบคลาวด์บนโหนดการคํานวณ

ในตอนนี้ คุณจะทําซ้ําลําดับขั้นตอนที่เทียบเท่าเพื่อตรวจสอบฟังก์ชันการทํางานของ cloud-init บนโหนดการคํานวณ

สําคัญ

ก่อนที่คุณจะสามารถใช้ขั้นตอนที่เทียบเท่าเพื่อตรวจสอบฟังก์ชัน cloud-init บนโหนดคํานวณ คุณจําเป็นต้องลบและย้ายชุดสเกลเครื่องเสมือนที่สอดคล้องกันใหม่ ขั้นตอนนี้มีความเฉพาะเจาะจงกับคลัสเตอร์ที่ใช้ Slurm เนื่องจากในกรณีนี้ การรวมตัวจัดกําหนดการปรับขนาดอัตโนมัติจําเป็นต้องใช้ Azure CycleCloud เพื่อใส่โหนดการคํานวณไว้ล่วงหน้า ด้วยเหตุนี้ การกําหนดค่า cloud-init ที่คุณใช้ก่อนหน้านี้ในแบบฝึกหัดนี้จะไม่ส่งผลกระทบต่อโหนดที่มีอยู่

  1. ในขณะที่เชื่อมต่อกับโหนดตัวจัดกําหนดการ ให้เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อลบและย้ายโหนดการคํานวณในคลัสเตอร์ Azure CycleCloud ของคุณใหม่และยุติการเชื่อมต่อกับโหนดตัวจัดกําหนดการ:

    sudo -i
    cd /opt/cycle/jetpack/system/bootstrap/slurm
    ./cyclecloud_slurm.sh remove_nodes
    ./cyclecloud_slurm.sh scale
    exit
    exit
    

    หมายเหตุ

    คุณจะเห็นข้อความที่ระบุว่า พยายามลบโหนดต่อไปนี้ ตามด้วย การปรับมาตราส่วนคลัสเตอร์เสร็จสมบูรณ์ เมื่อขั้นตอนนี้เสร็จสมบูรณ์

  2. บนคอมพิวเตอร์ของคุณ สลับไปยังหน้าต่างเว็บเบราว์เซอร์ที่แสดงหน้า คลัสเตอร์ contoso custom-slurm-lab ของเว็บแอปพลิเคชัน Azure CycleCloud บนแท็บโหนด เลือกแถว htc และในบานหน้าต่างรายละเอียด เลือกรายการ htc-1 จากนั้นเลือกส่วนหัวของแท็บ การดําเนินการ ในเมนูดรอปดาวน์ เลือก เริ่มต้น และเลือก ตกลง เมื่อได้รับพร้อมท์ให้ยืนยัน

    สกรีนช็อตของเมนูการดําเนินการบนหน้าคลัสเตอร์ slurm-lab แบบกําหนดเอง contoso ในเว็บแอปพลิเคชัน Azure CycleCloud

  3. ในบานหน้าต่างรายละเอียด ตรวจสอบโหนดที่เริ่มต้นใหม่และรอจนกว่าสถานะจะเปลี่ยนจากการรับเป็นพร้อม

    หมายเหตุ

    ซึ่งอาจใช้เวลาประมาณสามนาที

  4. ในบานหน้าต่างรายละเอียด ให้เลือก เชื่อมต่อ ในหน้าต่างป๊อปอัป htc-1 ให้เลือกรายการในส่วน การใช้ CycleCloud CLI ที่มีคําสั่งที่ช่วยให้คุณสามารถเชื่อมต่อกับโหนดตัวจัดกําหนดการและเลือก ปิด:

    สกรีนช็อตของหน้าต่างเชื่อมต่อกับโหนด: หน้าต่างป๊อปอัป htc-1 ในแอปพลิเคชันเว็บ Azure CycleCloud

    หมายเหตุ

    คําสั่ง ควรมีรูปแบบcyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster

  5. สลับไปยังบานหน้าต่าง Cloud Shell และเรียกใช้คําสั่งที่คุณคัดลอกในขั้นตอนก่อนหน้า

    หมายเหตุ

    คําสั่งควรสร้างเอาต์พุตในรูปแบบต่อไปนี้:

    m@Azure:~$ cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster
    Connecting to cc-admin@10.0.3.5 (contoso-custom-slurm-lab-cluster htc-1) through SSH bastion at cc-admin@40.87.52.25
    [cc-admin@ip-0A000305 ~]$
    
  6. เมื่อคุณเชื่อมต่อกับโหนด htc-1 ให้เรียกใช้คําสั่งต่อไปนี้เพื่อตรวจสอบว่าไฟล์ /etc/hosts มีรายการ 10.10.10.10 www.contoso.com:

    cat /etc/hosts | grep "10.10.10.10 www.contoso.com"
    

    หมายเหตุ

    คุณควรลบทรัพยากรทั้งหมดที่คุณปรับใช้ในแบบฝึกหัดนี้และก่อนหน้านี้ของโมดูลนี้เมื่อคุณไปถึงจุดนี้ ซึ่งช่วยให้คุณสามารถหลีกเลี่ยงค่าใช้จ่ายที่เชื่อมโยงกับการบํารุงรักษาทรัพยากรเหล่านี้กับการสมัครใช้งาน Azure ของคุณ

งานที่ 5: ล้างสภาพแวดล้อมของแล็บ

การทดสอบการกําหนดค่าคลัสเตอร์โดยใช้แอปพลิเคชัน Azure CycleCloud เสร็จสมบูรณ์แล้ว เพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่จําเป็นที่เกี่ยวข้องกับการใช้ทรัพยากร Azure ตอนนี้คุณจะยุติคลัสเตอร์และนําทรัพยากรทั้งหมดที่คุณเตรียมใช้งานออกตลอดแบบฝึกหัดของโมดูลนี้

  1. ในเว็บเบราว์เซอร์ที่แสดงอินเทอร์เฟซแบบกราฟิกของแอปพลิเคชันเว็บ Azure CycleCloud ให้เลือกลิงก์ Terminate บนหน้าคลัสเตอร์ slurm-custom-slurm-lab ของ contoso และเมื่อได้รับพร้อมท์ให้ยืนยัน ให้เลือก ตกลง

  2. ตรวจสอบกระบวนการสิ้นสุดการทํางาน

    หมายเหตุ

    กระบวนการนี้เกี่ยวข้องกับการยกเลิกการเตรียมใช้งานของ Azure VM ที่ให้บริการบทบาทของโหนดหัวของคลัสเตอร์ ซึ่งอาจใช้เวลาประมาณห้านาที

    หมายเหตุ

    เมื่อต้องลบทรัพยากรอื่น ๆ ทั้งหมดที่คุณเตรียมใช้งานในแล็บนี้ คุณจะลบกลุ่มทรัพยากรที่โฮสต์ทรัพยากรคลัสเตอร์

  3. ในพอร์ทัล Azure นําทางไปยัง blade ของกลุ่มทรัพยากรที่โฮสต์ทรัพยากรคลัสเตอร์ เลือกรายการ ลบกลุ่มทรัพยากร ในแถบเครื่องมือ ในกล่องข้อความ ใส่ชื่อกลุ่มทรัพยากรเพื่อยืนยันการลบ ให้ใส่ชื่อของกลุ่มทรัพยากรและเลือก ลบ เลือก ลบ อีกครั้งเพื่อยืนยันการลบ

    หมายเหตุ

    อาจมีกลุ่มทรัพยากรเพิ่มเติมที่เชื่อมโยงกับทรัพยากร Slurm ของคุณ เพื่อหลีกเลี่ยงค่าใช้จ่ายเพิ่มเติม ตรวจสอบให้แน่ใจว่าลบกลุ่มทรัพยากรที่เกี่ยวข้องกับ Slurm เหล่านี้และทรัพยากรทั้งหมด

ยินดีด้วย! คุณได้ทําแบบฝึกหัดที่สามและขั้นสุดท้ายของโมดูลนี้เสร็จสิ้นแล้ว ในแบบฝึกหัดนี้ คุณได้สํารวจการใช้ cloud-init ในคลัสเตอร์ Azure CycleCloud และทดสอบด้วยสคริปต์ Bash อย่างง่ายที่ปรับเปลี่ยนเนื้อหาของไฟล์ภายในเครื่องในแต่ละโหนด คุณได้ตรวจสอบผลลัพธ์โดยการเชื่อมต่อกับโหนดคลัสเตอร์ และตรวจสอบเนื้อหาของไฟล์ที่ปรับเปลี่ยนแล้ว หลังจากนั้น คุณได้ยกเลิกคลัสเตอร์และลบทรัพยากรคลัสเตอร์ทั้งหมดที่คุณใช้ในโมดูลนี้เพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่จําเป็น