本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS-维护了中节点生命周期操作的脚本 AWS PCS
AWS 为常见的生命周期操作发布维护的脚本。您可以直接从计算节点组配置中引用维护的脚本。这些脚本是等效的,每次启动时都可以安全运行。
AWS 将来自公共、 AWS托管的 Amazon S3 存储桶中的脚本分发到每个存储桶中。 AWS 区域您可以通过脚本的 Amazon S3 URI 来引用脚本。引用维护的脚本的方式与引用自己的脚本的方式相同。您可以直接从 AWS-managed 存储桶中引用脚本。
可用脚本
Script |
描述 |
必备包 |
|---|---|---|
|
在指定路径上挂载 Amazon EFS 文件系统,并在重新启动后将其保留。 |
|
|
在指定路径上挂载适用于 Lustre 的 Amazon FSx 文件系统,并在重启后保持不变。 |
|
|
将 Amazon EFS 文件系统挂载为主目录基础并配置 PAM,以便在首次登录时创建每个用户的主目录。 |
|
|
为 LDAP 或 LDAPS 身份验证配置 SSSD,支持经过身份验证的绑定(来自 AWS 密钥管理器的证书)或匿名绑定。 |
|
|
将 Amazon CloudWatch 代理配置为将节点的生命周期操作日志转发到 Amazon L CloudWatch ogs。 |
|
重要
这些脚本不安装其必备软件包。在使用脚本之前,在 AMI 中安装所需的软件包。如果缺少先决条件,则脚本将失败。一些脚本要求节点的实例角色具有特定权限。查看每个脚本的要求。
引用脚本
在生命周期操作scriptLocation字段中按脚本的 Amazon S3 URI 引用脚本。脚本存储在每个 AWS 区域脚本中 AWS-managed aws-pcs-repo- 存储桶regionaws-pcs-node-lifecycle-scripts的前缀下。使用与您的集群 AWS 区域 相同的存储桶。
s3://aws-pcs-repo-region/aws-pcs-node-lifecycle-scripts/script-vversion.sh
每个脚本都使用语义版本控制进行版本控制。
-
固定特定版本 -使用完整的语义版本,例如
mount-efs-v1.0.0.sh。特定版本的内容是不可变的。使用固定版本进行生产。 -
跟踪最新版本 -使用主要版本别名,例如。
mount-efs-v1-latest.sh别名指向该主要版本中的最新版本。将其与配对scriptCachingPolicyREFRESH_ON_REBOOT即可在重启时获取更新。
每个脚本在同一个位置都有一个带有.sha256后缀(例如)的配套 SHA-256 校验和文件。mount-efs-v1.0.0.sh.sha256读取该.sha256值并将其设置为脚本的checksum。然后,代理会在下载时验证脚本的完整性。有关更多信息,请参阅 脚本完整性(校验和)。
可用的脚本版本
AWS 独立版本每个脚本。下表列出了每个脚本的可用版本。使用脚本的 Amazon S3 URI 中的版本,如中所述引用脚本。
mount-efs.sh
版本 |
发行日期 |
发行说明 |
|---|---|---|
1.0.0 |
2026 年 7 月 23 日 |
初始版本。 |
mount-fsx-lustre.sh
版本 |
发行日期 |
发行说明 |
|---|---|---|
1.0.0 |
2026 年 7 月 23 日 |
初始版本。 |
configure-efs-homes.sh
版本 |
发行日期 |
发行说明 |
|---|---|---|
1.0.0 |
2026 年 7 月 23 日 |
初始版本。 |
configure-ldaps.sh
版本 |
发行日期 |
发行说明 |
|---|---|---|
1.0.0 |
2026 年 7 月 23 日 |
初始版本。 |
configure-cloudwatch-logs.sh
版本 |
发行日期 |
发行说明 |
|---|---|---|
1.0.0 |
2026 年 7 月 23 日 |
初始版本。 |
示例:使用维护的脚本挂载 EFS 文件系统
以下示例引用了中维护的mount-efs.sh脚本us-west-2 AWS 区域。您可以将参数作为命名标志传递。有关脚本的参数,请参见脚本参数。
aws pcs update-compute-node-group \ --cluster-identifiermy-cluster\ --compute-node-group-identifiermy-cng\ --node-lifecycle-actions '{ "stages": { "nodeBootstrapped": [ { "name": "Mount EFS home directory", "scriptSource": { "scriptLocation": "s3://aws-pcs-repo-us-west-2/aws-pcs-node-lifecycle-scripts/mount-efs-v1.0.0.sh" }, "arguments": ["--file-system-id", "fs-12345678", "--mount-point", "/shared"], "onError": "TERMINATE", "executionPolicy": "EVERY_BOOT" } ] } }'
节点的实例角色必须具有脚本对象的s3:GetObject权限。私有子网中的节点可以通过 S3 网关 VPC 终端节点访问存储桶。有关更多信息,请参阅 脚本存储位置。
脚本参数
每个脚本都采用命名标志参数。将每个标志及其值作为arguments数组的单独元素传递(例如,["--file-system-id", "fs-12345678"])。所有脚本均以 AL2、AL2023、RHEL、Ubuntu 和 Rocky Linux 操作系统运行并支持。root
mount-efs.sh
旗帜 |
必填 |
默认 |
描述 |
|---|---|---|---|
|
是 |
— |
EFS 文件系统 ID,例如 |
|
是 |
— |
挂载的绝对路径,例如 |
|
否 |
|
Comma-separated 装载选项。默认启用传输中的加密和 IAM 身份验证。 |
使用默认iam选项时,节点的实例角色必须允许elasticfilesystem:ClientMount和elasticfilesystem:ClientWrite。该节点的子网必须有一个 EFS 挂载目标,其安全组允许来自该节点的入站 NFS (TCP 2049)。
mount-fsx-lustre.sh
旗帜 |
必填 |
默认 |
描述 |
|---|---|---|---|
|
是 |
— |
fsX for Lustre 文件系统 DNS 名称。 |
|
是 |
— |
文件系统的 Lustre 挂载名称(来自 FSx 控制台的 |
|
是 |
— |
挂载的绝对路径,例如 |
|
否 |
|
Comma-separated 装载选项。默认遵循 FSx for Lustre 的建议。 |
节点的子网必须到达文件系统,文件系统的安全组必须允许来自该节点的入站 Lustre 流量(对于使用预留源端口的客户端,TCP 988 和 1018—1023)。
configure-efs-homes.sh
旗帜 |
必填 |
默认 |
描述 |
|---|---|---|---|
|
是 |
— |
EFS 文件系统 ID,例如 |
|
否 |
|
在其中挂载 EFS 文件系统并在其下创建主目录的绝对路径。 |
|
否 |
|
Comma-separated 装载选项。默认启用传输中的加密和 IAM 身份验证。 |
此脚本需要amazon-efs-utilsnfs-utils、和 PAM mkhomedir 支持。在 RHEL-family 节点上,安装oddjoboddjob-mkhomedir、和authselect。在 AL2023 上,authselect明确安装。在 Ubuntu 上,安装libpam-modules。IAM 和网络要求相匹配mount-efs.sh。
configure-ldaps.sh
旗帜 |
必填 |
描述 |
|---|---|---|
|
是 |
LDAP 服务器 URI。必须以 |
|
是 |
LDAP 搜索库,例如 |
|
否 |
AWS 保存绑定凭据的密钥的密钥管理器 ARN。省略此标志时,脚本会为匿名绑定配置 SSSD。 |
|
否 |
用于 TLS 验证的 CA 包的绝对路径。默认为操作系统的 CA 捆绑包。 |
此脚本需要sssdsssd-ldap、和sssd-tools。在 RHEL-family 节点上,它还需要authselect或authconfig和oddjob-mkhomedir。在 Ubuntu 上,它需要libpam-modules。
使用时--secret-arn,节点的实例角色必须允许secretsmanager:GetSecretValue使用密钥,并且该节点需要awscli和python3包。机密的值必须是格式的 JSON {"username": "<bind-dn>", "password": "<bind-password>"}。匿名绑定不进行 AWS API 调用,也不需要 IAM 权限。
configure-cloudwatch-logs.sh
旗帜 |
必填 |
默认 |
描述 |
|---|---|---|---|
|
否 |
|
要转发到的 CloudWatch 日志组。省略时,该脚本的名称来自 AWS PCS 设置的 |
该脚本转发生命周期操作日志目录 (/var/log/amazon/pcs/lifecycle/actions)。节点的实例角色必须在目标日志组logs:PutLogEvents上允许logs:CreateLogGrouplogs:CreateLogStream、和。使用此脚本将日志转发到实例外以进行事后调试。
注意
亚马逊 CloudWatch 代理必须运行root才能转发这些日志。只有root用户可以阅读/var/log/amazon/pcs/lifecycle/actions。
注意
该脚本将其配置写入专用的片段文件。亚马逊 CloudWatch代理将此片段与任何现有配置相结合,而不会对其进行覆盖,因此该脚本会保留您的现有指标和日志组设置。