Chef実践入門 第4章のコミュニティクックブックの活用 を実機にて検証したメモ
#0.環境前提
ホストOS: MacOSX knife solo インストール済み、knife solo initでリポジトリ作成済み
ゲストOS: Vagrant+birtualbox(cenos)で構築済み
#1.コミュニティクックブックの検索方法
##1. Webサイトにて検索
https://supermarket.chef.io/cookbooks-directory
##2. コマンドラインから検索
```bash:
#クエリ指定したキーワードで検索
knife cookbook site search <クエリ>
#指定したクックブックの詳細を見る
knife cookbook site show <クックブック名>
```
ex) Apache2を例に検索
+ キーワードapache2で検索
```bash:
knife cookbook site search apache2
```
##3. 結果は以下(抜粋)
apache2:
cookbook: https://supermarket.chef.io/api/v1/cookbooks/apache2
cookbook_description: Installs and configures all aspects of apache2 using Debian style symlinks with helper definitions
cookbook_maintainer: svanzoest
cookbook_name: apache2
##4. 上記のクックブック名(coocbook_name) apache2の詳細を見る
knife cookbook site show apache2
##5. 結果は以下(抜粋)
category: Other
created_at: 2009-10-25T23:47:55.000Z
deprecated: false
description: Installs and configures all aspects of
apache2 using Debian style symlinks with helper definitions
external_url: https://github.com/svanzoest-cookbooks/apache2/
foodcritic_failure: true
issues_url: https://github.com/svanzoest-cookbooks/apache2/issues
latest_version: https://supermarket.chef.io/api/v1/cookbooks/apache2/versions/3.1.0
maintainer: svanzoest
name: apache2
source_url: https://github.com/svanzoest-cookbooks
apache2/up_for_adoption:
updated_at: 2015-05-25T19:14:18.433Z
★更新頻度、最終更新日、メンテナ等確認
#2.Berkshelfによるクックブックのインポート
- knife-solo利用時には、Berkshelfというツールを使ってコミュニティクックブックをインポートする。
以下、試しにyum-epel,apache2,mysqlのクックブックをBerkshelfによってインポートし、Vagrant環境のノードに適用。
##1. chefのリポジトリディレクトリ内にある Berksfile(設定ファイル)を更新
site :opscode
cookbook 'yum-epel'
cookbook 'apache2'
cookbook 'mysql'
##2. berksコマンドを実行
berks
berksコマンドを実行すると、~/.berkshelf/cookbooks ディレクトリ内に依存関係のあるクックブックも含めてダウンロードされる。また、Berksfile.lockというJSONファイルも更新される。このBerksfile.lockをもとにberksコマンドは利用するクックブックのバージョンを判断する。
##3. ~/.berkshelf/cookbooksディレクトリ内確認
ls -la ~/.berkshelf/cookbooks
##4.Berksfile.lockの中身
DEPENDENCIES
apache2
mysql
yum-epel
GRAPH
apache2 (3.1.0)
mysql (6.0.22)
smf (>= 0.0.0)
yum-mysql-community (>= 0.0.0)
rbac (1.0.3)
smf (2.2.7)
rbac (>= 1.0.1)
yum (3.6.1)
yum-epel (0.6.0)
yum (~> 3.0)
yum-mysql-community (0.1.17)
yum (>= 3.0)
##5.nodeオブジェクトへクックブックを追加 (yum-epelとapache2)
{
"run_list": [
"recipe[yum-epel]",
"recipe[apache2]"
]
##6.knife solo bootstap を実行
knife solo bootstrap webdb(ノードのvagrantマシン名)
chefsolo,epel,apache2がvagrantのゲストマシンにインストールされる。
##7.確認
vagrant ssh
ps auxw | egrep "httpd"
yum list | grep epel