個人でchefを利用していたけれどあまり使わなくなった。自分で一つ一つつくろうというのは最初は良かったけど、途中からちょっと面倒出し小回りが効かなくなってしまって。。でも、使いたいということで、もっと気軽に使える方法として気になっていたBerkShelfを試してみました。
BerkShelfはChefとその依存関係を管理するツールということです。
インストール
rubyのgemとして提供されています。早速インストール。(いろいろあったんですが、結局、berkshelf2は開発が終了しているということで、最新版を入れることにしましたなので-pre
がついています。)
$ gem install berkshelf --pre
BerkShelf公式サイト
こちら見ていきます。
Cookbook管理サイト
このサイトに転がっているCookbookを組み合わせて環境構築ができるみたいです。
早速やってみる
で、公式サイト見たり参考サイト見たりしてやった見たんだけどうまく行かずはまる、はまる。。。ということで、もう自分なりのやり方でやることにしました。
自分のchef-repoをクローンしてくる
. ├── Vagrantfile └── chef ├── data_bags ├── environments ├── nodes ├── roles └── site-cookbooks
シンプル。
BerkShelfでレシピを追加
$ berks vendor cookbooks
SSHアクセスのための設定を取得
で、一旦、
$ vagrant up
して、仮想環境を立ち上げます。そして、sshでアクセスするための情報を書き出します。
$ vagrant ssh-config --host vagrant_trial >> ~/.ssh/config
nodeを追加
chefリポジトリ直下で下記のコマンドを実行し、nodeを作成します。
knife solo prepare vagrant_trial
これで、nodes
以下にvagrant_trial.jsonというファイルが出来ます。jsonファイルに適用したいrescipeを書き込んでいきます。
レシピを反映させます
knife solo cook vagrant_trial
こんな感じでとりあえずできました。まだまだわかってないことの多い、さらに調べるのに骨が折れるchefですが、少しずつ知識を増やしていければなとおもももいます。
次回からはberk vendor cookbooks
やるまえにcookbooksディレクトリを削除する必要があるかも。あと、Berksfileは必要そうなもの色々入れて、使わないものはコメントアウトしたりして成長させていけるかも。