2017-04-19 2 views
0

Ich bin neu zu ansible Rollen hier ist, was ich tue.Variable ist undefinierter Fehler beim Übergeben von Argument an Ansible-Rollen

mehr site.yml

--- 

- hosts: user1_checkserverlist 
    user: user1 
    roles: 
    - { role: speed_manager, DNAME: "/u" } 

- hosts: oracle_checkserverlist 
    user: oracle 
    roles: 
    - { role: speed_manager, DNAME: "/tmp" } 

mehr speed_manager/defaults/main.yml

DNAME: "" 

mehr speed_manager/Aufgaben/main.yml

--- 

- include: check.yml diskname={{DNAME}} 

mehr speed_manager/Aufgaben/check.yml

Diese

ist, wie ich die Rollen ausführen

ansible-playbook -vvv site.yml -i /web/hostfiles/myhost.txt 

Fehler:

TASK [check_bk_speed_manager : ====Execute shell=============] ***************** 
task path: /web/roles/speed_manager/tasks/check.yml:25 
fatal: [myserver.com]: FAILED! => {"failed": true, "msg": "'dn' is undefined"} 
fatal: [myserver.com]: FAILED! => {"failed": true, "msg": "'dn' is undefined"} 
     to retry, use: --limit @check_bk_speed.retry 

ich den Wert von dn erwarten zu sein "/ u"

Können Sie zeigen, wo Uhr Ich schiebe falsch und wenn das ein Fehler ist?

Antwort

0

Sie müssen keinen anderen Namen für die Variable verwenden, die Sie bereits definiert haben.

Sie können Ihre Aufgaben ändern diskname zu verwenden, die Sie in der include Aufgabe übergeben:

- name: ====Execute shell============= 
    shell: /tmp/mohtt/fixwebserver.sh {{ diskname }} chdir=/tmp/mohtt 

Eigentlich, wenn dies der gesamte Code ist, können Sie mit DNAME gehen:

- name: ====Execute shell============= 
    shell: /tmp/mohtt/fixwebserver.sh {{ DNAME }} chdir=/tmp/mohtt 

Und gehören mit nur:

- include: check.yml 
1

In Ihrem Beispiel definieren Sie dn nur für Task "Variable lesen".
Andere Aufgaben wissen nichts über dn.

Wenn Sie dn wollen für nachfolgende Aufgaben zur Verfügung stehen, können Sie verwenden:

- set_fact: 
    dn: "{{ diskname }}" 
0

In speed_manager/tasks/check.yml statt dn Verwendung diskname als Variable oder am Anfang der Datei hinzufügen

- set_fact: 
    dn: "{{ diskname }}" 
Verwandte Themen