Skip to main content

AWS ParallelCluster CustomActions


HeadNode.CustomActions

cluster-config.yaml
HeadNode:
CustomActions:
OnNodeStart: # OnNodeStart|OnNodeConfigured|OnNodeUpdated
Script: <script> # http://<script>|s3://<script>
Args:
- <arg>
# 여러 개의 스크립트를 순차적으로 실행해야 할 경우 아래와 같이 작성합니다.
# Sequence:
# - Script: <script>
# Args:
# - <arg>

Scheduling.SlurmQueues.CustomActions

cluster-config.yaml
Scheduling:
SlurmQueues:
- Name: <queue>
CustomActions:
OnNodeStart: # OnNodeStart|OnNodeConfigured
Script: <script> # http://<script>|s3://<script>
Args:
- <arg>
# 여러 개의 스크립트를 순차적으로 실행해야 할 경우 아래와 같이 작성합니다.
# Sequence:
# - Script: <script>
# Args:
# - <arg>

다중 사용자 지원(Multi-user support)

EFS, FSx 등 컴퓨트 노드가 접근 가능한 경로를 /shared라고 가정했을 때, 아래 명령어를 활용하여 /shared/userlistfile에 사용자 목록을 작성합니다.

echo "$USER,`id -u $USER`" >> /shared/userlistfile
/shared/userlistfile
hhk7734,1001

compute-node-on-node-configured.sh 스크립트에 아래 내용을 추가합니다.

compute-node-on-node-configured.sh
#!/bin/bash

. "/etc/parallelcluster/cfnconfig"

IFS=","

if [ "${cfn_node_type}" = "ComputeFleet" ]; then
while read USERNAME USERID
do
# -M do not create home since head node is exporting /homes via NFS
# -u to set UID to match what is set on the head node
if ! [ $(id -u $USERNAME 2>/dev/null || echo -1) -ge 0 ]; then
useradd -M -u $USERID $USERNAME
fi
done < "/shared/userlistfile"
fi