Webアプリエンジニア養成読本 Advent Calendar 2014 - Qiita の19日目です。そろそろ書くことなくなってきましたね。
Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)
- 作者: 和田裕介,石田絢一(uzulla),すがわらまさのり,斎藤祐一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/11
- メディア: 大型本
- この商品を含むブログ (5件) を見る
本書を読んだあなたが
もし、Rubyを気に入ってくれているのだけど、直近のプロジェクトでRubyは使わないんだなーという場合に役立つかもしれません。
プロビジョニングツールを使ってみよう
最近流行ってますよね。DevOpsってヤツ。デブオプス。Ruby製のツールとしてはChefが一世を風靡したことは記憶にあたらしいところです。
しかし、この世はChef疲れを起こす人々であふれています*1。本稿ではもう少しお手軽に使えるツールとして ryotarai/itamae · GitHub について説明していきます。
ChefやitamaeはDSLで設定を書いていくスタイルですが、Rubyの構文が使えますので、本書で手に入れた知識が役に立つ時です!
itamaeをインストールする
前提となる環境は以下のとおりです
まずはGemfileの生成を行います。
$ bundle init Writing new Gemfile to /private/tmp/itamae_sample/Gemfile
おもむろにGemfileを編集します。
# A sample Gemfile source "https://rubygems.org" gem "itamae"
Gemfileの編集を行ったら bundle install
を実行してインストールします。
レシピファイルを作成します
ここでは、自分のOSXの環境構築でインストールするお決まりのツールをitamaeでインストールするようにしてみましょう*2。
recipe.rbというファイルを作成し、下記の内容を記述してみましょう。golangをパッケージングシステムを使ってインストールするための内容です。
package
は実行されるOSによって最適なパッケージシステムが選択されます。つまり、OSX上で実行する場合はHomebrewが選択されます。
package 'go'
これだけ記述したら、itamaeを実行してみます。
itamaeにはlocalモードとsshモードがありますが、今回はローカルに対して実行したいのでlocalという引数を使っています。そして、最後に作成したレシピファイルのパスを指定してあげます。
$ bundle exec itamae local recipe.rb INFO : Starting Itamae... INFO : Recipe: /private/tmp/itamae_sample/recipe.rb INFO : package[go] INFO : action: install
そうすると、goパッケージがインストールされました。
もうちょっとRubyっぽさを……
これだけで「ドヤ?Rubyで掛けて便利やろ?」などと言われても「ハァ、Rubyっすねぇ」というしかないと思うので、もうちょっとRubyっぽい感じでかける例にしてみましょう。例えば、goだけではなく、treeもインストールしたい!!という時、愚直に書くとこんな感じになるでしょう。
package 'go' package 'tree'
しかしここはRubyの世界。このようにも書けます。
%w(go tree).each do |name| package name end
goとtreeをRubyの構文で配列にしてeachで繰り返すようにしました。
$ bundle exec itamae local recipe2.rb INFO : Starting Itamae... INFO : Recipe: /private/tmp/itamae_sample/recipe2.rb INFO : package[go] INFO : action: install INFO : package[tree] INFO : action: install
これを実行すると、複数のファイルが読み込まれているのがわかりますね。
itamae自体は設定ファイルをjsonで外出しにする機構もあるので、あまりこういう使い方はしないかもしれませんが、用途に応じて、簡素に書ける方法を考えていくのが良いですね。
雑なまとめ
- itamaeは便利
- itamaeはRubyが書けるので便利
- itamaeはChefと違って少ない設定でかけるので、ローカルの環境構築とかに便利
- itamaeの詳細はGitHubを見よう!(当たり前ですがpackage以外にもgitとか色々あります!)
- itamae自体はバックエンドに serverspec/specinfra · GitHub を使っているため、RedHatやBSDでも動きます*3
- Serverspecと同じものを使っているということですね
- すぐにRubyを触れない状態でも、Rubyを使う用途はアプリケーション以外にもあるので、そういうところから狙うと良いかもしれません
書かなくてはならない宣伝
itamaeの設定を書くくらいであれば、Rubyを簡単に知っていれば十分なので、↓のRubyの解説を読んだくらいでもなんとかできるんじゃないかなーと思います!!
Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)
- 作者: 和田裕介,石田絢一(uzulla),すがわらまさのり,斎藤祐一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/11
- メディア: 大型本
- この商品を含むブログ (5件) を見る
次のアドベントカレンダーおじさんは @koemu さんです。
enjoy!