目次
1.環境構築
1.1chefのインストール
1.2knife soloのインストール
1.3リモートホストへChefをインストール
2.キッチンを作成する
3.新規レシピ作成
3.1クックブックの作成
3.2レシピの作成
3.3実行するリストへの追加
4.knife solo cook
1.環境構築
1.1chefのインストール
$gem install chef
上のコマンドを実行する
1.2knife soloのインストール
Gemfileを作成する
エディタでGemfileを開く。
source 'https://rubygems.org'
gem 'knife-solo',
:github => 'matschaffer/knife-solo',
:branch => 'master',
:submodules => true
と記述
その後、
$bundle install --path vendor/bundle を実行
するとknife soloがインストールされる
次にknifeの初期設定を行う必要がある。
$bundle exec knife configure
1.3リモートホストへChefをインストール
knife solo したいリモートホストへ
$bundle exec knife solo prepare [リモートホスト名]
するとリモートホストにChefがインストールされる
2.キッチンを作成する
$bundle exec knife solo init [repo]
上のコマンドでキッチン(リポジトリ)が作成される
$cd [repo]
3.新規レシピ作成
3.1クックブックの作成
2.で作成した[repo]/site-cookbooks配下に、クックブックを作成する。
$bundle exec knife cookbook create [クックブック名] -o site-cookbooks
例. $bundle exec knife cookbook create base -o site-cookbooks
3.2レシピの作成
レシピを以下のように作成する。 [repo]/site-cookbooks/
base/recipes/default.rb
package 'httpd' do
action :install
end
service 'httpd' do
action :start
end
3.3実行するリストへの追加
recipeを書いたら、[repo]/nodesのjsonファイルのrecipeリストへ、
新しく追加したrecipeを加える必要がある
例. [repo]/nodes/[ローカルホスト名].json
{
"run_list": [
"base"
]
}
4.knife solo cook
run_listに追加したらいよいよcook
[repo]の配下で
$bundle exec knife solo cook [リモートホスト名]
これでrecipeに書かれた内容が実行される
例に上げたレシピの場合だと、
リモートホストにapacheがインストールされ、起動する。
参考にさせて貰ったサイト様(敬称略)