AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

通过脚本重启托管实例

如果您使用 Run Command 运行的脚本用于重启托管实例,则您必须在脚本中指定一个退出代码。如果您使用其他一些机制尝试从脚本重启实例,则即使重启是脚本的最后一步,脚本执行状态也可能无法正确更新。对于 Windows 托管实例,您需在脚本中指定 exit 3010。对于 Linux 托管实例,您需指定 exit 194。退出代码用于指示 SSM 代理 重启托管实例,然后在重启完成后重新启动脚本。在重启开始之前,SSM 代理 会通知云中的 Systems Manager 服务,通信将在服务器重启期间中断。

创建幂等脚本

在开发用于重启托管实例的脚本时,使脚本具有幂等性,以便脚本执行在重启后从中断的位置继续进行。

以下是多次重启实例的幂等脚本的概要示例。

$name = Get current computer name If ($name –ne $desiredName) { Rename computer exit 3010 } $domain = Get current domain name If ($domain –ne $desiredDomain) { Join domain exit 3010 } If (desired package not installed) { Install package exit 3010 }

以下脚本示例使用退出代码来重新启动实例。Windows 示例在实例上安装 Hypver-V 应用程序,然后重新启动该实例。Linux 示例在 Amazon Linux 上安装程序包更新,然后重新启动该实例。

Windows 示例

$hyperV = Get-WindowsFeature -Name Hyper-V if(-not $hyperV.Installed) { # Install Hyper-V and then send a reboot request to SSM Agent. Install-WindowsFeature -Name Hyper-V -IncludeManagementTools exit 3010 }

Amazon Linux 示例

#!/bin/bash yum -y update needs-restarting -r if [ $? -eq 1 ] then exit 194 else exit 0 fi