naokazuterada
7/26/2014 - 7:31 AM

Chef SoloとVagrantを使ったレシピ作成の流れ覚書

Chef SoloとVagrantを使ったレシピ作成の流れ覚書

# =============================

# Vagrantのセットアップ

cd <some-where>
vagrant init


# =============================

# SSH接続できるようにする

# 1: <host>を`192.168.50.12`とかにする場合
vi Vagrantfile
```
Vagrant::Config.run do |config|
  config.vm.box = "base"
  config.vm.network :hostonly , "<host>"
  ...
```
vi ~/.ssh/config
```
Host 192.168.50.*
  IdentityFile ~/.vagrant.d/insecure_private_key
  User vagrant
  ...
```

# 2: <host>を`melody`とかにする場合
vagrant ssh-config --host melody >> ~/.ssh/config


# =============================

# Chefディレクトリ作成

cd <another-where>
knife solo init <chef-repo>
cd <chef-repo>
git init
git add --all
git commit -m 'first commit'

# ディレクトリの使い分け
# cookbooks: サードパーティのクックブックを格納
# site-cookbooks: 自作のクックブックを格納

# リモートホストの準備
knife solo prepare <host>

# 準備したリモートホスト用のJSONファイルが作成されるのでコミット
git add --all
git commit -m 'add node json file'

# クックブックの作成&レシピ編集
knife cookbook create <cookbook-name> -o site-cookbooks
vi site-cookbooks/<cookbook-name>/recipes/default.rb
vi nodes/<host>.json


# =============================

# Chef Solo 実行

knife solo cook <host>

# 成功したらコミット
git add --all
git commit -m 'Add <cookbook-name>'