2017-10-05 5 views
2

{{VAR-名}}私は次のようになりコンコースパイプラインファイルの束持って

--- 
resources: 
    - name: example 
    type: git 
    source: 
     uri: [email protected]:me/example.git 
     branch: {{tracking_branch}} 
     private_key: {{ssh_key}} 
     paths: 
     - code/src/do/teams/sampleapp 
     params: 
     depth: 1 

    - name: deploy-image 
    type: docker-image 
    source: 
     repository: {{docker_image_url}} 

をそして私がルビーでそれらを解析しますいくつかの変換を実行します(それらを検証し、欠落しているキーを更新するなど)。私はロードし、彼らが戻ってファイルに{{something}}はなっている作品を、それらをダンプしようとしたときに

問題は、次のとおりです。

branch: 
    ? tracking_branch: 
    : 
private_key: 
    ? ssh_key: 
    : 

は、なぜそれがこれをやっていると私はないにパーサを設定することができますどのような方法がありますこれを行う?これらの変数はそのまま残しておきますか?あなたの値を引用する必要がYAMLの内部構文との競合を避けるために

答えて

1

:この種のもの

--- 
resources: 
    - name: example 
    type: git 
    source: 
     uri: [email protected]:me/example.git 
     branch: '{{tracking_branch}}' 
     private_key: '{{ssh_key}}' 
     paths: 
     - code/src/do/teams/sampleapp 
     params: 
     depth: 1 

Ansibleコンフィギュレーションファイルに同じような理由のためのすべての時間をアップしています。

1

flow mappingsのYamlでは、{との文字が使用されます(つまりハッシュ)。マッピングエントリの値を指定しないと、nilが得られます。

{{"tracking_branch"=>nil}=>nil} 

括弧のペアがあるのでそうbranch: {{tracking_branch}}の場合には、あなたが(Rubyで)キーbranchとのハッシュ値を取得し、これはに出戻ってダンプされYAMLあなたはややawwkwardと冗長取得:

01:

branch: 
    ? tracking_branch: 
    : 

をソリューションは、値を引用するだけです

0

コンサルタントがテンプレート化のために((var-name))を提供していることを完全に忘れていましたが、パイプラインで{{var-name}}の代わりにそれに切り替えただけで、YAMLパーサは満足しています!

関連する問題