td-agent環境を構築するVagrantfileを作ったときのメモ
縁あって、td-agent (Treasure Data Agent)をさわる機会があり、そのとき調べた内容を元に、Vagrantfileをつくって、環境構築が再現できるように整理した。
VagrantやChefについては、既にご存知なことを前提に書いてます。
以下の手順で実施する。
1. Vagrantfileを作成
2. td-agentをインストールするレシピを作成
3. vagrant up
- 作者: Mitchell Hashimoto,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/02/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (8件) を見る
入門Chef Solo - Infrastructure as Code
- 作者: 伊藤直也
- 出版社/メーカー: 伊藤直也
- 発売日: 2013/03/11
- メディア: Kindle版
- 購入: 16人 クリック: 1,027回
- この商品を含むブログ (18件) を見る
では、さっそく詳細な手順を、、っとその前に、以下のファイルたちは、GitHubにうぷしたから、良ければどぜう。
moyfujii/td-agent-ubuntu1404lts · GitHub
1. Vagrantfileを作成
今回は、 Ubuntu1404LTSサーバーの64bitを対象にしてみた。*1
Vagrantfileは、以下の内容になった。
# -*- mode: ruby -*- # vi: set ft=ruby : VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "td-agent-ubuntu1404lts" config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box" config.vm.network "forwarded_port", guest: 8888, host: 8888 config.vm.provision "chef_solo" do |chef| chef.cookbooks_path = "./cookbooks" chef.run_list = [ "td-agent" ] chef.json = { "td-agent" => { apikey: "YOUR_API_KEY" # ここにapikeyを指定してね } } end end
だいたいやってるのは、
- boxの名前を、 "td-agent-ubuntu1404lts" に
- boxとってくるurlを指定
- ゲストの8888ポートを、ホストの8888にフォワード
- chefで、 "locale" と "td-agent" レシピを指定
- chefのnode["td-agent"]["apikey"]の値を指定
ってぐらい。
2. td-agentをインストールするレシピを作成
Vagrantfileに書いてしもたし、レシピを作るわ。
本日のcookbookはこんな感じ。
▾ cookbooks/ ▾ td-agent/ ▾ attributes/ default.rb ▾ recipes/ default.rb ▾ templates/ ▾ default/ td-agent.conf.erb
レシピはこんな感じ。
execute "curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh" do not_if "test -f /etc/td-agent/td-agent.conf" end template "/etc/td-agent/td-agent.conf" do owner "root" group "root" mode 0644 end execute "/etc/init.d/td-agent restart"
Treasure Dataが公開しているTDをインストールするためのシェルスクリプトを実行して、td-agent.confを置き換えて再起動してる。
3. vagrant up
で、
$ vagrant up
を実行するといい感じに起動できるはず。
その後、
$ vagrant ssh
してSSH接続し、
$ td account $ td db:list
みたいな感じでうまいこと接続できたらいけてる。
いけん場合は、API KEYがちゃんと指定できてないとかが考えられる。
以上です!
*1:td-agentは公式にUbuntu1204LTSまで対応しているらしいが、1404LTSでもいけたしいっかって感じで。