Itamaeレシピ集 - Ruby/nginx/MySQL/Redis/etc
Itamaeを使ってみる。
選定基準は、
みたいな感じです。基本的にRails使うような想定をしております!
構成
以下の構成を目標にがんばります。
Capistrano
Railsのデプロイ先のサーバーの設定をしたいので、先にCapistranoの設定をしておきました。
Capistranoの設定は割愛。以下の記事を参考にしてくださると助かります。
itamae
itamaeをインストールします。
$ gem install itamae
以下に、この記事の順番でitamaeのrecipeたちを作っていきます。
https://github.com/totzyuta/itamae-sample
base
recipes
以下にレシピをこれからどんどん突っ込んでいって、recipes/base.rb
で全部読み込んでしまうって感じの構成にしようと思っております。
なんかActiveRecordっぽくてかっこいいじゃん笑
baseはこんな感じにしてみる。
%w(yum_update ruby_build mysql_for65 nginx redis).each do |resource| include_recipe "./#{resource}.rb" end
Ruby by rbenv
バージョン管理ツールとしてrbenvを、Ruby 2.2.3をインストールしてglobalな設定にするところまで。
以下の記事を参考にさせていただきました。
http://qiita.com/fukuiretu/items/337e6ae15c1f01e93ec3
長いのでソースコードはここでは掲載やめときますー。Rubyをbuildするためのrecipeの差分はこんな感じ。
https://github.com/totzyuta/itamae-sample/commit/1fd3f77a6a6b768eaf99fed18a79e06067849527
MySQL
MySQLのレシピは、こんな感じになりました。
# recipes/mysql_for65.rb execute "yum -y remove mysql*" package "http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm" %w(mysql-community-server mysql-community-devel).each do |pkg| package pkg end service "mysqld" do action :start end
差分は以下。
https://github.com/totzyuta/itamae-sample/commit/dc53aabd968fb5915bba42470d46b3ba27e52d39
nginx
続いて、nginxのレシピ。インストールしてから、confファイルをサーバーに配置して、serviceをstart。
package 'nginx' do action :install end remote_file "/etc/nginx/nginx.conf" do source "../remote_files/nginx.conf" end remote_file "/etc/nginx/conf.d/app.conf" do source "../remote_files/app.conf" end service 'nginx' do action [:enable, :start] end
リモートに実際に配置したいリソースは、/remote_files
以下に突っ込んでいくことにしてます。
redis
redisうまく入らなかったので、以下を参考にさせていただきました。
https://github.com/ysk1031/itamae-recipe/blob/master/recipes/redis.rb
# recipes/redis.rb package "redis" do options "--enablerepo=epel" action :install end service "redis" do action %i(enable start) end
https://github.com/totzyuta/itamae-sample/commit/1fc9f2dfe9af1c63d90ecf93752cc5e2086a76a6
yum update
先ほどのリポジトリで、yumのupdateも自動で走るようにしていたのでこれも入れようということでレシピ作っておきます。
# recipes/yum_update.rb execute "yum clean all" do user "root" end execute "yum update -y" do user "root" end
https://github.com/totzyuta/itamae-sample/commit/fe47e164dd39aa92a5ff8e7b0f784c9d8eaa6b5f
まとめ
ということで、よく使う構成でプロビジョニングできるようにしてみました。
itamaeさわるの初めてでしたが、chefほどいろいろ勉強することもなくて非常にとっつきやすい印象で楽しかったです。
参考サイト
- itamae-kitchen/itamae(https://github.com/itamae-kitchen/itamae)
- Itamaeが構成管理を仕込みます! ~新進気鋭の国産・構成管理ツール~