安裝或更新套件 - AWS Systems Manager

安裝或更新套件

您可以使用 Distributor (AWS Systems Manager 功能),將套件部署至 AWS Systems Manager 受管執行個體。若要部署套件,請使用 AWS Management Console 或 AWS Command Line Interface (AWS CLI)。您可以在每個命令部署一個套件版本。您可以安裝新套件或就地更新現有的安裝。您可以選擇部署特定版本,或選擇一律用最新部署套件版本來部署。我們建議使用 State Manager (AWS Systems Manager 功能),以安裝套件。使用 State Manager 協助確保執行個體始終執行最新版本的套件。

Preference AWS Systems Manager 動作 其他資訊

立即安裝或更新套件。

Run Command

依排程安裝或更新的套件,以便安裝一律會包含預設版本。

State Manager

自動安裝套件到具有特定標籤或標籤集合的新執行個體上。例如,在新執行個體上安裝 Amazon CloudWatch 代理程式。

State Manager

有一種方法,可以套用標籤到新的執行個體,然後在您的 State Manager 關聯指定標籤為目標。State Manager 會在符合關聯標籤的執行個體關聯中安裝套件。請參閱 關於 State Manager 關聯中的目標和速率控制

一次性安裝或更新套件 (主控台)

您可以使用 AWS Systems Manager 主控台安裝或更新套件一次。設定一次安裝時,Distributor 會使用 AWS Systems ManagerRun Command (AWS Systems Manager 功能) 來執行安裝。

安裝或更新套件一次 (主控台)

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Distributor

  3. 在 Distributor 首頁上,選擇您想安裝的套件。

  4. 選擇 Install one time (一次性安裝)

    這個命令會用命令文件 AWS-ConfigureAWSPackage 和您選擇的 Distributor 套件開啟 Run Command。

  5. 對於 Document version (文件版本),選取您要執行的 AWS-ConfigureAWSPackage 文件的版本。

  6. 針對 Action (動作),選擇 Install (安裝)

  7. 對於 Installation type (安裝類型),選擇以下其中一項:

    • Uninstall and reinstall (解除安裝並重新安裝):套件會完全解除安裝,然後重新安裝。在重新安裝完成之前,應用程式無法使用。

    • In-place update (就地更新):根據您在 update 指令碼中提供的指示,只將新的或變更的檔案新增至現有的安裝。應用程式在整個更新程序中仍然可用。AWS 發佈的套件不支援該選項,AWSEC2Launch-Agent 套件除外。

  8. 對於 Name (名稱),確認已輸入您所選套件的名稱。

  9. (選用) 對於 Version (版本),輸入套件的版本名稱值。如果您將此欄位留空,Run Command 會安裝您在 Distributor 選的預設版本。

  10. Targets (目標) 中,手動指定標籤、選取執行個體或指定資源群組,以識別您要執行這項操作的執行個體。

    注意

    如果您預期看到的 Amazon EC2 執行個體未列出,請參閱 故障診斷 Amazon EC2 受管執行個體可用性 以取得故障診斷秘訣。

  11. 對於 Other parameters (其他參數)

    • Comment (註解) 中,輸入此命令的相關資訊。

    • Timeout (seconds) (逾時 (秒)) 中,指定在命令執行全面失敗之前,系統要等候的秒數。

  12. 對於 Rate control (速率控制):

    • Concurrency (並行) 中,指定可同時執行命令的執行個體數目或百分比。

      注意

      如果透過指定套用至受管執行個體的標籤或指定 AWS 資源群組選取了目標,且您不確定會以多少個執行個體為目標,則透過指定百分比限制可以同時執行文件之執行個體的數量。

    • Error threshold (錯誤閾值) 中,指定在特定數目或百分比之執行個體上的命令失敗之後,停止在其他執行個體上執行命令。例如,如果您指定三個錯誤,則 Systems Manager 會在收到第四個錯誤時停止傳送命令。仍在處理命令的執行個體也可能會傳送錯誤。

  13. (選用) 針對 Output options (輸出選項),若要將命令輸出儲存至檔案,請選取 Write command output to an S3 bucket (將命令輸出寫入至 S3 儲存貯體) 方塊。在方塊中輸入儲存貯體和字首 (資料夾) 名稱。

    注意

    授予能力以將資料寫入至 S3 儲存貯體的 S3 許可,會是指派給執行個體之執行個體描述檔的許可,而不是執行此工作之 IAM 使用者的許可。如需詳細資訊,請參閱建立 Systems Manager 的 IAM 執行個體描述檔。此外,若指定的 S3 儲存貯體位於不同的 AWS 帳戶 內,請確認與執行個體相關聯的執行個體描述檔具有寫入該儲存貯體的必要許可。

  14. SNS notifications (SNS 通知) 區段中,如果您要傳送有關命令執行狀態的通知,請選取 Enable SNS notifications (啟用 SNS 通知) 核取方塊。

    如需為 Run Command 設定 Amazon SNS 通知的詳細資訊,請參閱 使用 Amazon SNS 通知監控 Systems Manager 狀態變更

  15. 當您準備好安裝套件時,請選擇 Run (執行)。

  16. Command status (命令狀態) 區域會報告執行的進度。如果命令仍在進行中,請選擇主控台左上角的重新整理圖示,直到 Overall status (整體狀態)Detailed status (詳細狀態) 欄顯示 Success (成功)Failed (失敗) 顯示為止。

  17. Targets and outputs (目標和輸出) 區域中,選擇執行個體名稱旁邊的按鈕,然後選擇 View output (檢視輸出)

    此指令輸出頁面會顯示指令執行的結果。

  18. (選用) 如果您選擇將命令輸出寫入 Amazon S3 儲存貯體,請選擇 Amazon S3 以檢視輸出日誌資料。

