nginx.confとかは全くやっていませんが、とりあえず、手順メモです。
Chefレポジトリをknife-soloで作成
$ knife solo init repo-name
$ cd repo-name
$ git init
$ git add .
$ git commit -m "initial commit"
対象ノードにchef-soloをインストール
$ knife solo prepare hostname
$ git add nodes/hostname.json #自動生成された対象ノード用のjsonファイル
$ git commit -m "added nodes/hostname.json"
nginxをインストールするレシピの作成
$ knife cookbook create nginx -o site-cookbooks
$ vim site-cookbooks/nginx/recipes/default.rb
site-cookbooks/nginx/recipes/default.rb
#
# Cookbook Name:: nginx
# Recipe:: default
#
# Copyright 2013, YOUR_COMPANY_NAME
#
# All rights reserved - Do Not Redistribute
#
package "nginx" do
action :install
end
service "nginx" do
supports :status => true, :restart => true, :reload => true
action [ :enable, :start ]
end
$ vim nodes/hostname.json
nodes/hostname.json
{
"run_list":[
"nginx"
]
}
実行
# Vオプションで詳細が表示されました
$ knife solo cook hostname -V
Vagrantfileの"config.vm.network :private_network, ip:"で指定しているIPアドレスにアクセス
P.S.
実行した時、以下の表示がされ全く進まなくなる現象が出ました。(これでハマった...)
INFO: Chef client is running, will wait for it to finish and then run.
Vagrantのイメージ上でゴミ(?)プロセスを消して再度実行したらうまくいきました。
$ ps -ef | egrep "(ruby|chef)"
$ sudo kill xxx