Menyesuaikan penginstalan perangkat lunak

Selesai

Templat Azure CycleCloud memfasilitasi pengaturan kluster HPC dengan mengabstraksi detail implementasi infrastruktur yang mendasar, memungkinkan Anda untuk fokus pada manajemen beban kerja. Namun, beban kerja tersebut biasanya memiliki beberapa dependensi terkait perangkat lunak yang memerlukan langkah penyesuaian tambahan. Untungnya, Azure CycleCloud juga menyediakan kerangka kerja untuk menerapkan langkah-langkah ini melalui dukungannya untuk tugas provisi dan manajemen konfigurasi yang diterapkan langsung ke node kluster.

Tujuan Anda mencakup kebutuhan untuk menyebarkan citra kustom dan menggunakan skrip konfigurasi yang dikembangkan secara internal yang telah digunakan di lingkungan HPC lokal Anda. Anda ingin menentukan cara menggunakan kemampuan Azure CycleCloud untuk mencapai tujuan ini.

Bagaimana cara mengimplementasikan manajemen konfigurasi dengan Azure CycleCloud?

Azure CycleCloud menawarkan tiga metode utama yang dapat Anda gabungkan untuk menyesuaikan sistem operasi dan perangkat lunak pada node kluster sesuai dengan kebutuhan atau preferensi Anda sendiri:

  • Gambar kustom
  • Proyek
  • Cloud-init

Bagaimana cara menggunakan citra kustom dengan Azure CycleCloud?

Azure CycleCloud mendukung node kluster yang menjalankan distribusi Linux paling umum, dan, tergantung pada penjadwal, Windows Server. Templat bawaan telah dikonfigurasi dengan default yang direkomendasikan, tetapi Anda bebas untuk memilih citra dari Azure Marketplace atau memprovisikan node berdasarkan citra kustom. Opsi terakhir mungkin lebih disukai jika Anda ingin meminimalkan penundaan yang terkait dengan penyiapan pasca-penyebaran sistem operasi dan dependensi tambahan beban kerja HPC Anda. Citra kustom mungkin juga diperlukan untuk memenuhi kebutuhan bisnis, keamanan, atau kepatuhan.

Gambar kustom memungkinkan Anda memiliki kontrol penuh atas perangkat lunak yang telah diinstal sebelumnya dan konfigurasi sistem operasi awal. Kelemahan utama citra kustom adalah overhead terkait upaya mempertahankan beberapa citra untuk memuat kombinasi berbeda dari aplikasi dan versinya, terutama dalam skenario pengembangan.

Bagaimana cara menggunakan proyek Azure CycleCloud untuk penginstalan perangkat lunak?

Proyek Azure CycleCloud adalah kumpulan file yang Anda referensikan saat menentukan konfigurasi node kluster melalui templat. Proyek memiliki struktur direktori sebagai berikut:

\project
      |- project.ini
      |- blobs
      |- templates
      |- specs
      |      | 
      |    default
      |      |- cluster-init
      |            |- scripts
      |            |- files
      |            |- tests
      |      | - chef
      |            |- site-cookbooks
      |            |- data_bag
      |            |- roles

File project.ini berisi metadata proyek yang mencakup nama, label, versi, dan jenis proyek. Jenis yang didukung mencakup penjadwal dan aplikasi. Yang pertama digunakan untuk menginstal dan menginisialisasi daemon penjadwal pada simpul kepala dan simpul komputasi, sementara yang terakhir mendefinisikan beban kerja kluster.

Direktori blob berisi blob proyek, seperti file biner untuk proyek sumber terbuka yang dapat didistribusikan ulang secara bebas dan blob pengguna yang harus dikecualikan dari distribusi ulang proyek karena batasan lisensi.

Direktori templat berisi templat, sementara direktori spesifikasi menghosting spesifikasi yang menentukan konfigurasi yang akan diterapkan ke node kluster target.

Catatan

Sebagai contoh, proyek Slurm berisi, minimal, dua spesifikasi: satu untuk simpul kepala penjadwal dan yang lainnya untuk simpul komputasi.

Dalam direktori spesifikasi, ada dua subdirektori bernama cluster-init dan Chef kustom. Cluster-init berisi skrip yang berjalan secara otomatis pada simpul target. File data mentah yang disalin ke simpul target, dan pengujian yang akan dijalankan ketika kluster dimulai dalam mode pengujian. Subdirektori Chef kustom berisi file khusus Chef termasuk file cookbook, data bag, dan definisi peran. Anda dapat menggunakan buku masak dan resep Chef untuk mengonfigurasi simpul. Spesifikasi Cluster-init memetakan peran dan buku masak Chef.

Catatan

Azure CycleCloud menggunakan Chef sebagai alat manajemen konfigurasi untuk menyiapkan dan mengonfigurasi setiap simpul. CycleCloud menggunakan Chef dalam mode mandiri yang tidak bergantung pada server Chef terpusat. Sebaliknya, semua cookbook yang ditujukan untuk node kluster terkelola diunduh dari loker selama fase boot sistem operasi. Pada titik itu, Chef memproses daftar resep yang ditentukan dalam spesifikasi cluster-init node yang secara efektif mengubah VM dasar menjadi node HPC yang berfungsi.

Untuk memprovisikan kluster berdasarkan proyek, Anda perlu mengunggah konten proyek ke loker Azure CycleCloud. Setiap kali node target dimulai, node target akan secara otomatis mengunduh file proyek dari loker dan juga memproses spesifikasi yang diperlukan.

Bagaimana cara menggunakan cloud-init dengan Azure CycleCloud?

Azure CycleCloud mendukung cloud-init sebagai cara mengonfigurasi node kluster selama fase boot sebelum spesifikasi terkait proyek diterapkan. Cloud-init memberikan metode yang mudah untuk mengatasi dependensi terkait infrastruktur atau perangkat lunak apa pun seperti mengonfigurasi pengaturan jaringan atau menerapkan pembaruan paket sistem operasi.

Meskipun Anda dapat menentukan konfigurasi cloud-init dengan menggunakan templat, Anda juga dapat menyelesaikannya langsung dari antarmuka grafis Azure CycleCloud. Saat membuat atau mengedit kluster, Anda akan menemukan pengaturan yang relevan pada tab berlabel Cloud-Init di mana Anda dapat memasukkan skrip untuk setiap jenis node.

Catatan

Karena cloud-init berjalan sebelum spesifikasi proyek CycleCloud, penjadwal dan konfigurasi yang diterapkan Azure CycleCloud ke node bisa saja menimpa perubahan yang dibuat melalui cloud-init. Jika Anda perlu memastikan bahwa perintah Anda berjalan setelah penjadwal diinstal, Anda harus menggunakan spesifikasi proyek Azure CycleCloud sebagai gantinya.