チュートリアル: AWS CLI で SSM Agent を自動的に更新する
以下の手順では、AWS Command Line Interface を使用して State Manager の関連付けを作成するプロセスを説明します。関連付けにより、ユーザーが指定したスケジュールに従って SSM Agent エージェントを自動的に更新できます。SSM Agent の詳細については、「SSM Agent の使用」を参照してください。コンソールを使用して SSM Agent の更新スケジュールをカスタマイズするには、「SSM Agent の自動更新」を参照してください。
SSM Agent の更新に関する通知を受け取るには、GitHub の「SSM Agent リリースノート
開始する前に
次の手順を完了する前に、Systems Manager 用に設定されている実行中の Amazon Elastic Compute Cloud (Amazon EC2) インスタンス (Linux、macOS または Windows Server) が少なくとも 1 つあることを確認します。詳細については、「AWS Systems Manager のセットアップ」を参照してください。
AWS CLI または AWS Tools for Windows PowerShell を使用して関連付けを作成する場合は、次の例に示すように --Targets
パラメータを使用してインスタンスをターゲットにします。--InstanceID
パラメータは使用しないでください。--InstanceID
パラメータはレガシーパラメータです。
SSM Agent を自動的に更新するための関連付けを作成するには
まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。
-
Amazon Elastic Compute Cloud (Amazon EC2) タグを使用してインスタンスをターゲットにして関連付けを作成するには、以下のコマンドを実行します。各
リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。Schedule
パラメータは、毎週日曜日の午前 2:00 に関連付けを実行するようスケジュールを設定します。(UTC)State Manager の関連付けは、すべての cron および rate 式をサポートしていません。関連付けの cron および rate 式の作成の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」を参照してください。
インスタンス ID をカンマ区切りのリストで指定すると、複数のインスタンスを対象にすることができます。
更新したい SSM Agent のバージョンを指定できます。
システムが以下のような情報を返します。
{ "AssociationDescription": { "ScheduleExpression": "cron(0 2 ? * SUN *)", "Name": "AWS-UpdateSSMAgent", "Overview": { "Status": "Pending", "DetailedStatus": "Creating" }, "AssociationId": "123..............", "DocumentVersion": "$DEFAULT", "LastUpdateAssociationDate": 1504034257.98, "Date": 1504034257.98, "AssociationVersion": "1", "Targets": [ { "Values": [ "
TagValue
" ], "Key": "tag:TagKey
" } ] } }システムは、インスタンス上で関連付けを作成し、作成後に状態を適用することを試みます。関連付けのステータスは
Pending
と表示されます。 -
作成した関連付けの最新のステータスを表示するには、次のコマンドを実行します。
aws ssm list-associations
インスタンスで最新バージョンの SSM Agent が実行されていない場合、ステータスは
Failed
になります。新しいバージョンの SSM Agent が公開されると、関連付けによって自動的に新しいエージェントがインストールされ、ステータスがSuccess
と表示されます。