自定义引导操作 - AWS ParallelCluster

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

自定义引导操作

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

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

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

注意

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

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

警告

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

警告

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

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

注意

如果您为集群配置DirectoryServiceHeadNodeCustomActions//OnNodeStart脚本,则会在集群运行脚本sssd之前 AWS ParallelCluster 配置DirectoryService并重新启动。OnNodeStart

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

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

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

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

注意

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

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

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

注意

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