レシピの作成を通してChefの具体的な使用イメージをつかもう

第2回では、実際にChefを使用して“システムを状態で管理する”とはどの様なことか体験してみましょう。簡単なレシピの作成を通してChefを使用する流れを紹介します。実際にChefを動かしてみよう!まず始めにお試し用の環境を1台用意しましょう。今回想定している環境は表の通りです。システム要件について

喜納 健

2013年12月20日 20:00

第2回では、実際にChefを使用して“システムを状態で管理する”とはどの様なことか体験してみましょう。簡単なレシピの作成を通してChefを使用する流れを紹介します。

実際にChefを動かしてみよう!

まず始めにお試し用の環境を1台用意しましょう。今回想定している環境は表の通りです。
システム要件については、下記のサイトが参考になります。

> System Requirements

♯項目値
環境
1OSCentOS release 6.4
※インストールパッケージは最小構成
2アーキテクチャ64bit
3メモリ1GB
4HDD10GB
OSインストール後の設定
1使用ポート
(ファイアウォールの設定)
80番
2ユーザー
(ホームディレクトリ)
user01
(/home/user01)
3sudoコマンドの設定user01 ALL=(ALL) /usr/bin/chef-solo
4Yumリポジトリの設定CentOS release 6.4のリポジトリ

chef-soloのインストールと設定

(1)インストーラのダウンロード

chef-soloをインストールします。Opscode社でオムニバス(Omnibus)インストーラと呼ばれるインストーラが提供されています。すぐに利用できるため、ここではオムニバスインストーラを使用した方法をご紹介します。

下記のサイトからインストーラを入手します。

> Install Chef

今回想定する環境では、図1にある赤枠の様に指定します。

図1:Opscode社提供オムニバスインストーラダウンロードサイト(クリックで拡大)

(2)chef-soloのインストール

パッケージを取得したら、rpmコマンドを使用してインストールします。rootユーザーで以下のコマンドを実行します。

# rpm -ivh /tmp/chef-11.8.0-1.el6.x86_64.rpm
・・・省略・・・
Thank you for installing Chef!
#

chef-soloがインストールされていることを確認しましょう。

# chef-solo -v
Chef: 11.8.0
#

オムニバスインストーラは、Chefが稼動するのに必要な全てのファイルを/opt/chef 以下に展開します。

インストーラを使用しない場合は、Chefの実行に必要なRubyとRubyパッケージ管理ツールであるGemのインストールが必要になりますが、オムニバスインストーラを使用すればRubyとGemも組み込まれた状態でインストールされます。

(3)設定

ここからは、Chef操作用に用意したユーザーアカウントuser01で作業を行います。
クックブックを格納するディレクトリ/home/user01/cookbooksを作成します。

続いて、クックブックの作成などを行う設定ツールであるKnifeとレシピにもとづいて構築・設定変更を行う単体プログラムchef-soloの設定を行います。クックブックは、レシピや配布ファイル、メタデータをまとめたものです。基本的には、クックブック単位で管理します。

まず、Knifeの設定を行います。/home/user01/.chefディレクトリ作成後、/home/user01/.chef/knife.rbファイルを作成し以下の通りに記載します。

knife.rb

cookbook_path [ "/home/user01/cookbooks" ] ♯クックブック格納先。

次に、chef-soloの設定を行います。/home/user01/solo.rbを作成し以下の通りに記載します。ここでは、ログの出力先をuser01のホームディレクトリ以下にしていますが、必要に応じて変更して下さい。

solo.rb

log_level                :info ♯ログの出力レベル。
log_location             "/home/user01/logfile" ♯ログの出力先。
cookbook_path [ "/home/user01/cookbooks" ] ♯クックブック格納先。

knife.rb、solo.rbそれぞれに“cookbook_path”を設定しています。knife.rbではKnifeがクックブック操作する際に使用するパスを、solo.rbではchef-soloがクックブックを読み込む際に使用するパスを指定しています。

それぞれのファイルの詳細な設定は、Opscode社の下記のサイトに説明があります。

> solo.rb
> knife.rb

クックブックの作成

それでは、クックブックを作成してみましょう。ここでは、“sample_book”という名前のクックブックを作成します。

(1)テンプレートの展開

下記のコマンドを実行すると、クックブックのテンプレートが展開されます。

# knife cookbook create sample_book
** Creating cookbook sample_book
** Creating README for cookbook: sample_book
** Creating CHANGELOG for cookbook: sample_book
** Creating metadata for cookbook: sample_book
#

クックブックは、レシピや配布するファイルの格納先が決まっており、誰が作成してもどこに何があるかは見当がつくようになっています。上記コマンドを発行すると、以下の様なファイル・ディレクトリが作成されます。ここでは、配布する静的ファイルを格納する“files”とレシピを格納する“recipes”ディレクトリを使用します。

$ tree cookbooks/sample_book
cookbooks/sample_book
├── CHANGELOG.md
├── README.md
├── attributes
├── definitions
├── files
│   └── default
├── libraries
├── metadata.rb
├── providers
├── recipes
│   └── default.rb
├── resources
└── templates
    └── default

クックブックの詳細な説明については、下記のサイトが参考になります。

> About Cookbooks

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30