2016-06-29 4 views
3

シェフの料理本を実行するときに奇妙な問題が発生しました.jsonのenvファイルを変更した後でも、間に使用されている古い変数名がほとんどあるようです。詳細は下記をご覧ください。私はテンプレートと環境ファイルから抜粋を貼り付けました。また、私が見ている望ましい出力と現在の奇妙な出力を示しました。それは私のルビーループ(私のルビー、ここにnoobを言い訳)と何かかもしれませんが、私はそれを何度もチェックしており、その構造には何の問題も見ません。シェフテンプレートの問題、古くなった変数

助けてください...私は他の人に手を差し伸べています。

これは私の最初の投稿です。コンテンツに2つ以上のリンクを投稿することはできません。私はサンプル出力から 'http'と 'https'を削除し、私のドメイン名をバイパスするように名前を変更しなければならなかった。

テンプレート:

gatewaymappings: | 
    { 
    <% @gatewaymappings.each_with_index do |mapping, index| %>  
     "<%= mapping.incomingFQDN %>" : "<%= mapping.upstreamProtocol %>://<%= mapping.upstreamFQDN %> 
      <% if (mapping.upstreamPort.length > 0) %> 
      :<%= mapping.upstreamPort %>" 
     <% end %> 
      <% if (index+1 != @gatewaymappings.count) %> 
      , 
     <% end %> 
    <% end %> 
    } 

シェフのテンプレート変数:
:gatewaymappings => node[app_name]['gatewaymappings']

サンプルJSON:

"gatewaymappings": [ 
    { 
    "incomingFQDN": "host1", 
    "upstreamProtocol": "http", 
    "upstreamFQDN": "upstream1", 
    "upstreamPort": "8000" 
    }, 
    { 
    "incomingFQDN": "host2", 
    "upstreamProtocol": "https", 
    "upstreamFQDN": "upstream2", 
    "upstreamPort": "8001" 
    } 
] 

所望の出力:(YMLファイル内)

gatewaymappings: | 
    { 
     "host1" : "upstream1:8000", 
     "host2" : "upstream2:8001" 
    } 

電流出力:
(最初の要素も私の現在のサンプルJSONに存在するdoesntの前のサンプルのenv実行からで、私はキャッシュなどクリアしてみましたそれでもまだ表示され続けている)

gatewaymappings: | 
    { 
     "localhost" : "upstream", 
     "host1" : "upstream1:8000", 
     "host2" : "upstream2:8001", 
     "host1" : "upstream1:8000", 
     "host2" : "upstream2:8001" 
    } 
+0

マークダウンを使用してコードと情報をフォーマットすることができれば、あなたの投稿はより読みやすくなります。 –

+0

申し訳ありませんが、私はそれをより良いフォーマットしようとします。私の最初の投稿はここにあります。ありがとう。 – SKK

+0

問題はありません、私達はどこかに出発して新しいことを学ぶ必要があります! –

答えて

0

私はこれを解決できたと思う。私のノード構成が壊れていたためです。私はシェフゼロを使用していると述べていたはずです。それはノード設定がnodesディレクトリ内のjsonファイルに保存されていることが判明しました。~/.chef内のローカルモードキャッシュを何回削除しても、無効な値が戻ってきました。 gitterチャットルームのおかげで、誰かが私にノードの設定をチェックするための優しいリマインダをくれました。それが問題の世話をして、私は今、私の期待される成果を見ています。ありがとう!

関連する問題