2016-10-23 7 views
1

私はdcn-rq2というロールを定義していて、 ~/dcn-rq2/defaults/main.ymlファイルに定義されているいくつかの変数を持っています。下に示すように、この役割を上部に含みます。私の理解は、ロールに定義されているすべてのvraiablesは自動的にプレイブックで利用できるはずですが、それはエラーです。可能:デフォルトで定義されている変数は私のプレイブックにロードされていません

//脚本のための私のトップレベルのYAMLファイル


- hosts: DCN-VSD 
    roles: 
    - dcn-rq2 

    tasks: 

- debug: msg="{{test_var}}" 

私DCN-RQ2 /デフォルト/ main.yml

--- 

test_var: '12' 
+0

エラーは何ですか? – Shasha99

+0

何が問題なのですか? – techraf

答えて

0

デフォルトはあなたが使用して何かであります役割。 Playbooksはhost_vars & groups_varsディレクトリを使用して変数を含めることができます。

すべてのプレイブックに共通の「変数」を追加するには、group_varsディレクトリに 'all.yml'ファイルを配置します。

詳しい情報はここで見つけることができます: http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

+0

ロールのデフォルト変数は、メインプレイブックでも使用できます。 – Shasha99

0

私はこれを試み、それが動作します。プレイブックで私が見ることのできる唯一の違いは、タスクのセクションが正しくインデントされていないことです。しかし、ここでコピー/ペーストしたときに変更されたと仮定しています。

--- 
- hosts: localhost 
    remote_user: root 
    roles: 
    - common 
    tasks: 
    - debug: msg="{{test_var}}" 

また、あなたが 私の理解が役割で定義されたすべてのvraiablesが自動的に使用可能な脚本に役割で定義されて

すべての変数はあなた遊びに利用できるようになりますなければならないということですプレイブックでその役割を関連付けます。あなたのケースでは、あなたの作戦の唯一の遊びです。だからこれはまだ動作するはずです。

+0

私は、私を引きつけた少しのニュアンスは次のようなものだと思います:ロールで定義された変数は、ロールを消費するプレイブックのタスクで使用できます。ただし、変数は_ * Playインフラストラクチャ* _では使用できません(たとえば、remote_userに変数を使用する場合) – blong

関連する問題