新しいパペットサーバーをセットアップしているところですが、ベストプラクティスのディレクトリ構造を知りたいですか?私はさまざまなフォーラムや人形のサイトを見回しましたが、私が驚いたのは、誰もがそれを異なる方法でレイアウトしているように見えることです。推奨される方法とディレクトリ構造はありませんか?
これまでのところ:
puppet/
+ manifests/
+ site.pp
+ nodes/
+ production/
+ nodes.pp
+ dev/
+ nodes.pp
+ modules/
私はこの後少し立ち往生しています:)
ですから、これを「httpd」や「nginx」などのサービスを持つ「webserver」などのサーバーロールに分けたいと思います。
これをすべてレイアウトするための最良の方法は何ですか?これを行うための好ましい方法がないように思われるか、他のすべての情報でそれを見逃している可能性があります:(
これは、ディレクトリを構造化する方法ですか?
puppet/
+ manifests/
+ site.pp
+ nodes/
+ production/
+ nodes.pp (Nodes have roles)
+ dev/
+ nodes.pp
+ roles/
+ web-server-Apache.pp (Roles have modules)
+ modules/
+ web-server-Apache/
+ manifests/
+ init.pp (This is where "httpd" gets defined and installs latest httpd)
+ templates/
+ files/
はい、標準のディレクトリレイアウトはそのように見えます-この構造にどのようなバリエーションが見られますか?
さまざまなサービス(httpd、nginx)は、それぞれmodules
ディレクトリ内のモジュールによって処理される必要がありますが、これらのモジュールをノードに接続して構成カタログに含めると、manifests
内で行われます。
自分の役割をどのように定義しようとしていますか?通常、これはノード定義で行う必要があります。これは、マニフェストディレクトリ内のnodes.pp
ファイルでsite.pp
によって読み込まれるか、代わりにノード定義にHieraを使用します(これをお勧めします。 'それのためにあります)。
GeppetoのようなIDEを使用して、Puppet Module Style Guideに従ってモジュールを管理することをお勧めします。Geppettoは、必要なファイルとディレクトリ構造を作成します。
ですから、これを「httpd」や「nginx」などのサービスを持つ「webserver」などのサーバーロールに分けたいと思います。
モジュールをファイルシステム上のツリーに編成できるかどうかを尋ねていると思います。ほとんどの場合、人々はこれをしません。彼らはモジュールディレクトリにたくさんのモジュールを置くだけで、物事に素敵な説明的なラベル/名前を付けます。
特定のモジュール用に少し構造を作成すると便利です。たとえば、role
モジュールがある場合、role :: webserverwhich includes in modules that configure particular services. But if
role :: webserver`のようなクラスを作成できます。クラスが含まれているだけで、ノード定義、encに同じものを適用できます。 、またはhiera。
あなたの例では、services::
の下でサービスを定義することを提案します。フォージにモジュールを使用したい場合、これを維持するのは非常に困難です。すべてのフォージモジュールが基本的にトップレベルにあると想定しているからです。ダウンロードしたモジュールを大規模に書き直して、構造に適合させて使用する必要があります。
だから私の提案は、ツリーのアイデアをあきらめて、あなたが大きなフラットディレクトリモジュールディレクトリを持つことを受け入れます。