Latihan - Membuat skrip cloud-init untuk digunakan dengan Azure CycleCloud

Selesai

Saat memprovisikan node untuk kluster, Anda mungkin ingin dapat melakukan tugas konfigurasi kustom selama proses boot sistem operasi sebelum perubahan yang dibuat oleh penjadwal diterapkan. Tugas-tugas ini dapat mencakup, misalnya, memperbarui variabel lingkungan jalur, mengonfigurasi pengaturan resolusi nama Sistem Nama Domain (DNS), atau mengikat simpul ke domain Microsoft Entra Domain Services (AD DS).

Untuk menerapkan fungsionalitas ini, Anda memutuskan untuk menjelajahi penggunaan cloud-init di kluster Azure CycleCloud dan mengujinya dengan skrip Bash sederhana yang memodifikasi konten file lokal pada setiap simpul. Anda ingin memvalidasi hasil dengan menyambungkannya ke node kluster dan meninjau konten file yang sudah diubah.

Catatan

Saat membuat skrip cloud-init, Anda dapat menggunakan metode pembuatan skrip atau konfigurasi apa pun yang dapat dikenali dan diproses oleh sistem operasi pada node target seperti pembuatan skrip shell tradisional, Python, dan YAML.

Pada latihan ini, Anda akan melakukan tugas-tugas berikut:

  • Tugas 1: Mengonfigurasi autentikasi berbasis SSH ke node kluster Azure CycleCloud
  • Tugas 2: Menambahkan skrip cloud-init ke node kluster
  • Tugas 3: Memverifikasi fungsionalitas cloud-init pada node penjadwal
  • Tugas 4: Memverifikasi fungsionalitas cloud-init pada node komputasi
  • Tugas 5: Membersihkan lingkungan latihan

Catatan

Pastikan Anda berhasil menyelesaikan latihan sebelumnya sebelum memulai latihan ini.

Tugas 1: Mengonfigurasi autentikasi berbasis SSH ke node kluster Azure CycleCloud

Untuk memvalidasi eksekusi skrip cloud-init, Anda akan terhubung ke node kluster dengan Azure CycleCloud CLI dari Azure Cloud Shell. Koneksi ini bergantung pada autentikasi berbasis kunci SSH, jadi Anda harus mengunggah kunci privat yang sesuai dengan kunci publik yang didistribusikan ke node kluster ke direktori beranda Azure Cloud Shell.

  1. Navigasi ke portal Azure, dan saat diminta, autentikasi dengan akun Microsoft atau akun Microsoft Entra yang memiliki peran Kontributor atau Pemilik dalam langganan Azure yang Anda gunakan dalam modul ini.

  2. Dari portal Microsoft Azure, buka Cloud Shell dengan memilih ikon Cloud Shell di bar alat yang berada di samping kotak pencarian dan pastikan Anda menjalankan sesi Bash.

  3. Di panel Azure Cloud Shell , di toolbar panel, pilih ikon keempat yang menampilkan halaman dengan sepasang panah vertikal yang menunjuk ke arah yang berlawanan. Lalu, pilih RDP pada menu turun.

  4. Dalam kotak dialog Buka, cari lokasi file .pem yang berisi kunci privat dan pilih Buka.

  5. Jalankan perintah berikut di Cloud Shell untuk memindahkan file .pem yang diunggah ke lokasi yang benar dan mengonfigurasi izin tingkat file yang diperlukan (ganti <private_key.pem> tempat penampung dengan nama file .pem):

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

Tugas 2: Menambahkan skrip cloud-init ke node kluster

