web-dev-qa-db-ja.com

Vagrant / chef-nginxクックブック拡張

私は特にvagrantでシェフを使用するのはかなり新しいので、これは経験豊富なユーザーにとってはばかげた質問になるでしょう。

私はこのクックブックを使用しています: https://github.com/opscode-cookbooks/application_nginx

自分のサイト設定(vhost)を追加したいだけです。

次のいずれかである必要があります。

  1. 自分のレシピとテンプレートをクックブックに直接追加します
  2. 何らかの方法でnginxクックブックを拡張して、必要な特定の動作のみを追加する独自のクックブックを作成します。

オプション1は私には正しくないようで、クックブックを完全に分離せずにオプション2を完了する方法がわかりません。

誰かがこれがどのように達成されるかについてアドバイスできますか?

5
Marty Wallace

Nginxを介して仮想ホストを構成するだけの場合は、 nginx クックブックを使用することをお勧めします。 application_nginx クックブックは直接使用するためのものではありません。むしろ、それは application クックブックの依存関係です。 chefを使い始めたばかりの場合は、アプリケーションクックブックの使用がやや複雑なので、今のところ避けておきます。

適切な方法は、サイトを構成するための独自のクックブックを作成し、その中からnginxクックブックを使用することです。サードパーティのクックブックを、アプリケーションに固有のものにするためにフォークして変更するものではなく、独自のクックブックで使用するための汎用ライブラリとして扱います。

たとえば、クックブックのデフォルトのレシピは次のようになります。

# run the nginx::default recipe to install nginx
include_recipe "nginx"

# deploy your sites configuration from the 'files/' directory in your cookbook
cookbook_file "#{node['nginx']['dir']}/sites-available/example.com" do
  owner "root"
  group "root"
  mode  "0644"
end

# enable your sites configuration using a definition from the nginx cookbook
nginx_site "example.com" do
  enable true
end
7
sciurus