すべてのプロダクト
Search
ドキュメントセンター

Elastic High Performance Computing:Elastic High Performance Computing: インストールスクリプトの設定

最終更新日:Apr 01, 2026

インストールスクリプトは、クラスターが完全に初期化された後 (すべてのノードが起動し、選択したソフトウェアがインストールされた後) に、すべてのクラスターノードで自動的に実行されます。このスクリプトを使用すると、手動での介入なしに追加のソフトウェアをインストールしたり、ソフトウェア環境をデプロイしたりできます。

利用シーン

  • パブリックイメージからクラスターを作成した後、ソフトウェアをインストールするか、ソフトウェア環境をセットアップします。

  • カスタムイメージからクラスターを作成した後、カスタムスクリプトを実行してソフトウェア環境をデプロイします。

前提条件

開始する前に、以下が準備できていることを確認してください:

  • E-HPC クラスター (または作成中のクラスター)

  • Bash や Python など、Linux シェルと互換性のある言語で記述されたスクリプト

インストールスクリプトの設定

[クラスタの作成]」ページで、ソフトウェア設定 ステップに移動し、「[詳細設定]」セクションを見つけて、インストールスクリプトを追加します。

スクリプトは、Linux シェルでサポートされている言語で記述する必要があります。最初の行では、シェバンを使用してインタープリターを宣言する必要があります。たとえば、Bash スクリプトは次のように始まります:

#!/bin/bash

スクリプトの例

以下のスクリプトは、クラスターの環境変数、メタデータ、およびノードのロールを、/root ディレクトリ内のファイルにログに記録します。このスクリプトでは、条件付きブロックを使用して、各ノードタイプで異なるロジックを実行します。

#!/bin/bash

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


## 利用可能なすべての環境変数を表示
printenv | tee /root/env.log

## クラスターのメタデータ
echo "ClusterId: ${ClusterId}, HOSTNAME: ${HOSTNAME}" | tee /root/cluster.log
echo "AccountType: ${AccountType}, SchedulerType: ${SchedulerType}" | tee -a /root/cluster.log

## 現在のマシンのロール
echo "${Role}" | tee /root/role.log

if [ "${isLoginNode}" == "true" ]; then
  ## ログインノードで作業を実行
  echo "This is login node" | tee -a /root/role.log
  exit $?
fi

if [ "${isAccountManager}" == "true" ]; then
  ## NIS/LDAP マスターで作業を実行
  echo "This is account manager" | tee -a /root/role.log
  exit $?
fi

if [ "${isResourceManager}" == "true" ]; then
  ## Slurm/PBS マスターで作業を実行
  echo "This is scheduler" | tee -a /root/role.log
  exit $?
fi

if [ "${isComputeNode}" == "true" ]; then
  ## コンピュートノードで作業を実行
  echo "This is compute node" | tee -a /root/role.log
  exit $?
fi

このスクリプトをダウンロードするには、「サンプルインストールスクリプト」をご参照ください。

環境変数

E-HPC は、スクリプトを実行する前に各ノードに環境変数を挿入します。これらの変数を使用して、クラスター、現在のノード、およびそのロールを識別し、異なるノードタイプで異なるロジックを実行できます。

クラスターとノードの ID

変数説明
ClusterIdehpc-hz-AQoy7J****クラスターの ID。
HOSTNAMEi-bp133vs16yb3kqdj****現在のノードのホスト名。
AccountTypeNISドメインアカウントのタイプ。有効値: NISLDAP
SchedulerTypePBSスケジューラのタイプ。有効値: PBSSLURMGRIDENGINE

ノードのロール

Role 変数は、現在のノードが果たすロールを示します。ノードが複数のロールを持つ場合、その値にはカンマ (,) で区切られた複数のロール名が含まれます。

変数有効値
RoleAccountManagerAccountManager — プライマリドメインアカウントの管理ノードAccountManagerBackup — セカンダリドメインアカウントの管理ノードResourceManager — プライマリスケジューリングノードResourceManagerBackup — セカンダリスケジューリングノードCompute — コンピュートノードLoginNode — ログインノード

素早い条件チェックには、Role の解析を行う代わりに、以下の boolean 変数を使用してください。

ブール型のノードタイプフラグ

変数説明
isLoginNodetrueノードがログインノードであるかどうか。有効値: truefalse
isAccountManagertrueノードがプライマリドメインサーバーであるかどうか。有効値: truefalse
isAccountManagerBackuptrueノードがセカンダリドメインサーバーであるかどうか。有効値: truefalse
isResourceManagertrueノードがプライマリスケジューラであるかどうか。有効値: truefalse
isResourceManagerBackuptrueノードがセカンダリスケジューラであるかどうか。有効値: truefalse
isComputeNodetrueノードがコンピュートノードであるかどうか。有効値: truefalse

ネットワークアドレス

変数説明
ResourceManagerIp192.168..プライマリスケジューリングノードのプライベート IP アドレス。
ResourceManagerHostscheduler000プライマリスケジューリングノードのホスト名。
AccountManagerIp192.168..プライマリドメインアカウントの管理ノードのプライベート IP アドレス。
AccountManagerHostaccount000プライマリドメインアカウントの管理ノードのホスト名。

以下の変数は、高可用性が有効になっている場合に設定されます。

変数説明
ResourceManagerBackupIp192.168..セカンダリスケジューリングノードのプライベート IP アドレス (高可用性が有効な場合)。
ResourceManagerBackupHostscheduler001セカンダリスケジューリングノードのホスト名 (高可用性が有効な場合)。
AccountManagerBackupIp192.168..セカンダリドメインアカウントの管理ノードのプライベート IP アドレス (高可用性が有効な場合)。
AccountManagerBackupHostaccount001セカンダリドメインアカウントの管理ノードのホスト名 (高可用性が有効な場合)。

失敗シナリオ

以下の状況では、スクリプトは実行されません:

  • クラスター作成の失敗:クラスターの作成に失敗した場合、どのノードでもスクリプトは実行されません。

  • 単一ノードが実行されていない:正常なクラスター内の特定のコンピュートノードが期待どおりに実行されていない場合、そのノードではスクリプトは実行されません。

  • ゼロ以外の終了コード: スクリプトが 0 以外のコードで終了した場合、実行は失敗と見なされます。

ゼロ以外の終了コードによる障害を調査するには、E-HPC コンソールの [操作ログ] ページでアラート情報を確認します。詳細については、クラスターにログインし、影響を受けるノードの /root にあるログファイルを確認してください。