sensu-clientのリポジトリをどのように管理しようかな(Berkshelf失敗編)
こんばんは。Cote&CielのLaptop Rucksackを衝動買いした私です。財布のなかがすっからかん。
マカーのためにデザインされたバッグブランドらしいです。大変グレイトです。
非常に大きいバッグのため、私のように身長がt1.microな人が身につけると、デンドロビウム状態になってしまいます。注意ですね。
さて前回の続きです。
sensu-clientのテンプレート用リポジトリと、各プロジェクトで利用するリポジトリはメンテナが違います。
テンプレート用リポジトリをプロジェクトリポジトリのメンテナが誤って操作しないように、
Berkshelfで管理してしまおうと思います。Berkshelfは依存するcookbooksを一元管理できる便利なツールです。
Chef版のBundlerだと思っています。
これを利用してテンプレートとプロジェクトリポジトリの境界線を引いてみようと思います。
- プロジェクト用リポジトリのclone
すでにプロジェクト用のリポジトリは作成済みですのでcloneします
orenomac$ git clone <bareリポジトリ>
- BundlerでBerkshelfのインストール
berkshelfやknife-solo等のツールはなるべくシステムに依存しないようBundlerで管理します。
orenomac$ bundle init orenomac$ vi Gemfile source "https://rubygems.org" gem 'berkshelf' gem 'knife-solo' gem 'serverspec' gem 'test-kitchen' gem 'kitchen-vagrant' gem 'knife-solo_data_bag' gem 'pry' orenomac$ bundle install --path vendor/bundle ・・省略・・ Your bundle is complete! It was installed into ./vendor/bundle Post-install message from knife-solo: Thanks for installing knife-solo! If you run into any issues please let us know at: https://github.com/matschaffer/knife-solo/issues If you are upgrading knife-solo please uninstall any old versions by running `gem clean knife-solo` to avoid any errors. See http://bit.ly/CHEF-3255 for more information on the knife bug that causes this.
- chef solo初期化
自動的にBerkshelf用のファイルも作られるようです。ありがたや。(久しぶりにknife solo initした)
orenomac$ bundle exec knife solo init . Creating kitchen... Creating knife.rb in kitchen... Creating cupboards... Setting up Berkshelf...
- Berksfileの編集とcookbooksの導入
berkshelf 3以降からberks installがberks vendorへリプレースされたみたいです。
旧来の
berks install --path cookbooks
に慣れている人はご注意を。しっかしopscode-cookbooks/yumといい、 v3.0以上になると使い方がガラッと変わるのはなんなのか。。
orenomac$ vi Berksfile site :opscode cookbook "sensu" cookbook "selinux" cookbook "hostsfile" cookbook "build-essential" cookbook "<テンプレート用リポジトリ>", git: "https://github.com/****/****.git" orenomac$ bundle exec berks vendor cookbooks Fetching '*******' from git@github.com:****/****.git (at master) The resource at '/var/folders/81/c4lywdsd7k5dsbqt9y35q8zm0000gn/T/d20140427-22194-x4okdh' does not appear to be a valid cookbook. Does it have a metadata.rb?
!?エラーが出ました。なぜでしょうか。
すっかり忘れていたのですがBerkshelfはcookbooksを一元管理するためのツールです。
今回Berkshelfで導入しようとしたテンプレート用リポジトリはcookbookだけではなくchef solo実行環境が整備された状態となっているリポジトリでした。
そのためberks vendorが失敗してしまったというバッドノウハウ。
粒度が大きすぎましたね。そりゃエラーでますわ(ノ∀`)アチャー
今回は失敗に終わったので却下ですかね。
- その他気になる
なんだこれ気になる・・chefdkとか
サーバの構成管理をするのが目的で、達成するツールとしてchefを利用するだけなのにchefることが目的になりそう。おそろしや。
そろそろ川越シェフがchefのロゴだった時の画像を下さい!とか川越シェフがモコズキッチンでknife solo cook実行している画像を下さいとか
俺の川越フォルダが火を噴く日が来てくれると嬉しいです。
さてリポジトリ練り直しの相談するか・・