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のバージョンをインベントリからまとめて確認することが可能となる・・・はずです。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark