本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:使用 cloud-init boothook 執行早期開機操作
在啟動範本"userData"中提供此指令碼做為 的值。如需詳細資訊,請參閱使用 AWS PCS 的 Amazon EC2 使用者資料。
有些組態必須在開機序列的最開始時、 AWS PCS 引導開始之前,以及任何服務使用硬體之前執行。典型的案例是程序保留 GPUs 時無法生效的 GPU 組態命令,例如啟用 NVIDIA 多執行個體 GPU (MIG) 模式,以及需要重新啟動才能生效的操作,例如變更 GPU ECC 模式。在此階段重新啟動是安全的,因為 AWS PCS 引導尚未啟動。請勿在稍後的開機程序中重新啟動,例如從節點生命週期動作指令碼重新啟動:重新啟動會中斷 AWS PCS 開機程序。如需詳細資訊,請參閱AWS PCS 中節點生命週期動作的最佳實務。
若要建立開機掛鉤,請將具有內容類型的區塊新增至text/cloud-boothook您的使用者資料。區塊包含指令碼本身。boothook 是使用者資料中最早可用的勾點: 會在處理區塊時,在註冊節點的 AWS PCS 使用者資料區塊之前cloud-init執行,例如 cloud-config bootcmd和 。boothook 會在每次開機時執行,包括其本身可能觸發的重新啟動,因此指令碼必須是等冪的:請先檢查目前狀態,並略過已完成的工作。如需詳細資訊,請參閱 cloud-init 文件
下列範例會在所有 GPUs 上啟用 MIG 模式,並在每次開機時建立 MIG 執行個體。由於尚未啟動 GPU 用戶端,模式變更會立即生效,而且不需要重新開機。
MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-boothook; charset="us-ascii" #!/bin/bash if ! nvidia-smi -i 0 -q | grep -A1 'MIG Mode' | grep -q 'Current.*Enabled'; then nvidia-smi -mig 1 fi if [ -z "$(nvidia-smi -L | grep MIG)" ]; then for i in 0 1 2 3 4 5 6 7; do nvidia-smi mig -i $i -cgi 9,14,19,19 -C done fi --==MYBOUNDARY==--
如果您的操作列印出需要重新啟動,請在狀態變更後從相同的引導重新啟動。在下一次開機時,冪等性檢查會找到已完成的工作,因此節點會繼續正常進入 AWS PCS 引導。