2017-05-16 6 views
0

私は私のvolume_sizeよう条件を追加しようとしています:パッカープロビジョナでロジック条件を作成する方法はありますか?

"volume_size": [{ 
    "Fn::If" : [ 
     ".ami_id_bar", 
     {"foo" : "50"}, 
     {"foo" : "20"} 
    ] 
    }], 

:私はこのような何かを試してみた「-var役割=」

に渡されたものに応じて異なる2つの値を得ることができます。 ami_id_barは次のとおりです。

これは私が取得エラーですパッカー

を実行するときに、コマンドラインからそれを取得

"environment_vars": [ 
      "ami_id_bar={{user `role`}}" 
     ], 

エラー(S)復号:

'launch_block_device_mappings [0] .volume_size' 期待タイプ 'Int64の' 持って変換できないタイプ '[]インターフェイス{}'

があり、それが不可能または私は何を間違えているのですか?

ありがとうございます!

答えて

0

いいえできません。パッカーのテンプレートにはロジックがありません。あなたが望むものを達成するための標準的な方法は、-var-fileを使用することです。ここで、各varsファイルはロールを表します。より複雑なケースでは

packer build -var-file=role-A.json template.json 

は、我々はあなたがあなたのテンプレートおよびその他のファイルを前処理するとmakeのようないくつかのビルドスクリプトにパッカーをラップすることをお勧めします。

関連する問題