本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新 Windows Server (AMI)
AWS-UpdateWindowsAmi
Runbook 可讓您自動化 Amazon Windows Amazon Machine Image (AMI) 的映像維護任務,不必使用 JSON 或 YAML 撰寫 Runbook。此 Runbook 支援 Windows Server 2008 R2 或更新版本。您可以使用 AWS-UpdateWindowsAmi
Runbook 執行以下類型的任務。
-
安裝所有 Windows 更新和升級 Amazon 軟體 (預設行為)。
-
安裝特定 Windows 更新和升級 Amazon 軟體。
-
使用您的指令碼自訂 AMI。
開始之前
在您開始使用 Runbook 之前,設定 Automation 的角色以新增 iam:PassRole
政策,此政策會參考您想要授予存取之執行個體設定檔的 ARN。選擇性地將 Amazon 設定 EventBridge為自動化,這是一項功能 AWS Systems Manager。如需詳細資訊,請參閱 設定自動化。本逐步解說也要求您指定 AWS Identity and Access Management (IAM) 執行個體設定檔的名稱。如需建立 IAM 執行個體設定檔的詳細資訊,請參閱設定 Systems Manager 所需的執行個體許可。
注意
AWS Systems Manager SSM Agent 的更新通常會在不同時間於不同區域推出。自訂或更新 AMI 時,請只使用針對您工作之區域發佈的來源 AMI。這可確保您使用的是針對該區域發行的最新 SSM Agent,並且避免相容性問題。
AWS-UpdateWindowsAmi
Runbook 接受以下的輸入參數。
參數 | 類型 | 描述 |
---|---|---|
SourceAmi識別碼 |
字串 |
(必要) 來源 AMI ID。您可以使用 Systems Manager Parameter Store 公有參數自動參考最新的 Windows Server AMI ID。如需詳細資訊,請參閱使用 AWS Systems Manager查詢最新的 Windows AMI ID Parameter Store |
SubnetId |
字串 |
(選用) 您要啟動暫時執行個體的子網路。如果您已刪除預設 VPC,則必須為此參數指定一個值。 |
IamInstanceProfileName |
字串 |
(必要) 您在「設定 Systems Manager 所需的執行個體權限」中建立的 IAM 執行個體設定檔角色名稱。執行個體設定檔角色可讓自動化許可在您的執行個體上執行動作,例如執行命令或啟動和停用服務。Runbook 僅使用執行個體設定檔角色的名稱。 |
AutomationAssume角色 |
字串 |
(必要) 您在 設定自動化 中建立之 IAM 服務角色的名稱。服務角色 (也稱為擔任角色) 會提供自動化許可來擔任您的 IAM 角色並代表您執行動作。例如,在 Runbook 中執行 |
TargetAmi名稱 |
字串 |
(選用) 建立後的新 AMI 之名稱。預設名稱為系統產生的字串,包括來源 AMI ID,以及建立時間和日期。 |
InstanceType |
字串 |
(選用) 做為工作空間主機啟動的執行個體類型。執行個體類型因區域而異。預設類型為 t2.medium。 |
PreUpdate腳本 |
字串 |
(選用) 更新 AMI 之前執行的指令碼。在 Runbook 中或在執行時間輸入指令碼作為參數。 |
PostUpdate腳本 |
字串 |
(選用) 更新 AMI 之後執行的指令碼。在 Runbook 中或在執行時間輸入指令碼作為參數。 |
IncludeKbs |
字串 |
(選用) 指定一個或多個要包含的 Microsoft 知識庫 (KB) 文章 ID。您可以使用逗號分隔值安裝多個 ID。有效格式:KB9876543 或 9876543。 |
ExcludeKbs |
字串 |
(選用) 指定一個或多個要排除的 Microsoft 知識庫 (KB) 文章 ID。您可以使用逗號分隔值排除多個 ID。有效格式:KB9876543 或 9876543。 |
類別 |
字串 |
(選用) 指定一個或多個更新類別。您可以使用逗號分隔值篩選類別。選項:Critical Update (重大更新),Security Update (安全性更新),Definition Update (定義更新),Update Rollup (更新彙總套件),Service Pack,Tool (工具),Update (更新),或 Driver (驅動程式)。有效格式包含單一項目,例如:Critical Update (重大更新)。或者您可以指定逗號分隔清單:Critical Update,Security Update,Definition Update。 |
SeverityLevels |
字串 |
(選用) 指定一個或多個與更新關聯的 MSRC 嚴重性等級。您可以使用逗號分隔值篩選嚴重性等級。選項:Critical,Important,Low,Moderate 或 Unspecified。有效格式包括單一項目,例如:Critical。或者,您可以指定逗號分隔清單:Critical,Important,Low。 |
自動化步驟
依預設,AWS-UpdateWindowsAmi
Runbook 包含下列步驟。
- 步驟 1:launchInstance (
aws:runInstances
動作) -
此步驟藉由指定之
SourceAmiID
的 IAM 執行個體設定檔角色來啟動執行個體。 - 步驟 2: runPreUpdate指令碼 (
aws:runCommand
動作) -
此步驟可讓您指定指令碼做為字串,在更新安裝之前執行。
- 步驟 3:updateEC2Config (
aws:runCommand
動作) -
此步驟使用
AWS-InstallPowerShellModule
runbook 來下載 AWS 公用 PowerShell 模組。Systems Manager 會使用 SHA-256 雜湊來驗證模組的完整性。接著,Systems Manager 會檢查作業系統,以判斷是否要更新 EC2Config 或 EC2Launch。EC2Config 透過 Windows Server 2012 R2 在 Windows Server 2008 R2 上執行。EC2Launch 在 Windows Server 2016 上執行。 - 步驟 4:updateSSMAgent (
aws:runCommand
動作) -
此步驟會藉由使用
AWS-UpdateSSMAgent
Runbook 更新 SSM Agent。 - 步驟 5:更新AWSPVDriver (
aws:runCommand
操作) -
此步驟使用工作
AWS-ConfigureAWSPackage
流程簿更新 AWS PV 驅動程式。 - 步驟 6: updateAwsEnaNetworkDriver (
aws:runCommand
動作) -
此步驟會使用
AWS-ConfigureAWSPackage
執行手冊來更新 AWS ENA 網路驅動程式。 - 步驟 7: installWindowsUpdates (
aws:runCommand
動作) -
此步驟會藉由使用
AWS-InstallWindowsUpdates
Runbook 安裝 Windows 更新。根據預設,Systems Manager 會搜尋和安裝所有缺少的更新。您可以藉由指定以下參數變更預設行為:IncludeKbs
、ExcludeKbs
、Categories
或SeverityLevels
。 - 第 8 步: runPostUpdate腳本(
aws:runCommand
操作) -
此步驟可讓您指定指令碼做為字串,在更新安裝之後執行。
- 步驟 9: runSysprepGeneralize (
aws:runCommand
動作) -
此步驟使用
AWS-InstallPowerShellModule
runbook 來下載 AWS 公用 PowerShell 模組。Systems Manager 會使用 SHA-256 雜湊來驗證模組的完整性。然後,Systems Manager 器運行系統使用 AWS支持的方法為 EC2 啟動(視窗服務器 2016)或 EC2 配置(視窗服務器 2008 R2 到 2012 R2)。 - 步驟 10:stopInstance 停止 (
aws:changeInstanceState
動作) -
此步驟會停止更新的執行個體。
- 步驟 11:createImage (
aws:createImage
動作) -
此步驟會以連結至來源 ID 和建立時間的描述性名稱建立新的 AMI。例如:「從 {{Id}} 由 EC2 自動化生成的 AMI {{全球:日期 _ 時間}}」,其中 DATE_TIME 和 Source SourceAmi ID 代表自動化變量。
- 步驟十二: TerminateInstance (
aws:changeInstanceState
動作) -
此步驟會藉由終止執行中的執行個體來清除自動化。
- 輸出
-
本節可讓您將各種步驟的輸出或任何參數的值指定為自動化輸出。根據預設,輸出是由自動化建立的已更新 Windows AMI 之 ID。
注意
根據預設,自動化執行 AWS-UpdateWindowsAmi
Runbook 和建立暫時執行個體時,系統會使用預設 VPC (172.30.0.0/16)。如果刪除預設 VPC,您會收到以下錯誤:
VPC 未定義 400
若要解決此問題,您必須複製 AWS-UpdateWindowsAmi
Runbook 並指定子網路 ID。如需詳細資訊,請參閱 VPC 未定義 400。
使用自動化建立已修補的 Windows AMI
安裝和配置 AWS Command Line Interface (AWS CLI),如果你還沒有。
如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI。
-
執行下列命令,以執行
AWS-UpdateWindowsAmi
Runbook。將每個範例資源預留位置
取代為您自己的資訊。以下的範例命令使用最新的 Amazon EC2 AMI,將需要套用的修補程式數量降至最低。如果執行此命令超過一次,您必須為targetAMIname
指定一個唯一的值。AMI 名稱必須為唯一。aws ssm start-automation-execution \ --document-name="AWS-UpdateWindowsAmi" \ --parameters SourceAmiId='
AMI ID
',IamInstanceProfileName='IAM instance profile
',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole
'命令會傳回執行 ID。複製此 ID 到剪貼簿。您可以使用此 ID 檢視自動化的狀態。
{ "AutomationExecutionId": "
automation execution ID
" } -
若要使用檢視自動化 AWS CLI,請執行下列命令:
aws ssm describe-automation-executions
-
執行以下命令檢視自動化進度的詳細資訊。
aws ssm get-automation-execution --automation-execution-id
automation execution ID
注意
在此範例自動化中執行的 Windows 修補程式可能需要 30 分鐘或以上的時間完成,取決於修補程式的數量。