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>'