2017-02-21 9 views
0

にネストされたデフォルト値を上書きし、私は私の/defaults/main.ymlでいくつかのネストされたデフォルトの変数を持つ:脚本でどのようAnsible

php_fpm_pools: 
    - name: www 
    user: php-fpm 

を、私は、ユーザーのデフォルト値を上書きしたい、と私はみました以下のオプションを無効にしてください:

roles: 
    - { 
    name: php-fpm, 

    php_fpm_pools.[www].user: vagrant 
    php_fpm_pools.www.user: vagrant 
    php_fpm_pools.['www'].user: vagrant 
    } 

デフォルト値を上書きするために正しい構文は何ですか?

答えて

2

いいえ簡単デフォルトのdict/listの一部を上書きする方法。

roles: 
    - role: php-fpm 
    php_fpm_pools: 
     - name: www 
     user: vagrant 

か、デフォルトの変数を使用してパラメータをマージする役割の初めに、カスタム・ロジックを記述します。あなたが好きな、完全なVARを上書きいずれか

いつかこのような簡単な回避策があります:あなたが唯一のdef_pool_userを無効にすることができる

def_pool_user: php-fpm 
php_fpm_pools: 
    - name: www 
    user: "{{ def_pool_user }}" 

この方法では。

+0

回答ありがとうございます。私がプレイブックから50の値のセット全体を再送しなければならない場合、これはデフォルト値を持つという目的に打ち勝つため、ここでは私を否定的に驚かせるでしょう。あなたの2番目の提案では、def_pool_userはdef_pool_www_userでなければならず、私はデフォルトファイルで作業を複製します。 –

+0

デフォルト変数はAnsibleでは全く問題ありません。ちょうどそれらを再編成する必要があります。 –

関連する問題