2017-12-01 4 views
0

Ansible 2.3.1.0で変数が取得されない理由を見つけることができませんでした。Ansbileで変数を渡すには?

ファイル構造:

. 
├── ansible.cfg 
├── group_vars 
│   └── test1.yml 
├── hosts 
├── host_vars 
│   └── test1 
├── roles 
│   └── install 
│    └── tasks 
│     └── main.yml 
├── testing.retry 
└── testing.yml 

group_vars/test1.yml

--- 
test_var: "This is from host_vars file" 

content of host_vars/test1roles/install/tasks/main.yml

--- 
test_var: "This is from host_vars file" 

内容:

--- 

- name: Debug 
    debug: var=test_var 

結果は次のとおりです。

ansible-playbook -i hosts testing.yml 

PLAY [This is testing] ***************************************************************************************************************************************************** 

TASK [Gathering Facts] ***************************************************************************************************************************************************** 
ok: [localhost] 

TASK [install : Debug] ***************************************************************************************************************************************************** 
ok: [localhost] => { 
    "test_var": "VARIABLE IS NOT DEFINED!" 
} 

PLAY RECAP ***************************************************************************************************************************************************************** 
localhost     : ok=2 changed=0 unreachable=0 failed=0 

は出力を期待:あなたはtest1という名前のグループを持っていないので、

test_var = This is from host_vars file 
+0

回答が似ている可能性があります。タイトルは本当に明確ではありませんでした。しかし、ありがとう! Ansbileで変数を渡すには?はるかに良い!!!! –

答えて

0
  1. Ansibleはgroup_vars/test1.ymlを読んでいません。

    グループにgroup_varsを定義したくない場合は、allという名前にする必要があります。ファイルはgroup_vars/all.ymlである必要があります。

  2. ホストがtest1でないため、host_vars/test1が表示されません。

    localhostにhost_varsを定義することができない場合は、localhostという名前にする必要があります。ファイルはhost_vars/localhost.ymlである必要があります。