問題タブ [chef-template]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chef-infra - 2 つの Chef クックブックの 2 つのテンプレートを組み合わせる
基本製品 (Mediaflux) をインストールするためのクックブックと、特定の特殊なユースケース (DaRIS) に合わせて調整する 2 つ目のクックブックがあります。最初のクックブックのレシピは「ベース インストール」を実行するために実行され、2 番目のクックブックのレシピはインストールを「調整」するために実行されます。
ある時点で、ベースのクックブック/レシピによって作成されたファイルがあり、2 番目のクックブック/レシピに追加する必要があるファイルがあります。どちらの場合も、このファイルにはテンプレートの展開が必要です。
これを実装する良い方法を見つけようとしています。
最も簡単なアイデアは、両方のクックブックにテンプレートのコピーを置き、両方のレシピでバージョン テンプレートを展開し、最初のレシピで作成されたファイル を上書きするために 2 番目のレシピに依存することです。
テンプレートのコピーが 2 つあるため、これは DRY ではありません。
これが「コーシャ」であるかどうかはわかりません... あるテンプレート展開が別のテンプレート展開を破壊する.
バリエーションとして、(基本レシピで) 1 つのテンプレート展開のみを使用し、クックブック名をパラメーター化して、2 番目のレシピをランリストに追加すると、最初のレシピが別のバージョンのテンプレートを使用するようにします。
これもDRYではありません。
ベースレシピがテンプレートの仕立てレシピの展開パラメータを認識していないという問題があります。(たぶん、テンプレートはノード属性から直接それらを取得できます...)
理想的には、次のいずれかを実行できるようにしたいと考えています。
展開時に 2 つの (DRY) テンプレートを組み合わせたテンプレートを作成します。
最初のレシピによって作成されたファイルに追加する方法で、2 番目の (テーラリング) テンプレートを展開します。
「テンプレート」リソースを取得して、1 回の操作で 2 つのテンプレートを 1 つのファイルに展開します。
これらのことを行う方法はありますか?
私が見逃した別のアプローチはありますか?
chef-infra - 既存のファイルに部分的なテンプレートを追加することは可能ですか? 【シェフクックブック】
tar ファイルから抽出された conf ファイルに構成を追加しようとしています。
現在、クックブックはテンプレートを使用してファイル全体を上書きしていますが、元のファイルをテンプレートとして使用して追加する必要があります。
部分テンプレートはタスクを実行しているようですが、既存のファイルに適用されている部分の例を見つけることができませんでした.
それは可能ですか?
ありがとうございました
chef-infra - テンプレート リソースで「not_if」条件を使用する方法
docs.chef.ioで示されているように、テンプレート リソースで「not_if」条件を使用しようとしています。
私はシェフが初めてで、次のことを効果的に行うものを作成する方法がわかりません。
not_if 条件を使用したいのですが、'instance' == nil をチェックする方法がわかりません。
助けていただければ幸いです。ありがとうございました、
ruby - 実行時に生成されたファイルをテンプレート ソースとして Chef に含める方法
Chef レシピを使用して、最初に CSV ファイルからの入力に基づいて動的にファイルを生成し、次にそのファイルをテンプレート ソースとして.erb
使用したいと考えています。.erb
残念ながら、(.erb
ファイル内で) 行われた変更は、レシピがリソースを収束している間は考慮されません。また、遅延評価を使用しようとしましたが、テンプレート ソースに使用する方法を理解できませんでした。
chef-infra - Chef - テンプレート内のテキスト ブロックを x 回繰り返す
テンプレート X 回で同じテキスト ブロックを繰り返す方法はありますか? たとえば、ホスト名とテキスト ブロックを含むテンプレートを生成する必要があります。
chef-infra - シェフテンプレートファイル内のループ内に if ステートメントを配置する方法は?
これは、if ステートメントがなくてもうまく機能しますが、if を使用する最善の方法がわかりません。