ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

コード ブロック
$ cd workspace
$ chef generate cookbook <Cookbook 名>
  • Cookbook 名: jenkins

 

生成されたもの

コマンドを実行すると、以下のファイルが作成されます。

  • .kitchen.yml
    Kitchen の設定ファイル
    テスト用のインスタンスや実行するプロビジョニングの設定を記述
     
  • Berksfile
    Berksfile Berkshelf の設定ファイル
    Kitchen でプロビジョニングを行うときの依存する  でプロビジョニングを行うときの依存する Cookbook を記述
     
  • README.md
    Cookbook の説明書
     
  • chefignore
    ChefClient に転送しないファイルを定義
     
  • metadata.rb
    Cookbook の基本情報を記述
     
  • recipes/default.rb
    Cookbook がデフォルトで実行する Redipeデフォルトで実行する Recipe

 

Eclipse プロジェクトに変換

Cookbook を編集するうえで、Eclipse が特に有利になる点はありません。
現時点で RHEL 系の日本語環境で比較的マシに利用できるのが Eclipse だっただけです。
好みのエディタで編集してください。

 

.project

...

を生成

スクリプトを実行し .project を生成します。

コード ブロック
$ cd <Cookbook 名>
$ gen-eclipse

Eclipse で .project をインポートします。

ヒント

gen-eclipse は、.project を生成する自作スクリプトです。

手動で作成する場合は、以下のような内容となります。手動で作成する場合、.project は以下のような内容です。

コード ブロック
title.project
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>${cookbook_name}</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.dltk.core.scriptbuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.dltk.ruby.core.nature</nature>
        </natures>
</projectDescription>

 

...

プロジェクトをインポート

次の手順でプロジェクトをインポートします。Eclipse を起動し、次の手順でプロジェクトをインポートします。

 

Column
width400px

File -> Import...

 

General -> Existing Projects into Workspace

 Next

 

「/home/vagrant/workspace/<Cookbook 名>」を追加

Finish 

...

Package Explorer に隠しファイルも表示させる

標準では .kitchen.yml が見えないので、次の手順で隠しファイルを表示します。

Column
width400px

Package Explorer の ▽ を選択 -> Filters…


 「.*resources」のチェックを外す
OK

...

Chef では、サーバーのあるべき状態を Recipe(ソースコード)として記述します。
Recipe は「ファイルのダウンロード」や「コマンドの実行」など、さまざまな機能をもつ Resource で構成されています。たとえば、 以下の Recipe は 「bash により “/tmp” ディレクトリで “tar から構成されます。


Resource は Chef 公式のものだけで40種類以上ありますが、基本的な構文はどれも同じで、
次のように、ユニークな name をもち、1つ以上の attribute によりパラメータを指定でき、実行時の動作を action で指定します。

コード ブロック
resource "name" do
  attributeA "valueA"
  attributeB "valueB"
  action :action
end

 

次の Recipe は「'/tmp' ディレクトリで、 'tar zxf archive.tar.gz” というスクリプトを実行する “extract tar file” という名前の Resource」 を定義したものです。gz' というスクリプトを、bash で実行する、'extract tar file' という名前の Resource」を定義したものです。

コード ブロック
 bashbash “extract'extract tar file”file' do
  cwd '/tmp”tmp'
  code “tar'tar zxf archive.tar.gz”gz'
  action :run
end

ここでは Chef 標準の “bash” という Resource の :run という bash Resource をベースに、cwd attribute に実行時のディレクトリを、code attribute に実行するスクリプトを指定し、
Resource の実行時にスクリプトが実行されるように :run を指定


や code  'extract tar file' という name を付けの :run という Action を呼び出すように定義していて、“cwd” や ”code” という Attribute により Action 実行時のパラメータを指定しています。
指定できる Action や Attribute は Resource ごとに異なるので、Chef のドキュメントを確認してください。
bash Resource であれば [ 
http://docs.opscode.com/resource_bash.html ] です。

...