排定套件安裝或更新 (主控台)

您可以使用 AWS Systems Manager 主控台來排定套件的安裝或更新。排定套件安裝或更新時,Distributor 會使用 AWS Systems ManagerState Manager來安裝或更新。

若要排定套件安裝 (主控台)

  1. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Distributor

  3. 在 Distributor 首頁上,選擇您想安裝或安裝的套件。

  4. 對於 Package (套件),選擇 Install on a schedule (依排程安裝)

    此命令會開啟 State Manager 至為您建立的新關聯。

  5. 對於 Name (名稱),輸入名稱 (例如,Deploy-test-agent-package)。此為選用操作,但建議您採用。名稱中不得使用空格。

  6. Document (文件) 清單中,已選取文件名稱 AWS-ConfigureAWSPackage

  7. 對於 Action (動作),請確認已選取 Install (安裝)

  8. 對於 Installation type (安裝類型),選擇以下其中一項:

    • Uninstall and reinstall (解除安裝並重新安裝):套件會完全解除安裝,然後重新安裝。在重新安裝完成之前,應用程式無法使用。

    • In-place update (就地更新):根據您在 update 指令碼中提供的指示,只將新的或變更的檔案新增至現有的安裝。應用程式在整個更新程序中仍然可用。

  9. 對於 Name (名稱),確認已輸入您套件的名稱。

  10. 對於 Version (版本),如果您要安裝最新發佈版本以外的套件版本,請輸入版本識別碼。

  11. 對於 Targets (目標),請選擇 Selecting all managed instances in this account (選擇此帳戶中的所有受管執行個體)Specifying tags (指定標籤)Manually Selecting Instance (手動選擇執行個體)。如果您選擇使用標籤來指向資源,請在提供的欄位中輸入標籤索引鍵和標籤值。

  12. 對於 Specify schedule (指定排程),請選擇 On Schedule (依排程) 定期執行關聯,或 No Schedule (不排程) 來執行關聯一次。如需關於這些選項的詳細資訊,請參閱 建立關聯。使用控制項來建立 cron 或關聯速率排程。

  13. 選擇 Create Association (建立關聯)

  14. Association (關聯) 頁面上,選擇您建立的關聯旁邊的按鈕,然後選擇 Apply association now (立即套用關聯)

    State Manager會在指定的執行個體或目標上建立並立即執行關聯。如需執行關聯結果的詳細資訊,請參閱此指南中的建立關聯

如需在 Advanced options (進階選項)Rate control (速率控制) 以及 Output options (輸出選項) 中使用選項的詳細資訊,請參閱建立關聯

一次性安裝套件 (AWS CLI)

您可以在 send-command 中執行 AWS CLI,以便安裝 Distributor 套件一次。如果套件已經安裝,解除安裝套件時會讓應用程式離線,並將新版本安裝就位。

若要安裝套件一次 (AWS CLI)

  • 在 AWS CLI 中執行以下命令。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "instance-IDs" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
    注意

    installationType 的預設行為是 Uninstall and reinstall。當您安裝完整套件時,您可以在此命令中忽略 "installationType":["Uninstall and reinstall"]

    以下是範例。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-00000000000000" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["ExamplePackage"]}'

如需可以與 send-command 命令搭配使用之其他選項的相關資訊,請參閱《AWS CLI 命令參考》中 AWS Systems Manager 章節的 send-command

一次性更新套件 (AWS CLI)

您可以在 send-command 中執行 AWS CLI 來更新 Distributor 套件,而不需將關聯的應用程式離線。只會取代套件中的新檔案或更新檔案。

一次性更新套件 (AWS CLI)

  • 在 AWS CLI 中執行以下命令。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "instance-IDs" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
    注意

    當您新增新的或變更的檔案時,必須在命令中包含 "installationType":["In-place update"]

    以下是範例。

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-02573cafcfEXAMPLE" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["ExamplePackage"]}'

如需可以與 send-command 命令搭配使用之其他選項的相關資訊,請參閱《AWS CLI 命令參考》中 AWS Systems Manager 章節的 send-command

排程套件安裝 (AWS CLI)

您可以在 create-association 中執行 AWS CLI,以便依排程安裝 Distributor 套件。--name 值 (文件名稱) 一律為 AWS-ConfigureAWSPackage。以下命令會使用索引鍵 InstanceIds 來指定目標執行個體。如果套件已經安裝,解除安裝套件時會讓應用程式離線,並將新版本安裝就位。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
注意

installationType 的預設行為是 Uninstall and reinstall。當您安裝完整套件時,您可以在此命令中忽略 "installationType":["Uninstall and reinstall"]

以下是範例。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["Test-ConfigureAWSPackage"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]

如需可以與 create-association 命令搭配使用之其他選項的相關資訊,請參閱《AWS CLI 命令參考》中 AWS Systems Manager 章節的 create-association

排程套件更新 (AWS CLI)

您可以在 create-association 中執行 AWS CLI 以依照排程更新 Distributor 套件,而不需使關聯的應用程式離線。只會取代套件中的新檔案或更新檔案。--name 值 (文件名稱) 一律為 AWS-ConfigureAWSPackage。以下命令會使用索引鍵 InstanceIds 來指定目標執行個體。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
注意

當您新增新的或變更的檔案時,必須在命令中包含 "installationType":["In-place update"]

以下是範例。

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["Test-ConfigureAWSPackage"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]

如需可以與 create-association 命令搭配使用之其他選項的相關資訊,請參閱《AWS CLI 命令參考》中 AWS Systems Manager 章節的 create-association