Hai,Adachinです。
今回は久しぶりに学習コストが高いChefのブログです。
Berkshelf !!!
って聞いても分からないと思いますが、
chefのレシピって単純に書いてそのまま適用して・・・そのまま放置してしまうと、
パッケージとか勝手にバージョンアップされてしまいます。
依存関係とかめちゃくちゃ・・・
しかも簡単に「これはアップデートする、これはアップデートしない」とか管理を楽にしたいじゃないですか。
これを防ぐのがBerkshelfなわけで、設定しないとマズイことになります。(´・ω・`)オソロシイ
導入してみましょう!
■インストール
1 |
$ gem install berkshelf |
■Berksfileの設定
chefのレポジトリに下記ファイルを作成します。
・Berksfileの設置
以下のようにバージョンを指定します
今回はchef-clientとnginxのバージョンを指定しました。
1 2 3 4 |
source "https://api.berkshelf.com" #metadata cookbook 'chef-client', '=4.1.1' cookbook 'nginx', '= 0.101.2' |
■cookbooksのダウンロード
それぞれ依存関係のある Cookbook らもダウンロードされます。
これでいちいち依存を解決しつつダウンロードなんてこともしなくて済みます。
1 2 |
% export BERKSHELF_PATH=~/chef-repo % berks install |
・Berksfile.lockが勝手に作成される
Berksfileが荒ぶらないようにロックしてくれます。
■最新のcookbooksに反映
1 |
$ berks update |
■まとめ
これでchefのレシピが荒ぶらないようになった。
移行とかの場合はberks updateでいいかと。
書き方は公式にいろいろ書いてあるので後でブログします。
0件のコメント