ChefをつかってmrubyをCookbookから手軽に入れよう

ChefをつかってmrubyをCookbookから手軽に入れよう

ご存知でしょうかmruby、最近話題に上がっています。

さて、『mrubyを試してみたいが環境のことがよくわからない。。』という声に勝手にお応えし、Chefのクックブックで手軽にLinuxサーバへ導入できるようにしてみました。

Chefをインストール

curl -L https://www.opscode.com/chef/install.sh | sudo bash

mruby cookbook を入れる

ローカルのCookbookリポジトリを初期化して、コミュニティのクックブックをインストールします。

make, gccが無い人はbuild-essentialもついでにインストールして下さい。gitは事前にパッケージなりでインストールを。

mkdir -p /var/chef/cookbooks
cd /var/chef/cookbooks
git init
touch README.md
git add README.md
git commit README.md -m 'initial commit'

knife cookbook site install build-essential ## GCCが無い場合のみ
knife cookbook site install mruby

これらすべて、Redhat/Debian系同じコマンドで良いので楽ですね。

mrubyをインストール

chef-solo -o 'build-essential,mruby' ## GCCがない
chef-solo -o 'mruby' ## GCCが既にある or 2回目以降

もうmrubyが使えますよ。実行時のmrubyのmasterがインストールされます。

# /usr/local/bin/mruby --version
mruby - Embeddable Ruby Copyright (c) 2010-2013 mruby developers

userのmgemを使いたい

アトリビュートとして追加しましょう、例えばこのようなJSON。force_rebuildを指定すればmrubyのmasterに更新がなくともビルドをしてくれます。

{
 "mruby": {
    "force_rebuild" : true,
    "build_options" : {
       "user_gems" : [
          [":git", "https://github.com/iij/mruby-io.git"]
        ]
    }
  }
}

再度ChefSoloを流しましょう。

chef-solo -o 'mruby' -j node.json -l info

# /usr/local/bin/mruby -e 'puts File, IO'
File IO

mruby-ioのmgemが使えるようになりました!

フィードバック

mrubyのcookbookへのご意見、プルリクエストは Github: https://github.com/higanworks-cookbooks/mruby までお願いします。

Author Profile

sawanoboly@higanworks
sawanoboly@higanworksについて

HiganWorks LLCの代表、クラウドを利用したインターネットアプリケーションのプラットフォーム構築・運用の自動化をテーマに活動しています。OpsCode承認コントリビュータ等、サービスに関連するオープンソースコミュニティにも参加しています。