ディレクトリを作成し、以下はそのディレクトリ内での作業になります。
Gemfile作成
Gemfile
source 'http://rubygems.org'
gem 'chef'
gem 'knife-solo', '~> 0.3.0.pre3'
gem 'berkshelf'
bundleでgemをインストール
$ bundle install
Vagrantファイル作成
以下Vagrantfileを作成する。今回はCentOS6.5を採用。
複数のVMを立ち上げて、お互いに通信できるようdevelopを定義しています
Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# 開発用
config.vm.define "develop", primary: true do |dev|
develop.vm.box = "centos_6.5_x64"
develop.vm.box_url = "http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.5-x86_64-v20140504.box"
develop.vm.network "private_network", ip: "192.168.33.30"
develop.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2222
# ここのディレクトリは任意で
develop.vm.synced_folder "share/", "/vagrant",
owner: "vagrant",
group: "vagrant",
mount_options: ["dmode=775,fmode=775"]
develop.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
end
end
vagrantを起動します。
$ vagrant up
※ 初回はイメージファイルをダウンロードするため少し時間がかかります。
chefリポジトリ作成
$ bundle exec knife solo init .
※ chefの記述は別途書きます
hosts変更(Mac)
192.168.33.30 hogehoge.local
VagrantにChefを適応する
$ vagrant ssh-config --host hogehoge.local >> ~/.ssh/config # ssh hogehoge.local
$ knife solo prepare hogehoge.local # VagrantにChef等をインストール
$ knife solo cook hogehoge.local # Chefの実行
これでひと通りの開発環境構築する下準備ができました。
後はchefにnginxやmysqlのrecipeを追加して自分用にカスタマイズして下さい。