0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenOndemandをOCIのHPC Cluster環境にデプロイする

Last updated at Posted at 2025-07-02

はじめに

HPC(High-Performance Computing)環境では、従来からLinuxのCUIを中心にユーザーが利用をしてきました。一部の商用製品やHPCクラウドのSaaSではGUIベースで利用できる製品も存在しています。

本記事では、オープンソースでそのようなことが利用できるOpenOnDemandのインストール手順をご紹介いたします。インストールするベースの環境としてはOCIのHPC Cluster(Slurmクラスタ)上へのインストールをしていますが、同様なSlurmクラスタであれば同じ手順でインストールが可能であると思います。

OpenOndemandとは?

OpenOnDemand(https://openondemand.org/) は、ジョブスケジューラ(Slurm、PBS、LSF など)をバックエンドに持つ HPC クラスター向けのオープンソース Web ポータルです。ユーザーは Web ブラウザを通じて、以下のような対話的操作を行えます。

機能 内容
ジョブ管理 ジョブの投入、ステータス確認、キャンセルや再実行
ターミナルアクセス ブラウザ上で直接対話型シェルを起動
ファイルマネージャ データアップロード・ダウンロード、パーミッション操作
ログビューア 標準出力・標準エラーのリアルタイム閲覧
アプリケーションランチャー Matlab、Jupyter Notebookなどの GUI アプリケーション起動

これらの機能により、これまで CLI ベースでしか操作できなかったHPCクラスターに対し、エンドユーザーが直感的かつ安全にアクセスできる環境を提供します。

HPC Clusterとは?

HPC Clusterとは、OCI上でHPCワークロードの実行環境を簡単にデプロイできるTerraform+Ansibleによるスクリプトです。
OCIではResource ManagerというTerraform as a Serviceがあり、Webベースでこのスクリプトを簡単に展開することでき、ウィザード形式でデプロイができます。

デプロイ手順

1. HPC Clusterの構成

以下を参考に構成してください。

2. ログインノードにSSHアクセスする

HPC Clusterで構成されたログインノードにopcユーザーでSSHアクセスします

ssh opc@<Public IP>

3. インストールに必要なリポジトリを有効にする

sudo dnf install epel-release
sudo yum-config-manager --enable ol8_codeready_builder
sudo yum-config-manager --enable  ol8_developer_EPEL

4. 事前に必要なパッケージのインストール

sudo dnf -y module enable ruby:3.3 nodejs:20

5. Open OnDemand 4 をインストール

sudo dnf install -y https://yum.osc.edu/ondemand/4.0/ondemand-release-web-4.0-1.el8.noarch.rpm
sudo dnf install -y ondemand mod_authnz_pam
sudo systemctl enable --now httpd

6. Apache httpd の PAM 認証モジュールを有効化する

sudo vi /etc/httpd/conf.modules.d/55-authnz_pam.conf
# LoadModule authnz_pam_module modules/mod_authnz_pam.so
↓以下に修正
LoadModule authnz_pam_module modules/mod_authnz_pam.so

7. 自己署名 TLS 証明書を作成

PRIVATE_IP="<ログインノードのPrivate IP>"
sudo openssl req -new -newkey rsa:4096 -nodes -x509 -sha256 -days 825 \
  -keyout  /etc/pki/tls/private/ood-ip.key \
  -out     /etc/pki/tls/certs/ood-ip.crt \
  -subj "/CN=${IP}" \
  -addext "subjectAltName = IP:${PRIVATE_IP}"

8. OOD ホスト自身の CA 信頼ストアに追加

sudo cp /etc/pki/tls/certs/ood-self.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust extract

9. Apache/OOD ポータル設定

注意: <ログインノードのPublic IP>を置き換えて実行する。

sudo mkdir -p /etc/ood/config

cat <<'EOF' | sudo tee /etc/ood/config/ood_portal.yml
servername: "<ログインノードのPublic IP>"


ssl:
  - 'SSLCertificateFile "/etc/pki/tls/certs/ood-ip.crt"'
  - 'SSLCertificateKeyFile "/etc/pki/tls/private/ood-ip.key"'

auth:
  - 'AuthType Basic'
  - 'AuthName "Open OnDemand"'
  - 'AuthBasicProvider PAM'
  - 'AuthPAMService ood'
  - 'Require valid-user'
EOF

sudo cp /etc/pam.d/sshd /etc/pam.d/ood

sudo /opt/ood/ood-portal-generator/sbin/update_ood_portal
sudo systemctl enable --now httpd

10.Slurm クラスタ定義

注意: <ログインノードのPrivate IP>を置き換えて実行する。

sudo mkdir -p /etc/ood/config/clusters.d
cat <<'EOF' | sudo tee /etc/ood/config/clusters.d/myslurm.yml
---
v2:
  metadata:
    title: "OCI HPC Cluster"
  login:
    host: "<ログインノードのPrivate IP>"
  job:
    adapter: "slurm"
    bin: "/usr/bin"
    conf: "/etc/slurm/slurm.conf"
    copy_environment: false
EOF

11.ポータルにログインするユーザーの作成

HPC ClusterではLDAPサーバがセットアップされています。
利用ユーザーをLDAPに登録します。

12. VCNのSecurity Listを修正

ログインノードがいるSubnetのSecurity Listに443ポートからの接続許可を追加します。

Source CIDRは例では0.0.0.0/0(すべてのIPからの接続を許可)していますが、状況に応じて正しく設定してください。

image.png

13. ログイン確認

ブラウザで以下のようにアクセスします。

https://<ログインノードのPublic IP>

以下のような画面になりますが、画面下部の132.145.xx.xxにアクセスする(安全ではありません)をクリックします。
image.png

認証のポップアップが表示されるので、作成したLDAPのユーザー名とパスワードを入力します。
image.png

正常にログインできると以下のような画面が表示されます。
image.png

最後に

本記事で紹介した手順により、OCI上のHPCクラスターにOpen OnDemandを正常にインストールし、Slurmジョブの対話的操作やファイル管理機能をWebブラウザから利用できるようになりました。これにより、エンドユーザーはログインシェルを意識せずにジョブを投入・モニタリングできるほか、チーム内での共有やドキュメント化も容易になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?