2017-12-01 3 views
0

Konnte nicht herausfinden, warum Variablen nicht in Ansible 2.3.1.0 aufgenommen wurden.Wie übergeben Variable in Ansbile?

Dateistruktur:

. 
├── 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/test1:

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

Inhalt des roles/install/tasks/main.yml:

--- 

- name: Debug 
    debug: var=test_var 

Ergebnis ist:

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 

Erwarten Ausgabe:

test_var = This is from host_vars file 
+0

Die Antwort könnte ähnlich sein. aber der Titel war nicht wirklich klar. Trotzdem danke! Wie man Variable in Ansbile übergibt? ist viel besser!!!! –

Antwort

0
  1. ansible nicht group_vars/test1.yml lesen, weil Sie test1 Namen keine Gruppe haben.

    Wenn Sie group_vars für eine Gruppe definieren möchten, sollten Sie es all nennen, also sollte die Datei group_vars/all.yml lauten.

  2. Ansible liest host_vars/test1 nicht, da Sie keinen Host namens test1 haben.

    Wenn Sie host_vars für Ihren localhost definieren möchten, sollten Sie ihn localhost nennen, daher sollte die Datei host_vars/localhost.yml lauten.