2017-11-07 7 views
0

私は、組み込みRubyバージョン2.3.5p376シェフクライアント12.21.14を使用しています。ERBの主要な改行をシェフの料理のためのテンプレートから削除する手助けが必要

私は標準のtcp_wrappers hosts.allowファイルを作成するコードを書いています。目的の状態は次のとおりです。

# This file is generated by Chef 
# Do not edit, changes will be overwritten 

ALL: .javajockey.com 
ALL: .javajockey.local 
ALL: 127.0.0.1 

私の配列はCHEFの役割として格納されています。以下は、これは私の組み込みルビーテンプレートの内容

# This file is generated by Chef 
# Do not edit, changes will be overwritten 
# 
<% unless @hosts_allow.nil? %> 
<% @hosts_allow.each do |hosts_allow| %> 
ALL: <%= hosts_allow %> 
<% end %> 
<% end %> 

次は私のコードからの結果であるJSON

"stig": { 
    "network": { 
    "hosts_deny": [ 
     "ALL" 
    ], 
    "hosts_allow": [ 
     ".javajockey.com", 
     ".javajockey.local" 
    ] 
    }, 

です。 「ALL:」私は大手を削除する必要が

# This file is generated by Chef 
# Do not edit, changes will be overwritten 
# 
ALL: 
ALL: .javajockey.com 
ALL: .javajockey.local 

############################## 

+0

あなたの入力と出力が一致していないようです。テンプレートがどのように見えるのか、それらの属性を操作するその他のものはないと確信していますか? – coderanger

+0

お探していただきありがとうございます。確かに、私はこのサイトからコードを貼り付け、同じ結果を受けました。属性はロールから来ています。問題のトラブルシューティング中に属性を複数回変更したので、これを確認できます。 – javajockey

+0

私はレシピにいくつかのログを記録したいと思います。シェフ:: Log.warn( "hosts_allowは#{node ['stig'] ['hosts'] '。inspect}')'です。それが予期せぬ 'nil'またはそれに類するものかどうかを確認してください。 – coderanger

答えて

0

はコメントで突き止め、料理のデフォルトの属性が原因同じレベルの配列をマージするに保存された配列内のスプリアス''を持っていました。デフォルトの[]['']の代わりにすることを修正しました。

関連する問題