継続的ブロギング

今度こそは続けるブログ

Vagrant + ChefでRails開発環境構築①

VagrantとChefでRailsの開発環境構築したのでメモ。

ここら辺の技術はホント流れが早いですよね。 2015年5月時点で、なるべく最新(っぽい)感じで構築しているつもりです。

環境

環境構築

VirtualBoxのインストール

以下のURLからインストールします。

Downloads – Oracle VM VirtualBox

Vagrantのインストール

以下のURLからインストールします。

Download Vagrant - Vagrant

Chefのインストール

昔のブログでも書きましたが、ChefのインストールはChefDKがオススメです。

MacでChef環境構築はChef Development Kitがオススメ - 継続的ブログ

以下のURLからインストールします。

Chef Development Kit | Chef Downloads | Chef

ChefDK

Chefを利用する際に必要な以下のツールがひとまとめになったものです。

  • Chef
  • Berkshelf
  • Test Kitchen
  • ChefSpec
  • Foodcritic

rubyも入っているので、既存の環境に依存することなく、Chef環境を構築できます。 今回は使いませんが、ChefDKには含まれていないknife-soloを使う場合は、

$ chef gem install knife-solo

とすればインストールできます。

ChefDKのRubyを使うために、以下の設定をします。

$ echo 'eval "$(chef shell-init SHELL_NAME)"' >> ~/.YOUR_SHELL_PROFILE

自分はZshなので、以下のように設定しました。

$ echo 'eval "$(chef shell-init zsh)"' >> ~/.zshrc

Vagrantプラグインのインストール

$ vagrant plugin install vagrant-vbguest
$ vagrant plugin install vagrant-chef-zero
  • ゲストOSにChefをインストールするために必要なプラグイン
$ vagrant plugin install vagrant-omnibus

実践

Vagrantの設定

Boxのインストール

以下のURLから好きなboxを選ぶ。

A list of base boxes for Vagrant - Vagrantbox.es

ここではcentos65という名前で、CentOS6.5のBoxを作成してます。

$ Vagrant box add centos65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

Vagrantfileの作成

好きなディレクトリに移動し、以下のコマンドを入力。

$ vagrant init

作成されたVagrantfileを修正。

Vagrant.configure(2) do |config|
  # Boxは「centos65」を使用
  config.vm.box = "centos65"
  # vbguestでエラーが出るので、一旦自動更新を切っておく
  config.vbguest.auto_update = false
  
  # ゲストOSに最新のChefをインストール
  config.omnibus.chef_version=:latest
  # Chef Zero Serverのリポジトリとしてカレントディレクトリを設定
  config.chef_zero.chef_repo_path = "."
  # プロビジョンはChef Client
  config.vm.provision :chef_client do |chef|
    chef.custom_config_path = "chef_custom_config"
    chef.run_list = []
  end
end

カレントディレクトリに設定ファイルchef_custom_configを作成。

# ssh関係の警告を出さないようにするため
Chef::Config.ssl_verify_mode = :verify_peer

Vagrantを起動

$ vagrant up

Chef Zero Serverも起動し、ゲストにChefのインストールが行われていると思います。

続き

Vagrant + ChefでRails開発環境構築② - 継続的ブログ

参考