安裝或更新套件 - 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 Manager Run Command (AWS Systems Manager 功能) 來執行安裝。

安裝或更新套件一次 (主控台)
  1. 開啟位於 https://console.aws.amazon.com/systems-manager/ 的 AWS 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 (目標) 區段中,透過手動指定標籤、選取執行個體或裝置,或指定資源群組,選擇您要執行這項操作的受管節點。

    注意

    如果在清單中沒看到受管節點,則請參閱 疑難排解受管節點的可用性

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

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

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

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

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

      注意

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

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

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

    注意

    授予能力以將資料寫入至 S3 儲存貯體的 S3 許可,會是指派給執行個體之執行個體設定檔 (適用於 EC2 執行個體) 或 IAM 服務角色 (啟用混合模式的機器) 的許可,而不是執行此任務之 IAM 使用者的許可。如需詳細資訊,請參閱設定適用於 Systems Manager 的執行個體許可或者建立適用於混合環境的 IAM 服務角色。此外,若指定的 S3 儲存貯體位於不同的 AWS 帳戶 內,請確保與受管節點相關聯的執行個體設定檔或 IAM 服務角色是否具有寫入該儲存貯體的必要許可。

  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 Simple Storage Service (Amazon S3) 儲存貯體,請選擇 Amazon Simple Storage Service (Amazon S3) 以檢視輸出日誌資料。

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

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

若要排定套件安裝 (主控台)
  1. 開啟位於 https://console.aws.amazon.com/systems-manager/ 的 AWS 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 (手動選擇執行個體)。如果您選擇使用標籤來指向資源,請在提供的欄位中輸入標籤索引鍵和標籤值。

    注意

    您可以透過選擇 Selecting all managed instances in this account (在此帳戶中選取所有受管執行個體) 或 Manually Selecting Instance (手動選取執行個體) 來選擇受管 AWS IoT Greengrass 核心裝置。

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

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

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

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

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

一次性安裝套件 (AWS CLI)

您可以在 AWS CLI 中執行 send-command,以便安裝 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)

您可以在 AWS CLI 中執行 send-command 來更新 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)

您可以在 AWS CLI 中執行 create-association,以便依排程安裝 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)

您可以在 AWS CLI 中執行 create-association 以依照排程更新 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