Ansible で Mackerel の設定を取得したり変更したりできたらなーと思う時があります。 例えば…
- アラートが鳴ってしまうのを防ぐために、Ansible 実行中はホストのステータスを standby にしたい
- 特定のロールが設定されているホストの場合だけ、ファイルをコピーしたい
でも、Ansible の command モジュールで mackerel-agent を実行してこのような処理をさせるのは手間がかかります。 そこで、 Ansible の設計にのっとった形で簡単に Mackerel を操作できるように、プラグインを作ってみました! 1
https://github.com/YujiSoftware/ansible-mackerel-module
どういう風に使えるの?
例えば、Ansible 実行中はホストのステータスを standby にしたいとき。
- name: Set Mackerel Host Status mackerel_host: status: standby # ~ホストの更新処理~ - name: Set Mackerel Host Status mackerel_host: status: working
ホストのロールを設定したいとき。
- name: Set Mackerel Host Role Fullnames mackerel_host: role_fullnames: - test_project:web
ロールによって動作を変えたいとき。
- name: Get Mackerel host configuration mackerel_host: register: mackerel - name: Copy file if roles has "test_project" copy: src: ../files/example.conf dest: /etc/httpd/conf.d/ when: mackerel['host']['roles']['test_project'] is defined
こんな感じに使えます! (ちなみに、API Key や Host ID はサーバ内にある mackerel-agent の設定ファイルをデフォルトで読み取るので、記述は不要です)
詳しい使い方は、GitHub の README をご覧ください!
まとめ
まだ ホストの情報取得/ステータス設定/ロール設定 しか対応していません。2 今後、JOJOに対応する操作を増やしていく予定です。
もし、こういうことができるようにしたい!という要望がありましたら、GitHub の Issues へ書き込んでいただければと思います。もしくは Up vote 👍 をお願いします。 https://github.com/YujiSoftware/ansible-mackerel-module/issues
ぜひご利用ください!
-
すでに mackerelio/ansible-mackerel-agent というのがあるのですが、これは mackerel-agent をインストールするための Ansible テンプレートです。一方で、今回作ったプラグインは Mackerel API のラッパーです。↩
-
Mackerel Advent Calendar が空いてる!チャンスだ!と思って急いで作りました。↩