本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义引导操作
如果定义 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
用户身份运行,可以采用集群操作系统支持的任何脚本语言。代码通常采用 Bash 或 Python 语言。
注意
从 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
引导操作可能包括修改存储、添加额外的用户和添加程序包。
注意
如果您为集群配置 DirectoryService 和 HeadNode/CustomActions/OnNodeStart 脚本,则 Amazon ParallelCluster 会在运行 OnNodeStart
脚本之前配置 DirectoryService
并重启 sssd
。
节点引导过程完成后将会调用 OnNodeConfigured
操作。OnNodeConfigured
操作是实例被视为完全配置并已完成之前执行的最后操作。某些 OnNodeConfigured
操作包括更改调度器设置、修改存储和修改程序包。您可以通过在配置期间指定参数,将参数传递到脚本。
在头节点更新完成并且调度器和共享存储与最新的集群配置更改保持一致之后,将会调用 OnNodeUpdated
操作。
当 OnNodeStart
或 OnNodeConfigured
自定义操作成功时,将使用退出代码零 (0) 来表示成功。任何其他退出代码都表示实例引导失败。
当 OnNodeUpdated
自定义操作成功时,将使用退出代码零 (0) 来表示成功。任何其他退出代码都表示更新失败。
注意
如果配置 OnNodeUpdated,则在更新失败时,必须将 OnNodeUpdated
操作手动恢复到先前的状态。
如果 OnNodeUpdated
自定义操作失败,则更新将回滚到之前的状态。但 OnNodeUpdated
操作仅在更新时运行,而不是在堆栈回滚时运行。
您可以在 HeadNode/CustomActions 和 Scheduling/SlurmQueues/CustomActions 配置部分中为头节点和每个队列指定不同的脚本。OnNodeUpdated 只能在 HeadNode
部分中进行配置。
注意
在 Amazon ParallelCluster 版本 3.0 之前,无法为头节点和计算节点指定不同的脚本。请参阅 从 Amazon ParallelCluster 2.x 迁移到 3.x。