Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute curl -X with ansible playbook

Tags:

I want to execute the next command using ansible playbook:

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

How can I run it?

If I run:

- 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" 

I have the next fail:

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

like image 628
Asier Gomez Avatar asked Mar 04 '16 14:03

Asier Gomez


1 Answers

The best way to do this is to use the URI module:

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" 

Since your json file is on the remote machine the easiest way to execute is probably with the shell module:

- name: post to consul   shell: 'curl -X POST -d@/full/path/to/mesos-consul.json -H "Content-Type: application/json" http://marathon.service.consul:8080/v2/apps' 
like image 127
MillerGeek Avatar answered Sep 22 '22 20:09

MillerGeek