July 26, 2013

knife-soloでVagrantにnginxをインストールしてみる

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

No comments:

Post a Comment