1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Autoscaling時の計算ノードセットアップに独自の処理を追加する

Last updated at Posted at 2025-07-16

本ページは OCI: HPC Cluster のサブページになります。

はじめに

OCIのHPC ClusterではAutoscalingを利用することでSlurmジョブスケジューラーと連動してOCIのコンピュートインスタンスを起動/削除することができます。これによりオンデマンドなHPC利用を可能としています。

Autoscalingでは計算ノードが起動したらSlurmのセットアップやNFSマウントなどのOSの設定をAnsibleで行っています。

本記事ではそのAnsibleを利用して、Autoscalingで計算ノードが起動するときに特定の処理を行うための手順を解説します。
例えば以下のような場合です。

  • 特定のOSパッケージをインストールしたい
  • 特定のファイルの修正をしたい
  • など

手順

ここでは計算ノードにOSパッケージであるlibnsl.so.1を追加でインストールする手順をご紹介します。

ログインノードにSSHでログインし、new_nodes.ymlファイルをバックアップします。

cd /opt/oci-hpc/playbooks
cp new_nodes.yml new_nodes.yml.$(date +%Y%m%d)
vi new_nodes.yml

37行目に- custom-taskを追加し、保存(:wq)します。(必要に応じてviの:set numberで行数を出しましょう)。

※本ファイルはymlファイルであるため、インデント(空白の数)で階層を表現します。誤ったインデントは構文エラーとなり、Autoscalingの失敗の原因となるため、正確な記載をお願いします。

new_nodes.yml
 20 - hosts: compute
 21   become: true
 22   vars:
 23     destroy: false
 24   gather_facts: true
 25   roles:
 26     - oci-cloud-agent
 27     - privilege_group
 28     - oci-legacy
 29     - packages
 30     - firewall
 31     - oci-hostname
 32     - ssh
 33     - limits
 34     - mpi-hostfiles
 35     - boot-volume
 36     - mpivars
 37     - custom-task

続いて以下のディレクトリ作成とmain.ymlファイルを作成します。

mkdir -p /opt/oci-hpc/playbooks/roles/custom-task/tasks
vi /opt/oci-hpc/playbooks/roles/custom-task/tasks/main.yml

HPC Clusterではパッケージを確実にインストールするためのsafe_yumという仕組みがあるのでこれを利用した記述とします。以下のようにファイルに追加して保存(:wq)します。

※本ファイルはymlファイルであるため、インデント(空白の数)で階層を表現します。誤ったインデントは構文エラーとなり、Autoscalingの失敗の原因となるため、正確な記載をお願いします。

package_repo:で対象のリポジトリ指定が必要なのでご注意ください。

/opt/oci-hpc/playbooks/roles/custom-task/tasks/main.yml
---
- name: install libnsl packages RedHat
  vars:
    package_name:
      - libnsl.so.1
    package_repo:
      - ol7_latest
    disable_gpg_check_var: True
    package_state: latest
  include_role:
    name: safe_yum
  when: ansible_os_family == 'RedHat'

以上で完了です。

ジョブを投入し、起動してくる計算ノードに意図した設定が反映されているかをご確認ください。

なお、設定を追加して最初の動作確認時には以下リンクの計算ノード作成・削除ログを確認しながら行うことをお勧めいたします。クラスタが正常起動しない場合は、ジョブをキャンセルし、エラー内容から設定を見返してください。
https://qiita.com/itokazu/items/63d2e3cebdcdda5afce0#%E3%83%AD%E3%82%B0

最後に

今回は例としてパッケージの追加について記載をいたしましたが、main.yml自体はAnsibleのファイルであるため、そのほかにもさまざまな設定や変更を行うことが可能です。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?