Pilihan untuk menambahkan skrip ke node kluster tersedia langsung dari antarmuka grafis Azure CycleCloud. Anda akan menggunakannya untuk menetapkan skrip cloud-init yang sama ke penjadwal dan simpul komputasi dan memverifikasi fungsionalitasnya. Skrip menambahkan entri 10.10.10.10 cc.contoso.com ke file /etc/hosts.

  1. Jika Anda belum tersambung ke aplikasi web Azure CycleCloud, buka jendela browser lain dan buka URL https:// <IP_address>. Jika diminta, konfirmasi bahwa Anda ingin melanjutkan.

  2. Jika Anda diminta untuk mengautentikasi, masuk dengan memberikan kredensial akun pengguna aplikasi Azure CycleCloud Anda dengan peran Administrator.

  3. Pada antarmuka grafis Azure CycleCloud, masuk ke halaman Kluster. Dalam daftar kluster, pilih entri contoso-custom-slurm-lab-cluster , lalu pilih Edit.

  4. Di jendela pop-up Edit contoso-custom-slurm-lab-cluster, pilih entri Cloud-init, dan pada tab penjadwal di bagian konfigurasi Cloud-init, masukkan skrip berikut:

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

    Screenshot of the Cloud-init tab of the Edit contoso-custom-slurm-lab-cluster pop-up window in the Azure CycleCloud web application.

  5. Di jendela pop-up yang sama, dengan entri Cloud-init dipilih, pilih masing-masing tab yang tersisa (termasuk cuda, hpc, dan htc) dan masukkan skrip yang sama. Pilih Simpan.

Tugas 3: Memverifikasi fungsionalitas cloud-init pada node penjadwal

Untuk memverifikasi fungsionalitas cloud-init pada node penjadwal, Anda akan memulai kluster. Memulai kluster akan memicu provisi node penjadwal. Setelah node berjalan, Anda dapat menghubungkannya dari Azure Cloud Shell dan memverifikasi bahwa file /etc/hosts berisi entri 10.10.10.10 www.contoso.com.

  1. Di jendela browser yang menampilkan aplikasi web Azure CycleCloud, pilih tautan Mulai di halaman contoso-custom-slurm-lab-cluster . Ketika diminta untuk mengonfirmasi, pilih OK.

    Catatan

    Jika kluster sudah berjalan, Anda harus mengakhiri dan memulai ulang untuk menerapkan konfigurasi yang diperbarui, jika tidak, konfigurasi tersebut tidak akan terlihat di langkah-langkah berikutnya.

  2. Dalam daftar simpul, pilih entri Penjadwal dan pantau statusnya di panel Detail , menunggu hingga berubah dari Memperoleh ke Siap.

    Catatan

    Proses ini mungkin perlu waktu sekitar tiga menit.

  3. Pada panel Detail, pilih Koneksi. Di jendela sembul Sambungkan ke node: penjadwal, di bagian Menggunakan CycleCloud CLI, pilih entri yang berisi perintah yang mengizinkan Anda untuk tersambung ke node penjadwal dan pilih Tutup:

    Screenshot of the Connect to node: scheduler pop-up window in the Azure CycleCloud web application.

    Catatan

    Perintah harus memiliki format cyclecloud connect scheduler -c contoso-custom-slurm-lab-cluster

  4. Beralih ke jendela browser web dengan panel Cloud Shell dan jalankan perintah yang Anda salin di langkah sebelumnya.

    Catatan

    Perintah harus menghasilkan output dalam format berikut:

    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. Saat Anda terhubung ke node penjadwal, jalankan perintah berikut untuk memverifikasi bahwa file /etc/hosts berisi entri 10.10.10.10 www.contoso.com:

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

    Catatan

    Perintah harus menghasilkan output dalam format berikut:

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

Tugas 4: Memverifikasi fungsionalitas cloud-init pada node komputasi

Sekarang, Anda akan mengulangi urutan langkah yang setara untuk memverifikasi fungsionalitas cloud-init pada simpul komputasi.

Penting

