自定义引导操作 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

自定义引导操作

如果定义 HeadNode/CustomActions/OnNodeStart 配置设置,则在节点启动后,Amazon ParallelCluster 便可立即运行任意代码。如果定义 HeadNode/CustomActions/OnNodeConfigured 配置设置,则 Amazon ParallelCluster 会在节点配置正确完成后运行该代码。

从 Amazon ParallelCluster 版本 3.4.0 开始,如果定义了 HeadNode/CustomActions/OnNodeUpdated 配置设置,则可以在头节点更新后运行该代码。

在大多数情况下,此代码存储在 Amazon Simple Storage Service (Amazon S3) 中并通过 HTTPS 连接进行访问。此代码将以 root 用户身份运行,可以采用集群操作系统支持的任何脚本语言。代码通常采用 BashPython 语言。

注意

从 Amazon ParallelCluster 版本 3.7.0 开始,集群 Imds/ImdsSupport 设置的默认值为 v2.0

在创建要升级到 3.7.0 及更高版本的新集群时,请更新您的自定义引导操作脚本以便与 IMDSv2 兼容,或者在集群配置文件中将 Imds/ImdsSupport 设置为 v1.0

警告

按照责任共担模式所述,您负责配置自定义脚本和参数。验证您的自定义引导脚本和参数是否来自您信任的可以完全访问集群节点的来源。

警告

Amazon ParallelCluster 不支持使用通过 /etc/parallelcluster/cfnconfig 文件提供的内部变量。此文件可能会在未来版本中删除。

在开始任何节点部署引导操作(例如配置 NAT、Amazon Elastic Block Store (Amazon EBS) 或调度器)之前,将会调用 OnNodeStart 操作。OnNodeStart 引导操作可能包括修改存储、添加额外的用户和添加程序包。

注意

如果您为集群配置 DirectoryServiceHeadNode/CustomActions/OnNodeStart 脚本,则 Amazon ParallelCluster 会在运行 OnNodeStart 脚本之前配置 DirectoryService 并重启 sssd

节点引导过程完成后将会调用 OnNodeConfigured 操作。OnNodeConfigured 操作是实例被视为完全配置并已完成之前执行的最后操作。某些 OnNodeConfigured 操作包括更改调度器设置、修改存储和修改程序包。您可以通过在配置期间指定参数,将参数传递到脚本。

在头节点更新完成并且调度器和共享存储与最新的集群配置更改保持一致之后,将会调用 OnNodeUpdated 操作。

OnNodeStartOnNodeConfigured 自定义操作成功时,将使用退出代码零 (0) 来表示成功。任何其他退出代码都表示实例引导失败。

OnNodeUpdated 自定义操作成功时,将使用退出代码零 (0) 来表示成功。任何其他退出代码都表示更新失败。

注意

如果配置 OnNodeUpdated,则在更新失败时,必须将 OnNodeUpdated 操作手动恢复到先前的状态。

如果 OnNodeUpdated 自定义操作失败,则更新将回滚到之前的状态。但 OnNodeUpdated 操作仅在更新时运行,而不是在堆栈回滚时运行。

您可以在 HeadNode/CustomActionsScheduling/SlurmQueues/CustomActions 配置部分中为头节点和每个队列指定不同的脚本。OnNodeUpdated 只能在 HeadNode 部分中进行配置。

注意

在 Amazon ParallelCluster 版本 3.0 之前,无法为头节点和计算节点指定不同的脚本。请参阅 从 Amazon ParallelCluster 2.x 迁移到 3.x