本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 AWS PCS AWS中為節點生命週期動作使用維護的指令碼
AWS 會發佈常用生命週期動作的維護指令碼。您可以直接從運算節點群組組態參考維護的指令碼。指令碼在每次開機時都具有等冪性和安全性。
AWS 從每個 AWS中的公有、受管 Amazon S3 儲存貯體分發指令碼 AWS 區域。您可以依指令碼的 Amazon S3 URI 參考指令碼。您可以參考維護的指令碼,就像參考自己的指令碼一樣。您可以直接從 AWS受管儲存貯體參考指令碼。
可用的指令碼
指令碼 |
Description |
先決條件套件 |
|---|---|---|
|
將 Amazon EFS 檔案系統掛載在指定的路徑上,並在重新啟動時將其保留。 |
|
|
將 Amazon FSx for Lustre 檔案系統掛載在指定的路徑上,並在重新啟動時將其保留。 |
|
|
將 Amazon EFS 檔案系統掛載為主目錄基礎,並設定 PAM,以便在第一次登入時建立每個使用者的主目錄。 |
|
|
為 LDAP 或 LDAPS 身分驗證設定 SSSD,並支援已驗證綁定 (來自 AWS Secrets Manager 的憑證) 或匿名綁定。 |
|
|
設定 Amazon CloudWatch 代理程式,將節點的生命週期動作日誌轉送至 Amazon CloudWatch Logs。 |
|
重要
這些指令碼不會安裝其先決條件套件。使用指令碼之前,請在 AMI 中安裝必要的套件。如果缺少先決條件,則指令碼會失敗。有些指令碼需要節點的執行個體角色具有特定許可。請參閱每個指令碼的需求。
參考指令碼
在生命週期動作的 scriptLocation 欄位中,依其 Amazon S3 URI 參考指令碼。指令碼存放在每個指令碼中 AWS受管aws-pcs-repo-儲存貯體的regionaws-pcs-node-lifecycle-scripts字首下 AWS 區域。在 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,以在重新開機時取得更新。
每個指令碼都有一個配套的 SHA-256 檢查總和檔案,位於與.sha256尾碼相同的位置 (例如 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"])。所有指令碼都會執行為 root並支援 AL2、AL2023、RHEL、Ubuntu 和 Rocky Linux 作業系統。
mount-efs.sh
旗標 |
必要 |
預設 |
Description |
|---|---|---|---|
|
是 |
— |
EFS 檔案系統 ID,例如 |
|
是 |
— |
在 掛載的絕對路徑,例如 |
|
否 |
|
逗號分隔的掛載選項。預設會啟用傳輸中加密和 IAM 身分驗證。 |
使用預設iam選項時,節點的執行個體角色必須允許 elasticfilesystem:ClientMount和 elasticfilesystem:ClientWrite。節點的子網路必須具有 EFS 掛載目標,其安全群組允許來自節點的傳入 NFS (TCP 2049)。
mount-fsx-lustre.sh
旗標 |
必要 |
預設 |
Description |
|---|---|---|---|
|
是 |
— |
FSx for Lustre 檔案系統 DNS 名稱。 |
|
是 |
— |
檔案系統的 Lustre 掛載名稱 (來自 FSx 主控台 |
|
是 |
— |
在 掛載的絕對路徑,例如 |
|
否 |
|
逗號分隔的掛載選項。預設值遵循 FSx for Lustre 建議。 |
節點的子網路必須到達檔案系統,且檔案系統的安全群組必須允許來自節點的傳入 Lustre 流量 (TCP 988 和 1018–1023,適用於使用預留來源連接埠的用戶端)。
configure-efs-homes.sh
旗標 |
必要 |
預設 |
Description |
|---|---|---|---|
|
是 |
— |
EFS 檔案系統 ID,例如 |
|
否 |
|
在 掛載 EFS 檔案系統的絕對路徑,並在其中建立主目錄。 |
|
否 |
|
逗號分隔的掛載選項。預設會啟用傳輸中加密和 IAM 身分驗證。 |
此指令碼需要 amazon-efs-utils、 nfs-utils和 PAM mkhomedir支援。在 RHEL-family 節點上,安裝 oddjob、 oddjob-mkhomedir和 authselect。在 AL2023 上,authselect明確安裝 。在 Ubuntu 上安裝 libpam-modules。IAM 和網路需求符合 mount-efs.sh。
configure-ldaps.sh
旗標 |
必要 |
Description |
|---|---|---|
|
是 |
LDAP 伺服器 URI。必須以 |
|
是 |
LDAP 搜尋基礎,例如 |
|
否 |
AWS 存放繫結憑證之秘密的 Secrets Manager ARN。當您省略此旗標時,指令碼會將 SSSD 設定為匿名繫結。 |
|
否 |
用於 TLS 驗證的 CA 套件絕對路徑。預設為作業系統的 CA 套件。 |
此指令碼需要 sssd、 sssd-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
旗標 |
必要 |
預設 |
Description |
|---|---|---|---|
|
否 |
|
要轉送的 CloudWatch Logs 日誌群組。省略時,指令碼會從 AWS PCS 設定 |
指令碼會轉送生命週期動作日誌目錄 (/var/log/amazon/pcs/lifecycle/actions)。節點的執行個體角色必須在目標日誌群組logs:PutLogEvents上允許 logs:CreateLogStream、 logs:CreateLogGroup和 。使用此指令碼轉送日誌執行個體外部,以進行事後偵錯。
注意
Amazon CloudWatch 代理程式必須以 執行root以轉送這些日誌。只有root使用者可以讀取 /var/log/amazon/pcs/lifecycle/actions。
注意
指令碼將其組態寫入專用片段檔案。Amazon CloudWatch 代理程式將此片段與任何現有組態結合,而不會覆寫它,因此指令碼會保留您現有的指標和日誌群組設定。