読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

Knife solo を使う(Berksfileあり)

Chef

前回の「Knife Solo を使う」ではcookbookを自分で集めましたが、今回はBerkshelfを利用します。 何が良いのかというと cookbook の依存関係まで解決して、必要なcookbookを集めてくれるところです。

 

◆Berkshelfのインストール

コマンドラインから以下のコマンドを実行します。

$ gem install berkshelf

確認

$ berks -v
3.1.3

現在は3.1.3がインストールされます。ちなみに2系と3系ではコマンドの使い方が異なるので、注意が必要です。今回はバージョン3を使います。

◆knifeで作業リポジトリ作成

$ knife solo init test-repo
$ cd test-repo

 

◆Berksfileの編集

source "https://api.berkshelf.com"
 
cookbook 'apache2'

ちなみに以前(バージョン2?)は

site : opscode

cookbook 'apache2'

でした。

 

◆実行

※現在のknife solo cookではこの作業は不要です。途中で実行してくれます。

$ berks vendor cookbooks

としてもcookbookを集めることができます。ただし指定するフォルダが既に存在していると怒られるので、削除するか

$ berks vendor

で自動でberks-cookbooksフォルダに集めます。

 

◆nodesの編集

これは以前の「Knife Solo を使う」と同じです。

$ cd nodes
$ emacs -nw 192.168.1.5.json
{
  "run_list": [
    "recipe[apache2]"
  ]
}

◆knife solo実行

$ knife solo bootstrap 192.168.1.5

bootstrap を指定すると prepare, cook の両方を一度に実行してくれます。

 

◆動作確認

$ cd /etc/apache2/sites-available/
$ sudo a2ensite default
Enabling site default.
To activate the new configuration, you need to run:
  service apache2 reload
$ sudo service apache2 reload

アクセスしてみます。

$ curl http://localhost

It works!のデータが返ってくれば正しい挙動です。

 

ソース:

ChefでBerksを実行してOracle Javaをインストール

Chef soloはじめの一歩 Berkshelf で Chef Cookbook の管理