5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

tarantoolのご紹介

tarantoolというのがあって、触ってみたかったので触ってみる。

Key-value storeとapplicationサーバが
合わさったフレームワークのようだ。

本当はMacOS X上でやりたかったが...

MacOS Xであれば、homebrewでtaranntoolをビルドできるらしかった。
が、この記事を書いている時点では、ビルドが通らない!
なんでだって思ったらPRが出てた...

Mac OS support #638

Ubuntuで環境を構築

Vagrant + bentoを利用し、Ubuntuで環境を構築することにした。

bentoプロダクトのVagrant.boxを追加する

bentoプロダクトのVagrant.boxを追加する

> vagrant box add bento-Ubuntu-14.04 http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box 

暫し待つ

ansibleのインストール

ansibleのインストールをする。

> brew install ansible

Vagrantのインストール

バイナリファイルを公式から落としてくると楽。

Vagrantの環境をgit clone

環境整えるのがめんどくさすぎるので
ansible-playbookとVagrantfileを同梱した。

Vagrant環境の立ち上げ・provisioning

リポジトリをgit clone

> git clone git@github.com:futoase/environment-for-tarantool.git

以下のコマンドでVagrant box立ち上げ、provisioning開始

> cd environment-for-tarantool
> vagrant up --provision

手動でtarantoolをインストールし、サンプルを動かしたい場合、
luarockのリストにtarantool/httpを追加しないといけない。

> luarocks --local install http://rocks.tarantool.org/http-scm-1.rockspec

tarantoolのテストをする

tarantool.orgのトップにあるサンプルを実行してみる

tarantool.lua
#!/usr/bin/env tarantool

box.cfg{}
hosts = box.space.hosts
if not hosts then
  hosts = box.schema.create_space('hosts')
  hosts:create_index('primary', { parts = {1, 'STR'} })
end

local function handler(self)
  local host = self.req.peer.host
  local response = {
    host = host;
    counter = hosts:inc(host);
  }
  self:render{ json = response }
end

httpd = require('http.server')
server = httpd.new('0.0.0.0', 8080)
server:route({ path = '/' }, handler)
server:start()

サーバの起動

先ほどのファイルをVagrantfileのあるディレクトリに移動し、
サーバの起動を行ってみる。

> cd environment-for-tarantool
> vagrant ssh
> cd /vagrant
# vagrant にログイン後、taranatool.luaを/vagrant以下に作成する
> chmod +x ./tarantool.lua
> ./tarantool.lua

動作確認

リロードするとカウンターが増えていく。

Screen Shot 2014-12-01 at 20.56.13.png

気になる点

tarantool lua package
をみると、YAMLJSON、他MsgPackuuidなどウェッブサービスを実現するためのサーバに必要となりそうなライブラリが同梱されている。

これらを使ってテストしたかったが、
環境を整えている時点で終わってしまった... orz

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?