2016-03-04 6 views
10

ich den nächsten Befehl ansible Textbuch ausführen möchten:Execute curl -X mit ansible Textbuch

curl -X POST [email protected] -H "Content-Type: application/json" http://marathon.service.consul:8080/v2/apps 

Wie kann ich es laufen?

Wenn ich laufen:

- name: post to consul 
    uri: 
    url: http://marathon.service.consul:8080/v2/apps/ 
    method: POST 
    body: "{{ lookup('file','mesos-consul.json') }}" 
    body_format: json 
    HEADER_Content-Type: "application/json" 

Ich habe die nächste fehlschlagen:

fatal: [172.16.8.231]: FAILED! => {"failed": true, "msg": "ERROR! thefile_name '/home/ikerlan/Ik4-Data-Platform/ansible/playbooks/Z_PONER_EN_MARCHA/dns-consul/mesos-consul.j2' does not exist, or is not readable"}

Antwort

19

Der beste Weg, dies zu tun ist, um die URI module zu verwenden:

tasks: 
- name: post to consul 
    uri: 
    url: http://marathon.service.consul:8080/v2/apps/ 
    method: POST 
    body: "{{ lookup('file','mesos-consul.json') }}" 
    body_format: json 
    headers: 
     Content-Type: "application/json" 

Da deine JSON-Datei auf dem Remo ist te Maschine des einfachste Weg auszuführen ist wahrscheinlich mit dem Shell-Modul:

- name: post to consul 
    shell: 'curl -X POST [email protected]/full/path/to/mesos-consul.json -H "Content-Type: application/json" http://marathon.service.consul:8080/v2/apps' 
+0

Thanks @ smiller171 aber es tryes die Datei ‚Mesos-consul.json‘ des Textbuch auszuführen, und nicht von der Remote-Maschine, ich habe ein Fehler, wenn ich dein Modul ausführe, ist es in der Beschreibung. –

+0

Sie können entweder die [Fetch-Modul] (http://docs.ansible.com/ansible/fetch_module.html) verwenden, um die JSON-Datei vom Remote-Knoten abzurufen, und dann das URI-Modul verwenden, oder Sie können die " Skript "-Modul zum Ausführen des Curl-Befehls auf dem entfernten Knoten. Ich kann meine Antwort aktualisieren, um zu veranschaulichen, was Sie bevorzugen. – smiller171

+0

Ich denke, mit Skript-Modul ist der einfachste Weg, um den Befehl auszuführen, ich weiß nicht so viel, weil ich nicht so viel Erfahrung haben, was ansible, also bitte ich möchte den einfachsten Weg zu verstehen. Danke @ smiller171 –

Verwandte Themen