2017-03-29 1 views
-3

Ich muss eine POST-Anfrage mit Ansible machen.Ansible: benutze die Host-Adresse von hosts.ini im Playbook

Meine hosts.ini Datei ist:

[workers] 
worker1 ansible_host=111.111.111.111 
worker2 ansible_host=222.222.222.222 

Die URL ich die IP-Adresse von worker1 bedarfsgerecht zu verbinden, also schrieb ich mein Textbuch als:

- hosts: worker1 

    tasks: 
    - name: inizialize worker           
    uri: 
     url: "http://{{ worker1 }}:8080/xxx/yyy" 
     method: POST 
     user: admin 
     password: password 
     force_basic_auth: yes 
     return_content: yes 
     body: "field=myfield" 

Aber es läuft, bekomme ich :

Das Feld 'args' hat einen ungültigen Wert, der scheinbar eine Variable enthält, die nicht definiert ist. Der Fehler war: "worker1" ist undefined

Wo ist das Problem?

Antwort

0

Sie haben keine Variable namens worker1 definiert.

Wenn Sie den Wert mit 111.111.111.111 ersetzen wollen, sollen Sie magic variables verwenden:

url: "http://{{ hostvars['worker1']['ansible_host'] }}:8080/xxx/yyy" 

aber Ihr ganzes Spiel bedenken, dann kann man auch gesucht:

url: "http://{{ ansible_host }}:8080/xxx/yyy" 

daran, dass Ihre Inventardatei definiert eine Hostgruppe mit dem Namen workers, und Ihre Wiedergabe bezieht sich auf eine Hostgruppe mit dem Namen worker1. Dies ergibt keinen Sinn.

Verwandte Themen