5

私はパペットの初心者です。私はマニフェストを使って作業しておりvagrant、マニフェストを快適に書き始めていますが、私の質問に答えることができる経験や直感が不足している可能性があります。

パペットがどのようにスコープされているか、どこに線が引かれているかを把握しようとしています。これがモジュールとその作成と使用にどのように適用されるかに特に興味があります。

より具体的な例:puppletlabs-nginxモジュール。仮説として、特定のサーバー ロールのマニフェストを作成して、陽気な道を進んでいます。非常にシンプルな静的ファイル Web サーバーであり、使用したいとしますnginx。モジュールは明らかにそれを助けてくれます。try_filesサポートなどがあります。このモジュールを介して、リバース プロキシを開始することもできます。しかし、物事がより粘着性になったらどうしますか?モジュールでは実行できないことをプログラムで実行したい場合はどうすればよいですか?

ええと、おそらく簡単な答えは、自分で修正し、プル リクエストを行い、思い思いの方法で進むことです。しかし、それはどこで止まりますか?コミュニティ パペット モジュールの目標は、特定のソフトウェア パッケージのあらゆる側面をサポートすることですか? それは手に負えないようです。一方で、ユースケースのみから構築された、ほとんど焼き尽くされたモジュールの束が作成されませんか?

次に、Android UI に類似したものがあります。ほとんどの XML UI 定義であると私が考えるセッター メソッドがあります。人形なら似たような感じ。プログラムで構成ファイルを作成するか、ERB テンプレートに入力して作成することができます。言い換えれば、構成ファイルのプログラムによる作成と構成ファイルのテンプレート化された作成との間の操り人形の境界線がぼやけているように感じます。私は Android で最善の方法を見つけられなかったので、どちらがパペットで行くべきかわかりません。

では、理想的なパペット モジュールを構成するものは何ですか? テンプレートにもっと依存する必要がありますか?マニフェストに?すべての構成シナリオを考慮する必要がありますか?

さらに引きこもった視点から見ると、私はもっと独断的なものが欲しいようです。Puppet のパワーは柔軟性と抽象化にあるように見えますが、そこにあるモジュールは一貫性がなく、肉付けされていないように感じます。

読んでくれてありがとう...

4

3 に答える 3

2

マークに感謝します。ほんの少しの時間で、私は Chef で遊ぶことに切り替えました。モジュールは、私が表明した懸念の多くに関して改善されているように見えます。

于 2012-11-10T05:03:47.887 に答える
1

手短に言えば、人形について説明できます。

Puppet は単なる IT 自動化ツールであり、ターゲット マシンにインストールするソフトウェアのマスターにマニフェスト (レシピまたはスクリプト) を作成することで、他のマシンにソフトウェアをインストールできます。ここで master は、ソフトウェアの puppet マニフェストの実装を示します。ターゲット マシンは、ソフトウェアをインストールするエージェントを示します。

Puppet モジュールは、マスターでこれを行う次の構造で構成されます。

マスターでは、モジュール ディレクトリに入るパスは /etc/puppet/modules であり、puppletlabs-nginx module. について言及したので、このモジュールを例として取り上げることができます。

モジュール ディレクトリの後に、ファイルとマニフェスト ディレクトリを作成する必要があります。さらに、マニフェスト ディレクトリに .pp ファイルを作成します。たとえば、install.pp、uninstall.pp です。パッケージ、サービス、ファイル、exec などのリソースはほとんどありません。

テンプレートは、パペットのマニフェストで値をハードコアするためだけにマイナーな役割を果たします。パペットの主要な部分ではありません。マニフェストはパペットで非常に重要です。

puppet を使用してソフトウェアを自動化するには、上記の構造に従うことができます。

ありがとうございました。

于 2014-06-12T10:20:12.650 に答える
1

ここでの PuppetLabs のソリューションは、機能ごとに異なるタイプのモジュール (コンポーネント、プロファイル、ロール) を使用することです。詳細については、パペットの設計: ロール/プロファイル パターンのプレゼンテーションを参照してください。

PuppetForge から利用可能なモジュールは「コンポーネント」タイプです。それらの目的は、ソフトウェアの単一の論理部分に焦点を当てながら、可能な限り柔軟にすることです。たとえば、apache httpd サーバーまたは apache tomcat のいずれかであり、両方ではありません。

これらのコンポーネント モジュールの 1 つをラップするために作成するモジュールの種類は、「プロファイル」モジュールの完璧な例です。これにより、apache httpd を tomcat や jboss と一緒に結び付けることができ、mysql や php などの他のコンポーネントも結び付けることができます。しかし、これは複数のコンポーネントを持つ 1 つの論理スタックです。あるいは、LAMP プロファイル モジュールと、別の tomcat+jboss プロファイル モジュールがあるかもしれません。

次のレベルアップは「ロール」モジュールです。適切なプロファイル モジュールを指す "include" ステートメント以外は何も含めないでください。

詳細については、PuppetLabs のプレゼンテーションを参照してください。ただし、このロジックは、「ラッパー クックブック」を使用して Chef の世界で見られるものと非常によく似ています。

于 2015-03-16T22:40:23.177 に答える