2016-03-04 9 views
10

とカール-Xを実行し、私はansible脚本を使用して、次のコマンドを実行します:がansible脚本

curl -X POST [email protected] -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! 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"}

答えて

19

これを行うための最善の方法は、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ファイルはレモにあるのでsmiller171 @

- 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

おかげでそれは脚本のではなく、リモートマシンのファイル「mesos-consul.json」を実行するtryes、私が持っている:TEマシンが実行する最も簡単な方法は、シェルモジュールである可能性がありあなたのモジュールを実行すると失敗します。それは記述の中にあります。 –

+0

[フェッチモジュール](http://docs.ansible.com/ansible/fetch_module.html)を使用してリモートノードからjsonファイルを取得し、URIモジュールを使用するか、スクリプト "モジュールを使用して、リモートノード上のカールコマンドを実行します。あなたの好きなことを説明するために私の答えを更新することができます。 – smiller171

+0

私はスクリプトモジュールを使うのがコマンドを実行する最も簡単な方法だと思っています。私はあまり経験がないので、あまり知らないので、わかりやすいようにしてください。ありがとう@ smiller171 –

関連する問題