AWS Systems Managerでインベントリを実行して、/home/ec2-user以下にある*.txtファイルを確認、さらにカスタムインベントリで独自メタデータも登録・確認してみる。
事前にEC2インスタンスにSSM(Systems Manager)エージェントをインストール済みとします。
まずはAWS Systems Managerのマネージメントコンソールにて、Inventoryを選択して、セットアップインベントリを選択します。
「インスタンスの手動選択」にて、該当するインスタンスを選択します。スケジュールはCronスケジュールビルダーを選んで、今回は30分ごとの実行とします。
同じ画面のパラメータにて、デフォルト設定のままで、ファイルの部分のパスに/home/ec2-userを、パターンに*.txtを、再帰的にチェックを入れて「セットアップインベントリ」を選択します。
Managed Instancesを選択して、先ほど指定したインスタンスを選択します。
インベントリタブを選択して、インベントリタイプにてAWS:Fileを選択します。
最初は何もFile情報が表示されませんが、少し時間がたってから確認すると、以下のようにファイルがあることが確認できます。
カスタムインベントリを実行してみる
続いて、こちら にあるCustom Inventoryの方法を用いて、独自のメタデータをインスタンスに割り当ててみます。
独自のメタデータをインスタンスに割り当てる方法として、AWS CLIを使う方法が紹介されていたので、こちらでやってみます。
AWS CLIでコマンドを実行するのに必要な権限を割り当てた上で以下コマンドを実行します。
https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-inventory-walk-custom.html
State Managerを選択して、関連づけ(AWS-GatherSoftwareInventory)を選択して「関連付けの編集」を選択します。
aws ssm put-inventory --instance-id "xxxx" --items '[{"CaptureTime": "2018-04-30T10:01:01Z", "TypeName": "Custom:RackInfo", "Content":[{"RackLocation": "Bay B/Row C/Rack D/Shelf E"}], "SchemaVersion": "1.0"}]'
実行後に、そのメタデータが取得できるようになっているかを以下コマンドで確認します。
aws ssm list-inventory-entries --instance-id xxx --type-name "Custom:RackInfo"
結果は以下のように出力され、正しくメタデータが登録されていることがわかりました。
{ "InstanceId": "i-005991248a5f30bc2", "TypeName": "Custom:RackInfo", "Entries": [ { "RackLocation": "Bay B/Row C/Rack D/Shelf E" } ], "SchemaVersion": "1.0",[f:id:kenjifunasaki:20180430210852p:plain] "CaptureTime": "2018-04-30T10:01:01Z" }
Management Console上でも以下のようにカスタムインベントリ情報を選択ができ、
登録したメタデータも確認ができました。
注意事項
一つのマネージドインスタンスに複数のインベントリを関連づけることはできません。すでに別のインベントリが関連付けされていると、別のインベントリの実行が失敗しますので、ご注意ください。