chef + Vagrantを使ってみる手順
以下を前提とします。
- chef
- knife-solo
をMacに導入済。
Vagrantで仮想環境を作成済
なお、chef用語として、
ローカルMac = ワークステーション
VM = Node
と呼ぶ。
Vagrant仮想環境ホスト名をsshに追加しておく
vagrant ssh-config --host ホスト名 >> ~/.ssh/config
ローカルにchef用レポジトリを作成
knife solo init レポジトリ名
こんなリポジトリができます。
- cookbooks <= ネット上に共有されているものを入れる
- environments
- roles
- data_bags
- nodes
- site-cookbooks <= 自分で作成/編集したものを入れる
Nodeをchef対応にする
knife solo prepare ホスト名
cookbookを作成
knife cookbook create dir名 -o site-cookbooks/
こんな感じの構成のディレクトリができる。
- CHANGELOG.md
- attributes
- files
- metadata.rb
- recipes
-templates
-README.md
-definitions
-libraries
-providers
-resources
recipes/default.rbを編集
以下を追加します。
log "hello world"
cookbookをnodeに反映
chef-repository/nodes/ホスト名.jsonに以下を追加
{ "run_list":[ "recipe[レシピ名]" ] }