Chefのcookbookをopscodeからインストールする

LINEで送る
Pocket

Chefではrecipeを含む設定一式をcookbookとして管理する事ができる。例えば、apache用にcookbookを作りchefにて一発で自分なりの設定のapacheをセットアップする事ができる。しかし、これらcookbookもopscodeとしてオープンソースで共有されているのでこれを再利用する事でゼロからcookbookを作る事なく簡単に有名どころのアプリケーションに関するcookbookをインストールする事ができる。

cookbookはopscodeに共有された物を個々にインストールする事もできるし、Cheffileにインストールしたいcookbookの一覧を記述して一気にインストールする事もできる。

cookbookを個々にインストールする

まずは個々にインストールする方法を記述する。

まず、chef-solo用のリポジトリを作成する。するとリポジトリディレクトリ内に「cookbooks」というディレクトリができる。このフォルダ内は初めは空だ(.gitkeep のみ存在する)。chefリポジトリにて、以下のknifeコマンドでcookbookを作成できる。

$ cd {chef_repo_path}

$ knife cookbook site install {cookbook_name}

これで先ほどのcookbooksディレクトリをみると{cookbook_name}のディレクトリが作成されその中にcookbookの初期設定されたディレクトリ構成が作成されたはずだ。

{cookbook_name}部分には様々な有名アプリケーションの名前が入る。これらはopscodeにて予め共有されたものだ。例えばlamp環境を構築したい場合以下のようにする事で可能だ。

$ knife cookbook site install apache2

$ knife cookbook site install mysql

$ knife cookbook site install php

これはあくまで共有された初期設定のみなので自分で細かい設定したい場合はこれらに対するWrapperのcookbookを自分で作って、設定変更部分のみoverrideして好みの設定にしよう。

cookbookをまとめてインストールする

cookbookには依存関係がある。これらが分からないので一つ一つインストールするのは結構めんどくさい。依存関係を意識して自動的に必要なcookbookを一気にインストールしてくれるのが、librarian-chefだ。rubyのgemのbundleに似ている。librarian-chefのインストール方法はこちら

chef-solo用のリポジトリを作成したら、中に「Cheffile」があるので、それを以下のように編集

site 'http://community.opscode.com/api/v1'

cookbook 'apache2'
cookbook 'mysql'
cookbook 'php'

編集したらchefリポジトリから以下コマンド実行

$ librarian-chef install

これで一気にapacheとmysql、phpと依存する全てのcookbookをインストールしてくれる。

「いいね」ご協力お願い致します!

LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。