Sebelum Anda dapat mengimplementasikan prosedur yang setara untuk memverifikasi fungsionalitas cloud-init pada node komputasi, Anda perlu menghapus dan mengalokasikan ulang set skala mesin virtual yang sesuai. Langkah ini khusus untuk kluster berbasis Slurm karena, dalam hal ini, integrasi skala otomatis penjadwal mengharuskan Azure CycleCloud untuk mengisi simpul komputasi sebelumnya. Sebagai hasilnya, konfigurasi cloud-init yang Anda terapkan sebelumnya dalam latihan ini tidak akan memengaruhi node yang sudah ada.

  1. Saat terhubung ke simpul penjadwal, jalankan perintah berikut di Cloud Shell untuk menghapus dan merealokasi simpul komputasi di kluster Azure CycleCloud Anda dan hentikan koneksi ke simpul penjadwal:

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

    Catatan

    Anda akan disajikan dengan pesan yang menyatakan Mencoba menghapus simpul berikut diikuti dengan penskalakan ulang kluster selesai setelah langkah ini selesai.

  2. Di komputer Anda, beralihlah ke jendela browser web yang menampilkan halaman contoso-custom-slurm-lab-cluster dari aplikasi web Azure CycleCloud. Pada tab Simpul , pilih baris htc , dan pada panel Detail , pilih entri htc-1 , lalu pilih header tab Tindakan . Di menu drop-down, pilih Mulai, dan pilih OK saat diminta untuk mengonfirmasi.

    Screenshot of the Actions menu on the contoso-custom-slurm-lab-cluster page in the Azure CycleCloud web application.

  3. Pada panel Detail , pantau simpul yang baru dimulai dan tunggu hingga statusnya berubah dari Memperoleh menjadi Siap.

    Catatan

    Proses ini mungkin perlu waktu sekitar tiga menit.

  4. Pada panel Detail, pilih Koneksi. Di jendela pop-up Koneksi ke node: htc-1, pilih entri di bagian Menggunakan CycleCloud CLI yang berisi perintah yang memungkinkan Anda terhubung ke simpul penjadwal dan pilih Tutup:

    Screenshot of the Connect to node: htc-1 pop-up window in the Azure CycleCloud web application.

    Catatan

    Perintah harus memiliki format cyclecloud connect htc-1 -c contoso-custom-slurm-lab-cluster.

  5. Beralih ke panel Cloud Shell dan jalankan perintah yang Anda salin di langkah sebelumnya.

    Catatan

    Perintah harus menghasilkan output dalam format berikut:

    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. Saat Anda terhubung ke node htc-1, jalankan perintah berikut untuk memverifikasi bahwa file /etc/hosts berisi entri 10.10.10.10 www.contoso.com:

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

    Catatan

    Anda harus menghapus semua sumber daya yang Anda sebarkan dalam latihan modul ini dan sebelumnya setelah Mencapai titik ini. Ini memungkinkan Anda menghindari biaya yang terkait dengan pemeliharaan sumber daya ini terhadap langganan Azure Anda.

Tugas 5: Menghapus lingkungan lab

Pengujian kustomisasi kluster dengan menggunakan aplikasi Azure CycleCloud telah selesai. Untuk menghindari biaya yang tidak perlu terkait penggunaan sumber daya Azure, sekarang Anda akan menghentikan kluster dan menghapus semua sumber daya yang Anda provisikan di seluruh latihan pada modul ini.

  1. Di browser web yang menampilkan antarmuka grafis aplikasi web Azure CycleCloud, pilih tautan Hentikan pada halaman contoso-custom-slurm-lab-cluster , dan ketika diminta untuk mengonfirmasi, pilih OK.

  2. Memantau proses pemberhentian.

    Catatan

    Proses ini melibatkan pembatalan penyediaan Azure VM yang melayani peran node utama kluster. Proses ini mungkin memakan waktu sekitar lima menit.

    Catatan

    Untuk menghapus seluruh sumber daya lain yang Anda provisikan di lab ini, Anda akan menghapus grup sumber daya yang menghosting kluster.

  3. Di portal Microsoft Azure, buka panel grup sumber daya yang menghosting kluster dan pilih entri Hapus grup sumber daya di bar alat. Dalam kotak teks Masukkan nama grup sumber daya untuk mengonfirmasi penghapusan , masukkan nama grup sumber daya dan pilih Hapus. Pilih Hapus lagi untuk mengonfirmasi penghapusan.

    Catatan

    Mungkin ada grup sumber daya tambahan yang terkait dengan sumber daya Slurm Anda. Untuk menghindari biaya tambahan, pastikan untuk menghapus semua grup sumber daya terkait Slurm ini dan sumber dayanya.

Selamat! Anda telah berhasil menyelesaikan latihan ketiga dan yang terakhir dari modul ini. Dalam latihan ini, Anda telah menjelajahi penggunaan cloud-init di kluster Azure CycleCloud dan mengujinya dengan skrip Bash sederhana yang memodifikasi konten file lokal di setiap node. Anda memvalidasi hasilnya dengan menyambungkan ke node kluster dan meninjau konten file yang dimodifikasi. Setelah itu, Anda menghentikan kluster dan menghapus semua sumber daya kluster yang Anda gunakan dalam modul ini untuk menghindari biaya yang tidak perlu.