All Products
Search
Document Center

Elastic High Performance Computing:Elastic High Performance Computing: Konfigurasikan skrip instalasi

Last Updated:Apr 01, 2026

Skrip instalasi dijalankan secara otomatis pada semua node kluster setelah kluster sepenuhnya diinisialisasi—yaitu setelah semua node dinyalakan dan perangkat lunak yang dipilih telah diinstal. Gunakan skrip ini untuk menginstal perangkat lunak tambahan atau menerapkan lingkungan perangkat lunak tanpa intervensi manual.

Kasus penggunaan

  • Setelah membuat kluster dari gambar publik, instal perangkat lunak atau siapkan lingkungan perangkat lunak.

  • Setelah membuat kluster dari gambar kustom, jalankan skrip kustom untuk menerapkan lingkungan perangkat lunak.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster E-HPC (atau kluster yang sedang dalam proses pembuatan)

  • Skrip yang ditulis dalam bahasa yang kompatibel dengan shell Linux (seperti Bash atau Python)

Konfigurasikan skrip instalasi

Pada halaman Create Cluster, navigasikan ke langkah Software Configurations dan temukan bagian Advanced Configurations untuk menambahkan skrip instalasi Anda.

Skrip harus ditulis dalam bahasa yang didukung oleh shell Linux. Baris pertama harus mendeklarasikan interpreter dengan shebang. Sebagai contoh, skrip Bash dimulai dengan:

#!/bin/bash

Contoh skrip

Skrip berikut mencatat variabel lingkungan kluster, metadata, dan role node ke file dalam direktori /root. Skrip ini menggunakan blok kondisional untuk menjalankan logika berbeda pada setiap tipe node.

#!/bin/bash

echo "call $0 with param: $@" | tee /root/command.log


## tampilkan semua variabel lingkungan yang tersedia
printenv | tee /root/env.log

## Metadata kluster
echo "ClusterId: ${ClusterId}, HOSTNAME: ${HOSTNAME}" | tee /root/cluster.log
echo "AccountType: ${AccountType}, SchedulerType: ${SchedulerType}" | tee -a /root/cluster.log

## Role mesin saat ini
echo "${Role}" | tee /root/role.log

if [ "${isLoginNode}" == "true" ]; then
  ## Lakukan pekerjaan Anda pada login node
  echo "This is login node" | tee -a /root/role.log
  exit $?
fi

if [ "${isAccountManager}" == "true" ]; then
  ## Lakukan pekerjaan Anda pada master NIS/LDAP
  echo "This is account manager" | tee -a /root/role.log
  exit $?
fi

if [ "${isResourceManager}" == "true" ]; then
  ## Lakukan pekerjaan Anda pada master Slurm/PBS
  echo "This is scheduler" | tee -a /root/role.log
  exit $?
fi

if [ "${isComputeNode}" == "true" ]; then
  ## Lakukan pekerjaan Anda pada compute node
  echo "This is compute node" | tee -a /root/role.log
  exit $?
fi

Untuk mengunduh skrip ini, lihat contoh skrip instalasi.

Variabel lingkungan

E-HPC menyuntikkan variabel lingkungan ke setiap node sebelum menjalankan skrip. Gunakan variabel ini untuk mengidentifikasi kluster, node saat ini, dan perannya—sehingga Anda dapat menjalankan logika berbeda pada tipe node yang berbeda.

Identitas kluster dan node

VariableExampleDescription
ClusterIdehpc-hz-AQoy7J****ID kluster.
HOSTNAMEi-bp133vs16yb3kqdj****Hostname node saat ini.
AccountTypeNISTipe akun domain. Nilai yang valid: NIS, LDAP.
SchedulerTypePBSTipe penjadwal. Nilai yang valid: PBS, SLURM, GRIDENGINE.

Role node

Variabel Role mengidentifikasi peran yang dimainkan oleh node saat ini. Satu node dapat memiliki beberapa role; jika demikian, nilainya berisi beberapa nama role yang dipisahkan koma (,).

VariableExampleValid values
RoleAccountManagerAccountManager — node manajemen akun domain utama<br>AccountManagerBackup — node manajemen akun domain sekunder<br>ResourceManager — node penjadwalan utama<br>ResourceManagerBackup — node penjadwalan sekunder<br>Compute — node komputasi<br>LoginNode — node logon

Untuk pemeriksaan kondisional cepat, gunakan variabel boolean di bawah ini alih-alih melakukan penguraian terhadap Role.

Flag tipe node boolean

VariableExampleDescription
isLoginNodetrueApakah node tersebut merupakan node logon. Nilai yang valid: true, false.
isAccountManagertrueApakah node tersebut merupakan server domain utama. Nilai yang valid: true, false.
isAccountManagerBackuptrueApakah node tersebut merupakan server domain sekunder. Nilai yang valid: true, false.
isResourceManagertrueApakah node tersebut merupakan penjadwal utama. Nilai yang valid: true, false.
isResourceManagerBackuptrueApakah node tersebut merupakan penjadwal sekunder. Nilai yang valid: true, false.
isComputeNodetrueApakah node tersebut merupakan node komputasi. Nilai yang valid: true, false.

Alamat jaringan

VariableExampleDescription
ResourceManagerIp192.168..Alamat IP pribadi node penjadwalan utama.
ResourceManagerHostscheduler000Hostname node penjadwalan utama.
AccountManagerIp192.168..Alamat IP pribadi node manajemen akun domain utama.
AccountManagerHostaccount000Hostname node manajemen akun domain utama.

Variabel berikut diisi ketika ketersediaan tinggi diaktifkan.

VariableExampleDescription
ResourceManagerBackupIp192.168..Alamat IP pribadi node penjadwalan sekunder (Ketersediaan tinggi diaktifkan).
ResourceManagerBackupHostscheduler001Hostname node penjadwalan sekunder (Ketersediaan tinggi diaktifkan).
AccountManagerBackupIp192.168..Alamat IP pribadi node manajemen akun domain sekunder (Ketersediaan tinggi diaktifkan).
AccountManagerBackupHostaccount001Hostname node manajemen akun domain sekunder (Ketersediaan tinggi diaktifkan).

Skenario kegagalan

Skrip tidak dijalankan dalam situasi berikut:

  • Pembuatan kluster gagal: Jika pembuatan kluster gagal, skrip tidak dieksekusi pada node mana pun.

  • Satu node tidak berjalan: Jika node komputasi tertentu dalam kluster yang sehat tidak berjalan seperti yang diharapkan, skrip tidak dieksekusi pada node tersebut.

  • Kode keluar bukan nol: Jika skrip keluar dengan kode selain 0, eksekusi dianggap gagal.

Untuk menyelidiki kegagalan akibat kode keluar bukan nol, periksa halaman Operation Log di Konsol E-HPC untuk informasi peringatan. Untuk detail lebih lanjut, masuk ke kluster dan periksa file log di /root pada node yang terdampak.