AMIMOTOのWordPressバージョンをEC2 SSMでインベントリするドキュメントをCloudFormationで作ってみた
ぱっと見なんのことやらというタイトルですが、結構便利です。 経緯 EC2 System ManagerでWordPressのバージョンを管理したい インベントリするためにはaws-cliのコマンドをインスタンス内で実行し […]
目次
ぱっと見なんのことやらというタイトルですが、結構便利です。
経緯
- EC2 System ManagerでWordPressのバージョンを管理したい
- インベントリするためにはaws-cliのコマンドをインスタンス内で実行しないといけない
- EC2 System ManagerのRun Commandを使えばSSHせずにインベントリできそう
- どうせならEC2 System Managerのドキュメントにしておけばいちいちコマンド打たなくてすみそう
- CloudFormationならYAMLでコマンド定義できるよね
事前準備
インスタンスの準備
まずはAMIMOTO AMIを起動します。
UserDataに以下のコードを追記するとEC2 SSM エージェントのインストールも同時に行える(はず)です。
#!/bin/bash cd /tmp curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o amazon-ssm-agent.rpm yum install -y amazon-ssm-agent.rpm
参考:SSM エージェントのインストール – Amazon Elastic Compute Cloud
joのインストール
JSON生成にjoを利用します。
AMIMOTO AMIでJSON生成ツール”jo”を使用して、EC2 Systems ManagerのInventory Managerを使ってみる | WP-kyoto
使用するCloudFormation
https://gist.github.com/hideokamoto/dfff6a2158e42048b2f6c7c683f34bbe
マネージドコンソールから利用する
EC2の「コマンド履歴」から追加したドキュメントを実行します。
成功していれば「マネージドインスタンス」の「インベントリ」でWordPressのバージョンが確認できます。
使い所
今回はWordPressのバージョンを表示するだけでしたが、sudo -u ec2-user /usr/local/bin/wp core version
の部分をよしなに書き換えてやれば、「WP更新用のドキュメント」や「プラグインのバージョンをインベントリするドキュメント」みたいなものも作れそうです。
あとはまだ未トライですが、Automationと組み合わせることができれば管理しているWPの状態を定期的にモニタリングすることもできるかなと思います。
追記
「Automationで自動化すればいい」思っていたのですが、どうやら勘違いでした。
正しくは「State Managerで関連付けすることで、自動的にインベントリできる」です。
「State Manager」の[関連付けの作成]で画像のように作成したドキュメントを設定してやると、設定した間隔でドキュメントに定義したコマンドを実行してくれます。
今回作ったドキュメントは、「AMIMOTO AMIのデフォルトインストールされたWordPressのバージョンをインベントリする」というものです。
ですので、大量のAMIMOTO AMIインスタンスを運用している時にState Managerでこのドキュメントを関連付けしておけば、運用しているWordPressのバージョンをインベントリからまとめて確認することが可能となる・・・はずです。