LoginSignup
33

More than 5 years have passed since last update.

Vagrant and Chef Zero on Windows or Mac

Last updated at Posted at 2015-01-19

ChefVagrantの進歩で周辺のツールも便利になりました。
Windowsはsshを追加するとKnife Zeroが使えます。

Chef Zeroの入門としてRuby(rbenv)の環境を自動構築する方法を紹介します。
(Chef Solo版はこちらです。)

Dependency

  • VirtualBox: 4.3.20
  • Vagrant: 1.7.2
  • Cmder: 1.1.4.1
  • Ubuntu: 14.04
  • Chef: 11.18.0
  • Ruby: 2.1.5
  • Rails: 4.2.0

(Chef12は安定するまで見送りました。)

Usage

VirtualBox

仮想化のVirtualBoxをインストールします。

Vagrant

VirtualBoxを操作するVagrantをインストールします。

Cmder

Windowsはsshgitのインストールが必要なのでCmderを使います。

Example

Rails Installation

Git

Vagrantfilecookbookをダウンロードします。
(OSが32bitの場合はbox_urlubuntu-14.04-i386_chefに変更して下さい。)

$ git clone https://github.com/hommachirb/chef-recipe-rails.git
$ cd ./chef-recipe-rails
$ edit Vagrantfile

rbenvcookbookをダウンロードします。
berkshelfで収集する方法が便利ですね。)

$ git clone https://github.com/opscode-cookbooks/apt.git ./cookbooks/apt
$ git clone https://github.com/fnichol/chef-ruby_build.git ./cookbooks/ruby_build
$ git clone https://github.com/fnichol/chef-rbenv.git ./cookbooks/rbenv

Vagrant

マシンを構築するとChefのRecipeでRubyの開発環境が構築されます。

$ vagrant up

ChefのRecipeを再実行するにはprovisionコマンドを利用します。

$ vagrant provision

Bundler

仮想マシンにログインします。

$ vagrant ssh

Railsをインストールして、アプリケーションを作りましょう。

vagrant@vagrant:~$ bundle config --global jobs 4
vagrant@vagrant:~$ gem install rails --no-rdoc --no-ri
vagrant@vagrant:~$ rails new rails-example
vagrant@vagrant:~$ cd rails-example
vagrant@vagrant:~$ rails server --binding 0.0.0.0

http://192.168.33.30:3000/にアクセスするとWelcomeが表示されます。

Tips

Chef Zero

Vagrantで構築したマシンにChef Local Modeで操作します。

Gem

Gemを利用するのでWindowsやMacにRubyのインストールが必要です。

$ gem install chef
$ gem install knife-zero

Local Mode

chef-recipe-railsをローカルモードで利用する準備をします。

$ mkdir .chef
$ echo 'local_mode true' > .chef/knife.rb

Environment

developmentを作ります。

$ knife environment create development
$ knife environment list

Role

レシピのrun_listを作ります。

$ knife role create rails
$ knife role show rails

Node

vagrant.vmのノードが作成されるので、run_listを追加します。

$ knife zero bootstrap 192.168.33.30 -x vagrant -i .vagrant/machines/default/virtualbox/private_key --sudo
$ knife node list
$ knife node show vagrant.vm
$ knife node run_list add vagrant.vm 'role[rails]'

Chef Client

仮想マシンのChef Clientを実行します。

$ knife zero chef_client 'name:*' -x vagrant -i .vagrant/machines/default/virtualbox/private_key --sudo -p 2222

@sawanobolyさんのローカルモードチュートリアルが参考になります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33