2016-03-04 23 views
10

voglio eseguire il comando successivo utilizzando playbook ansible:Esegui ricciolo -X con playbook ansible

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

Come posso farlo funzionare?

se corro:

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

Ho la prossima falliscono:

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

risposta

19

Il modo migliore per farlo è quello di utilizzare il 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" 

Dal momento che il file JSON è sul remo te macchina il modo più semplice per eseguire è probabilmente con il modulo shell:

- 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

Grazie @ smiller171 ma tryes per eseguire il file 'mesos-consul.json' del playbook, e non della macchina remota, ho un errore quando eseguo il tuo modulo, è nella descrizione. –

+0

È possibile utilizzare il [modulo di recupero] (http://docs.ansible.com/ansible/fetch_module.html) per recuperare il file json dal nodo remoto e quindi utilizzare il modulo URI oppure è possibile utilizzare il " script "per eseguire il comando di arricciatura sul nodo remoto. Posso aggiornare la mia risposta per illustrare quello che preferisci. – smiller171

+0

Penso che l'uso del modulo di script sia il modo più semplice per eseguire il comando, non lo so molto perché non ho tanta esperienza possibile, quindi per favore vorrei il modo più semplice per capire. Grazie @ smiller171 –

Problemi correlati