このエントリーは、Mackerel Advent Calendar 2020の14日目エントリーです。
定番ネタですが、自分がmackerel-agentをAnsibleで設定する場合のPlaybookの記述についてです。サーバーにはUbuntu 20.04.1 LTSを使用しています。
Playbook
- hosts: ubuntu become: yes tasks: - name: (1)setup repository shell: wget -q -O - https://mackerel.io/file/script/setup-apt-v2.sh | sh - name: (2)install mackerel-agent apt: name: [ 'mackerel-agent', 'mackerel-agent-plugins', 'mackerel-check-plugins' ] - name: (3)setup mackerel-agent.conf template: src: template/mackerel/app dest: /etc/mackerel-agent/mackerel-agent.conf - name: (4)init mackerel-agent shell: mackerel-agent init -apikey="{{ mackerel_api_key }}" - name: (5)start mackerel-agent systemd: state: restarted name: mackerel-agent
解説
Mackerelの 新規ホストの登録 内の「段階的に新規ホストを登録する」の手順をばらして順を追って記述するのが基本的方針です。
(1) APTのレポジトリーを設定する
この部分はMackerelのサイトで記述されているスクリプトそのままです。
(2) mackerel-agent をインストールする。
コマンドだと
sudo apt-get install mackerel-agent
する箇所に相当します。
(3) mackerel-agent.conf を作成する
この部分は独自です。apikeyを設定する前にテンプレートからmackerel-agent.conf を作成します。
template/mackerel/app の内容は以下の通りになっています。この部分は実際の監視で必要な部分を記述します。
[plugin.metrics.linux] command = "mackerel-plugin-linux"
監視で独自のプラグインを使用している場合は、Ansibleのこの後の箇所にプラグインのセットアップ処理を記述します。
(4) Mackerel-agentの初期化
(3)で作成したmackerel-agent.confにapikeyを設定します。
ここでは、都度mackerel-agent.confを作成してあとapikeyを設定していますが、mackerel-agent initコマンドはべき等性があるので、実行前にapikeyが設定済みかをチェックする必要はありません。
(5) mackerel-agentの起動
Pakcer等でOSのイメージを作成する際にAgentの組み込みを行う場合は、この部分の処理はスキップして、仮想マシンのインスタンス作成後のOS起動時にmackerel-agentのサービスを起動します。
実行している様子
以上、mackerel-agentをAnsibleで設定する場合のPlaybookの記述について解説しました。