環境
Ubuntu14.04
概要
私がRailsなどの開発環境を構築するときは、VagrantでVM(Ubuntu14.04)を立てて、その中でitamaeを使ってライブラリをインストールするようにしています。
本記事では、Ubuntu14.04上でitamaeの環境を構築する方法を説明します。
itamae環境構築
ruby 2.2.4をrbenvのglobalにインストール
参考: Ubuntu14.04にrbenvでRuby2.2.2をインストール
itamaeをインストールするためにはRuby2.0以上が必要ですが、Ubuntu14.04にデフォルトでインストールされているRubyのバージョンは1.9なので、まずはrbenvでRuby2.2.4をインストールします。
$ sudo apt-get update
$ sudo apt-get install -y git rbenv libssl-dev libreadline-dev
# .bashrcに以下を追記してrbenvのパスを通す
$ vi ~/.bashrc
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)" >> ~/.bashrc
$ source .bashrc
# ruby-buildリポジトリを取得し、.rbenv/plugins配下に展開
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install 2.2.4
$ rbenv global 2.2.4
rbenv-sudoをインストール
rbenv-sudoを使うと、rbenvでインストールしたrubyをsudo権限で実行できるようになります。
itamaeを実行する時にsudo権限が必要なので入れておきます。
$ git clone git://github.com/dcarley/rbenv-sudo.git ~/.rbenv/plugins/rbenv-sudo
itamaeをインストール
$ gem install itamae
$ rbenv rehash
itamaeの設定ファイル作成と実行
設定ファイル作成
bootstrap.rb
module RecipeHelper
def include_cookbook(name)
include_recipe File.join(__dir__, "cookbooks", name, "default.rb")
end
end
Itamae::Recipe::EvalContext.include(RecipeHelper)
include_recipe File.join("roles", node[:role] + ".rb")
cookbooks/mysql/default.rb
# MySQLインストール
package 'mysql-server'
package 'libmysqlclient-dev'
# MySQL権限設定
execute 'mysql permission' do
command <<-EOL
chown mysql:mysql /var/log/mysqld.log
chown -R mysql:mysql /var/lib/mysql
EOL
end
roles/web.rb
package 'vim'
execute 'apt-get update' do
command 'apt-get update -y'
end
package 'build-essential' do
action :install
end
include_cookbook 'mysql'
package 'nginx' do
action :install
end
package 'openssl'
package 'git'
package 'iptables'
package 'ntp'
package 'libicu-dev'
package 'nodejs'
package 'npm'
package 'nodejs-legacy'
package 'cmake'
package 'imagemagick'
nodes/vagrant.yaml
role: web
itamae実行
$ rbenv sudo itamae local -y nodes/vagrant.yaml bootstrap.rb