LoginSignup
6
8

More than 5 years have passed since last update.

VagrantとChef-Soloのセットアップ

Last updated at Posted at 2014-12-30

環境

  1. MacOSX Mavericks
  2. Vagrant最新版(現時点では1.7.1)をインストール済み
  3. Virtual Box最新版をインストール済み
  4. 下記のディレクトリ構成を想定
project/
    chef/
    vagrant/
        www/

下準備

Rubyのセットアップ

rbenvでインストールしておく。
Berkshelfを使いたい場合はRubyバージョン2.0.0以上でないとGemのバージョンの関係から面倒。

Homebrewのインストールとrbenvのインストール Mac編

Bundlerのセットアップ

Chef-SoloだけではなくGemの管理をするために必須。

gem install bundler

Chef/Knife-soloのセットアップ

Bundlerを使ってインストールを行う。

Gemfileの作成

bundle init

Gemfileの編集

source "https://rubygems.org"

gem "chef"
gem "knife-solo"

インストール

bundle install --path vendor/bundle

--path引数について

--path 引数によりカレントディレクトリの vendor/bundle ディレクトリにGemをインストールする。

Chefリポジトリのセットアップ

Chefのリポジトリを作成。
project/chef をリポジトリとして指定。

bundle exec knife solo init ./chef

Vagrantのとりあえずの設定

Vagrantファイルを生成。
ここからは project/vagrant ディレクトリで実行。

vagrant init

生成されたVagrantfileを下記のように編集。

Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.ssh.insert_key = false
  config.vm.box = "chef/centos-6.5"
  config.vm.network :private_network, ip: "192.168.33.10"
  config.vm.synced_folder "./www", "/var/www"
end

Insecure Private Keyの有効化

Vagrant 1.7.0以上のみ。
これをしないと仮想マシン毎にPrivate Keyが生成されてしまうため、後述するSSHの設定が共通化できない。

config.ssh.insert_key = false

利用するboxの設定

とりあえずCentOS 6.5。
BOXは事前に追加しておくこと。

config.vm.box = "chef/centos-6.5"

ネットワーク

ホストマシンからのみアクセスを許可する。

config.vm.network :private_network, ip: "192.168.33.10"

ホストとの共有ディレクトリ設定

config.vm.synced_folder "./www", "/var/www"

ホスト側のディレクトリ project/vagrant/www は最初に作成しておかないとエラーが発生。
ゲスト側のディレクトリは再帰的に生成される模様。

Vagrant起動

とりあえず仮想環境を起動。

vagrant up

SSHの設定

vagrant ssh ではなく通常のsshで仮想環境に接続できるように。

~/.ssh/config
Host 192.168.33.*
    User                vagrant
    IdentityFile        ~/.vagrant.d/insecure_private_key
    IdentitiesOnly      yes

Vagrantfileに config.ssh.insert_key = false が設定されていないと、IdentityFileが仮想マシン毎に異なるので、上記だけでは接続出来なくなるので注意。

SSHで接続確認

ssh 192.168.33.10

接続かくにん!よかった

Knife-Soloの実行

project/chef ディレクトリに移動。

bundle exec knife solo prepare 192.168.33.10

これで仮想環境にChef-soloがインストールされ、project/chef/nodes/192.168.33.10.json が自動生成される。


CookbookやRecipeの制作は次。

6
8
1

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
6
8