LoginSignup
0
0

More than 5 years have passed since last update.

ChefをローカルのMacから実行する(Berksshelfを含む)

Last updated at Posted at 2015-01-16

このドキュメントでは、すでに公開されているCookbookを自分のローカル環境で実行できるまでの環境を作成することを目的としている。Chefの準備が整った後で、お試しにrbevn + Rubyをインストールする。

必要なgemを準備

今回はBerkshelfをCookbookの管理に用いたいので、一緒にインストールする。

gem install berkshelf
gem install knife-solo

又は

gem 'berkshelf'
gem 'knife-solo'
bundle install --path=.bundle

bundlegemをインストールした場合は、bundle execを付けて実行。

Chefの準備

サーバでChefが実行できるようにする

今回、検証環境としてvagrantを用いている。
knife soloを使う場合は、リモート側にrsyncをインストールしておく。

yum install rsync
knife solo prepare user@192.168.***.***

実行後、nodeディレクトリ以下にjsonファイルが作成される。

$ cat nodes/192.168.***.***.json 
{
  "run_list": [

  ],
  "automatic": {
    "ipaddress": "192.168.77.77"
  }

Berkshelfの準備

Berkshelfを利用できるようにする
berks init
Berksfileを編集

※今回はrbenvをお試してでインストールする。

site :opscode

cookbook "rbenv"

Cookbookの準備

berkshelfを用いて、Cookbookを外部から取得する。

Cookbookの取得
berks vender

recipeの準備

recipeの中でrbenvがインストールされるようにする

既存のCookbookにrecipeとmetadata.rbがある場合、以下を追加。

# recipe
include_recipe "rbenv::default"
include_recipe "rbenv::ruby_build"

include_recipe "rbenv::rbenv_vars"

rbenv_ruby "2.1.1" do
  ruby_version "2.1.1"
  global true
end
# metadata.rb
depends 'rbenv'

新たにCookbookを追加する場合は、Cookbookを作成後にrecipemetadata.rbそれぞれに上記を追加。

knife cookbook create rbenv-install

knifeでChef Soloを実行

knife solo cook user@192.168.***.***
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0