0

Chef レシピを使用して、最初に CSV ファイルからの入力に基づいて動的にファイルを生成し、次にそのファイルをテンプレート ソースとして.erb使用したいと考えています。.erb残念ながら、(.erbファイル内で) 行われた変更は、レシピがリソースを収束している間は考慮されません。また、遅延評価を使用しようとしましたが、テンプレート ソースに使用する方法を理解できませんでした。

4

2 に答える 2

0

CSV ファイルから値をレシピのローカル変数として取得する方法を知っていると仮定します。

Examples:
 csv_hostname
 csv_fqdn

遅延読み込み属性を使用してテンプレートを作成するために行うことは次のとおりです。次の例では、構成ファイルを作成します。

example.erb ファイル

# Dynamically generated by awesome Chef so don't alter by hand.
HOSTNAME=<% @host_name %>
FQDN=<% @fqdn %>

レシピ.r​​bファイル

template 'path\to\example.config' do
  source 'example.erb'
  variables(
    lazy {
      :host_name => csv_hostname,
      :fqdn => csv_fqdn
  })
end

コンパイル時に実行する必要がある場合は、アクションをブロックに追加します。

template 'xxx' do
  # blah blah
end.run_action(:create)
于 2015-10-05T12:39:33.637 に答える