使用 ansible playbook 执行 curl -X
Execute curl -X with ansible playbook
我想使用 ansible playbook 执行下一个命令:
curl -X POST -d@mesos-consul.json -H "Content-Type: application/json" http://marathon.service.consul:8080/v2/apps
我怎样才能运行呢?
如果我运行:
- 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"
我有下一个失败:
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"}
最好的方法是使用 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"
因为您的 json 文件在远程机器上,最简单的执行方法可能是使用 shell 模块:
- 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'
我想使用 ansible playbook 执行下一个命令:
curl -X POST -d@mesos-consul.json -H "Content-Type: application/json" http://marathon.service.consul:8080/v2/apps
我怎样才能运行呢?
如果我运行:
- 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"
我有下一个失败:
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"}
最好的方法是使用 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"
因为您的 json 文件在远程机器上,最简单的执行方法可能是使用 shell 模块:
- 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'