本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义引导操作
如果定义了 HeadNode/CustomActions/OnNodeStart配置设置,则会在节点启动后立即 Amazon ParallelCluster 运行任意代码。如果定义了 HeadNode/CustomActions/OnNodeConfigured配置设置,则在正确完成节点配置后 Amazon ParallelCluster 运行代码。
从 3.4.0 Amazon ParallelCluster 版开始,如果您定义了 HeadNode/CustomActions/OnNodeUpdated配置设置,则可以在头节点更新后运行代码。
在大多数情况下,此代码存储在亚马逊简单存储服务 (Amazon S3) 中,并通过连接进行HTTPS访问。此代码将以 root
用户身份运行,可以采用集群操作系统支持的任何脚本语言。代码通常采用 Bash 或 Python 语言。
注意
从 3.7.0 Amazon ParallelCluster 版开始,集群 Imds/ImdsSupport设置的默认值为。v2.0
当您创建要升级到版本 3.7.0 及更高版本的新集群时,要么更新您的自定义引导操作脚本使其与之兼容,要IMDSv2么在集群配置文件v1.0
中将 Imds/ImdsSupport设置为。
警告
按照责任共担模式
警告
Amazon ParallelCluster 不支持使用通过/etc/parallelcluster/cfnconfig
文件提供的内部变量。此文件可能会在未来版本中删除。
OnNodeStart
操作是在任何节点部署引导操作开始之前调用的,例如配置NAT、Amazon Elastic Block Store (AmazonEBS) 或调度程序。 OnNodeStart
引导操作可能包括修改存储、添加额外用户和添加软件包。
注意
如果您为集群配置DirectoryService和 HeadNodeCustomActions//OnNodeStart脚本,则会在集群运行脚本sssd
之前 Amazon ParallelCluster 配置DirectoryService
并重新启动。OnNodeStart
节点引导过程完成后将会调用 OnNodeConfigured
操作。OnNodeConfigured
操作是实例被视为完全配置并已完成之前执行的最后操作。某些 OnNodeConfigured
操作包括更改调度器设置、修改存储和修改程序包。您可以通过在配置期间指定参数,将参数传递到脚本。
在头节点更新完成并且调度器和共享存储与最新的集群配置更改保持一致之后,将会调用 OnNodeUpdated
操作。
当 OnNodeStart
或 OnNodeConfigured
自定义操作成功时,将使用退出代码零 (0) 来表示成功。任何其他退出代码都表示实例引导失败。
当 OnNodeUpdated
自定义操作成功时,将使用退出代码零 (0) 来表示成功。任何其他退出代码都表示更新失败。
注意
如果配置 OnNodeUpdated,则在更新失败时,必须将 OnNodeUpdated
操作手动恢复到先前的状态。
如果 OnNodeUpdated
自定义操作失败,则更新将回滚到之前的状态。但 OnNodeUpdated
操作仅在更新时运行,而不是在堆栈回滚时运行。
您可以在 HeadNode/CustomActions 和 Scheduling/SlurmQueues/CustomActions 配置部分中为头节点和每个队列指定不同的脚本。OnNodeUpdated 只能在 HeadNode
部分中进行配置。
注意
在 3.0 Amazon ParallelCluster 版本之前,无法为头节点和计算节点指定不同的脚本。请参阅 从 Amazon ParallelCluster 2.x 升级到 3.x。