この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
先日[レポート]「Mackerelによる簡単サーバー管理入門と発展形」 at 第21回さくらの夕べ in 札幌に参加してきたのを機に改めてmackerelに興味を持ったので、早速使ってみることにしました。今回はmackerel-agentのセットアップをknife-soloを使ってやってみたいと思います。
やってみる
mackerelのアカウントを作成する
mackerelのWebサイトの右上の[無料アカウントを作成]のボタンからアカウントを作成します。最初の1ヶ月間は無料、その後もFreeプランというのがあるので怖くないです。サクッと作りましょう。
アカウントを作成し、初めてログインした状態のmackerelコンソールです。Smokeymonkeyというオガーニゼーションが1つだけある状態で、ServicesもRoleもありません。
オーガニゼーションのAPIキーを確認する
mackerel-agentをmackerelに登録するためには、登録対象のオーガニゼーションのAPIキーが必要です。オーガニゼーションの[詳細]をクリックします。
オーガニゼーションの概要ページを開くと、下部に[APIキー]が表示されます。これが後ほどのrecipeで必要になります。
knife-soloのレシピ環境を整える
そもそもknife-solo環境が整備されていない場合は、MBAで以下のように環境を整えます。
$ gem install chef
$ knife configure
$ gem install knife-solo
$ knife solo init chef-repo
次にGithubに公開されているcookbook-mackerel-agentを取得...するのですが、他のcookbooks(yumとapt)との依存があるので、面倒臭いからBerkshelfを使ってごそっと用意します。
$ gem install berkshelf
$ cd ~/chef-repo/
$ vi Berksfile
source 'https://supermarket.getchef.com'
cookbook 'mackerel-agent', git: 'https://github.com/mackerelio/cookbook-mackerel-agent.git', tag: 'v1.0.0'
$ berks vendor cookbooks
今回はバッチサーバをセットアップすると想定し、rolesの下にbatch.jsonというファイルを作成します。YOUR_ORG_APIに先ほど確認したオーガニゼーションのAPIキーを入力します。rolesでは[サービス名:サーバ名]という形で設定します。今回はBatchサービスの中のbatch1というサーバであると想定しています。 他にバッチサーバとしてインストールしたいことやセットアップしたいことがあれば、このファイルに追加していきます。
$ vi roles/batch.json
{
"name" : "batch",
"json_class": "Chef::Role",
"override_attributes" : {
"mackerel-agent" : {
"conf" : {
"apikey" : "<YOUR_ORG_API>",
"roles" : ["Batch:batch1"]
}
}
},
"run_list": [
"mackerel-agent"
]
}
そうすると、こんな感じのディレクトリ構成になったかと思います。
.
├── Berksfile
├── cookbooks
│ ├── apt
│ ├── mackerel-agent
│ └── yum
├── data_bags
├── environments
├── nodes
├── roles
└── batch.json
knife-soloを実行する
さて、本題です。まずはprepareで対象サーバにchefをインストールします。
$ knife solo prepare -i ~/.ssh/mykey.pem ec2-user@192.168.0.1
するとnodesフォルダの下にファイルが作成されるので、修正します。具体的にはrun_listで"role[batch]"が呼ばれるようにします。
$ vi nodes/192.168.0.1.json
{
"run_list": [
"role[batch]"
]
}
では実行!cookします!
$ knife solo cook -i ~/.ssh/mykey.pem ec2-user@192.168.0.1
Running handlers:
Running handlers complete
Chef Client finished, 3/10 resources updated in 8.231115224 seconds
できました!
mackerelコンソールを確認すると、ちゃんと登録されていますね!
さいごに
ということで、とりあえず使い始めてみました。今後もいろいろ試してブログにしてみたいと思います。