แบบฝึกหัด - สร้างสคริปต์เริ่มต้นระบบคลาวด์สําหรับการใช้งานกับ 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
นําทางไปยัง พอร์ทัล Azure และเมื่อได้รับพร้อมท์ ให้รับรองความถูกต้องด้วยบัญชี Microsoft หรือบัญชี Microsoft Entra ที่มีบทบาทผู้สนับสนุนหรือเจ้าของในการสมัครใช้งาน Azure ที่คุณกําลังใช้ในมอดูลนี้
จากพอร์ทัล Azure เปิด Cloud Shell โดยการเลือกไอคอนในแถบเครื่องมือที่อยู่ถัดจากกล่องค้นหา และตรวจสอบให้แน่ใจว่าคุณกําลังใช้งานเซสชัน Bash
ในบานหน้าต่าง Azure Cloud Shell ในแถบเครื่องมือของบานหน้าต่าง ให้เลือกไอคอนที่สี่ที่แสดงหน้าที่มีคู่ของลูกศรแนวตั้งที่ชี้ไปในทิศทางตรงกันข้าม จากนั้น ในเมนูดรอปดาวน์ เลือกอัปโหลด
ในกล่องโต้ตอบ เปิด ให้นําทางไปยังตําแหน่งที่ตั้งของไฟล์ .pem ที่ประกอบด้วยคีย์ส่วนตัวและเลือก เปิด
เรียกใช้คําสั่งต่อไปนี้ใน 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
หากคุณยังไม่ได้เชื่อมต่อกับแอปพลิเคชันเว็บ Azure CycleCloud ให้เปิดหน้าต่างเบราว์เซอร์อื่นและนําทางไปยัง https://< IP_address> URL ถ้าคุณได้รับพร้อมท์ ให้ยืนยันว่าคุณต้องการดําเนินการต่อ
ถ้าคุณได้รับพร้อมท์ให้รับรองความถูกต้อง ให้ลงชื่อเข้าใช้โดยใช้ข้อมูลประจําตัวของบัญชีผู้ใช้แอปพลิเคชัน Azure CycleCloud ของคุณที่มีบทบาทผู้ดูแลระบบ
ในอินเทอร์เฟซแบบกราฟิก Azure CycleCloud ให้นําทางไปยังหน้าคลัสเตอร์ ในรายการของคลัสเตอร์ เลือกรายการ contoso แบบกําหนดเอง-slurm-lab-cluster แล้วเลือกแก้ไข
ในหน้าต่างป๊อปอัป แก้ไข contoso custom-slurm-lab-cluster เลือกรายการ Cloud-init และบนแท็บ ตัวจัดกําหนดการ ในส่วน การกําหนดค่า Cloud-init ให้ป้อนสคริปต์ต่อไปนี้:
#!/bin/bash echo "10.10.10.10 www.contoso.com" >> /etc/hosts
ในหน้าต่างป็อปอัพเดียวกัน เมื่อเลือกรายการ Cloud-init ให้เลือกแท็บที่เหลือแต่ละแท็บ (รวมถึง cuda, hpc และ htc) แล้วป้อนสคริปต์เดียวกัน เลือก บันทึก
งานที่ 3: ตรวจสอบฟังก์ชันการทํางานของระบบคลาวด์บนโหนดตัวจัดกําหนดการ
เมื่อต้องการตรวจสอบฟังก์ชันเริ่มต้นระบบคลาวด์บนโหนดตัวจัดกําหนดการ คุณจะเริ่มต้นคลัสเตอร์ ซึ่งจะทริกเกอร์การเตรียมใช้งานโหนดตัวจัดกําหนดการ หลังจากที่โหนดกําลังทํางาน คุณจะสามารถเชื่อมต่อจาก Azure Cloud Shell และตรวจสอบว่าไฟล์ /etc/hosts มีรายการ 10.10.10.10 www.contoso.comหรือไม่
ในหน้าต่างเบราว์เซอร์ที่แสดงแอปพลิเคชันเว็บ Azure CycleCloud ให้เลือกลิงก์เริ่ม บนหน้าคลัสเตอร์ contoso-custom-slurm-lab เมื่อได้รับพร้อมท์ให้ยืนยัน ให้เลือก ตกลง
หมายเหตุ
ถ้าคลัสเตอร์กําลังทํางานอยู่แล้ว คุณจะต้องยุติและรีสตาร์ทเพื่อที่จะใช้การกําหนดค่าที่อัปเดตแล้ว มิฉะนั้นการกําหนดค่าจะไม่สามารถมองเห็นได้ในขั้นตอนต่อไป
ในรายการของโหนด เลือกรายการตัวจัดกําหนดการ และตรวจสอบสถานะในบานหน้าต่างรายละเอียด รอจนกว่าจะมีการเปลี่ยนแปลงจากการเข้ารับเป็นพร้อม
หมายเหตุ
ซึ่งอาจใช้เวลาประมาณสามนาที
ในบานหน้าต่างรายละเอียด ให้เลือก เชื่อมต่อ ในหน้าต่างป๊อปอัป ของตัวจัดกําหนดการที่ หัวข้อ การใช้ CycleCloud CLI ให้เลือกรายการที่มีคําสั่งที่ช่วยให้คุณสามารถเชื่อมต่อกับโหนดตัวจัดกําหนดการและเลือก ปิด:
หมายเหตุ
คําสั่งควรมีรูปแบบ
cyclecloud connect scheduler -c contoso-custom-slurm-lab-clusterสลับไปยังหน้าต่างเว็บเบราว์เซอร์ด้วยบานหน้าต่าง 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 ~]$เมื่อคุณเชื่อมต่อกับโหนด 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 ที่คุณใช้ก่อนหน้านี้ในแบบฝึกหัดนี้จะไม่ส่งผลกระทบต่อโหนดที่มีอยู่
ในขณะที่เชื่อมต่อกับโหนดตัวจัดกําหนดการ ให้เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อลบและย้ายโหนดการคํานวณในคลัสเตอร์ Azure CycleCloud ของคุณใหม่และยุติการเชื่อมต่อกับโหนดตัวจัดกําหนดการ:
sudo -i cd /opt/cycle/jetpack/system/bootstrap/slurm ./cyclecloud_slurm.sh remove_nodes ./cyclecloud_slurm.sh scale exit exitหมายเหตุ
คุณจะเห็นข้อความที่ระบุว่า พยายามลบโหนดต่อไปนี้ ตามด้วย การปรับมาตราส่วนคลัสเตอร์เสร็จสมบูรณ์ เมื่อขั้นตอนนี้เสร็จสมบูรณ์
บนคอมพิวเตอร์ของคุณ สลับไปยังหน้าต่างเว็บเบราว์เซอร์ที่แสดงหน้า คลัสเตอร์ contoso custom-slurm-lab ของเว็บแอปพลิเคชัน Azure CycleCloud บนแท็บโหนด เลือกแถว htc และในบานหน้าต่างรายละเอียด เลือกรายการ htc-1 จากนั้นเลือกส่วนหัวของแท็บ การดําเนินการ ในเมนูดรอปดาวน์ เลือก เริ่มต้น และเลือก ตกลง เมื่อได้รับพร้อมท์ให้ยืนยัน
ในบานหน้าต่างรายละเอียด ตรวจสอบโหนดที่เริ่มต้นใหม่และรอจนกว่าสถานะจะเปลี่ยนจากการรับเป็นพร้อม
หมายเหตุ
ซึ่งอาจใช้เวลาประมาณสามนาที
ในบานหน้าต่างรายละเอียด ให้เลือก เชื่อมต่อ ในหน้าต่างป๊อปอัป htc-1 ให้เลือกรายการในส่วน การใช้ CycleCloud CLI ที่มีคําสั่งที่ช่วยให้คุณสามารถเชื่อมต่อกับโหนดตัวจัดกําหนดการและเลือก ปิด:
หมายเหตุ
คําสั่ง ควรมีรูปแบบ
cyclecloud connect htc-1 -c contoso-custom-slurm-lab-clusterสลับไปยังบานหน้าต่าง 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 ~]$เมื่อคุณเชื่อมต่อกับโหนด 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 ตอนนี้คุณจะยุติคลัสเตอร์และนําทรัพยากรทั้งหมดที่คุณเตรียมใช้งานออกตลอดแบบฝึกหัดของโมดูลนี้
ในเว็บเบราว์เซอร์ที่แสดงอินเทอร์เฟซแบบกราฟิกของแอปพลิเคชันเว็บ Azure CycleCloud ให้เลือกลิงก์ Terminate บนหน้าคลัสเตอร์ slurm-custom-slurm-lab ของ contoso และเมื่อได้รับพร้อมท์ให้ยืนยัน ให้เลือก ตกลง
ตรวจสอบกระบวนการสิ้นสุดการทํางาน
หมายเหตุ
กระบวนการนี้เกี่ยวข้องกับการยกเลิกการเตรียมใช้งานของ Azure VM ที่ให้บริการบทบาทของโหนดหัวของคลัสเตอร์ ซึ่งอาจใช้เวลาประมาณห้านาที
หมายเหตุ
เมื่อต้องลบทรัพยากรอื่น ๆ ทั้งหมดที่คุณเตรียมใช้งานในแล็บนี้ คุณจะลบกลุ่มทรัพยากรที่โฮสต์ทรัพยากรคลัสเตอร์
ในพอร์ทัล Azure นําทางไปยัง blade ของกลุ่มทรัพยากรที่โฮสต์ทรัพยากรคลัสเตอร์ เลือกรายการ ลบกลุ่มทรัพยากร ในแถบเครื่องมือ ในกล่องข้อความ ใส่ชื่อกลุ่มทรัพยากรเพื่อยืนยันการลบ ให้ใส่ชื่อของกลุ่มทรัพยากรและเลือก ลบ เลือก ลบ อีกครั้งเพื่อยืนยันการลบ
หมายเหตุ
อาจมีกลุ่มทรัพยากรเพิ่มเติมที่เชื่อมโยงกับทรัพยากร Slurm ของคุณ เพื่อหลีกเลี่ยงค่าใช้จ่ายเพิ่มเติม ตรวจสอบให้แน่ใจว่าลบกลุ่มทรัพยากรที่เกี่ยวข้องกับ Slurm เหล่านี้และทรัพยากรทั้งหมด
ยินดีด้วย! คุณได้ทําแบบฝึกหัดที่สามและขั้นสุดท้ายของโมดูลนี้เสร็จสิ้นแล้ว ในแบบฝึกหัดนี้ คุณได้สํารวจการใช้ cloud-init ในคลัสเตอร์ Azure CycleCloud และทดสอบด้วยสคริปต์ Bash อย่างง่ายที่ปรับเปลี่ยนเนื้อหาของไฟล์ภายในเครื่องในแต่ละโหนด คุณได้ตรวจสอบผลลัพธ์โดยการเชื่อมต่อกับโหนดคลัสเตอร์ และตรวจสอบเนื้อหาของไฟล์ที่ปรับเปลี่ยนแล้ว หลังจากนั้น คุณได้ยกเลิกคลัสเตอร์และลบทรัพยากรคลัสเตอร์ทั้งหมดที่คุณใช้ในโมดูลนี้เพื่อหลีกเลี่ยงค่าใช้จ่ายที่ไม่จําเป็น