# curl playbook

**URL:** <https://forum.ansible.com/t/curl-playbook/22081>\
**Category:** Ansible Project\
**Created:** [July 21, 2016, 8:44pm UTC](https://forum.ansible.com/t/curl-playbook/22081 "2016-07-21T20:44:38Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![GBANE\_FETIGUE](https://avatars.discourse-cdn.com/v4/letter/g/6bbea6/32.png) [@GBANE\_FETIGUE](https://forum.ansible.com/u/GBANE_FETIGUE)\
**Post date:** [July 21, 2016, 8:44pm UTC](https://forum.ansible.com/t/curl-playbook/22081/1 "2016-07-21T20:44:38Z")

</div>

Hi guys,  
I am running an ansible playbook that supposed to return an apllication ID that I am having some issue; here the playbook

- action: shell curl --basic -u admin:admin -F file=/etc/ansible/playbooks/ms3-samples.zip -F name=ms3-samples -F version=2.0 --header “Content-Type:multipart/form-data” “[http://52.73.56.141:8080/mmc-console-3.6.2/api/repository](http://52.73.56.141:8080/mmc-console-3.6.2/api/repository)”  
register: upload
- debug: var=upload

After running here is the result:

PLAY [mmc] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

TASK [setup] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [ip-172-31-61-191.ec2.internal]

#- name: post to cons  
TASK [command] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

changed: [ip-172-31-61-191.ec2.internal]  
[WARNING]: Consider using get\_url or uri module rather than running curl

TASK [debug] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [ip-172-31-61-191.ec2.internal] =\> {  
“upload”: {  
“changed”: true,  
“cmd”: “curl --basic -u admin:admin -F file=/etc/ansible/playbooks/@ms3-samples.zip -F name=ms3-samples -F version=2.0 --header "Content-Type:multipart/form-data" "[http://52.73.56.141:8080/mmc-console-3.6.2/api/repository\](http://52.73.56.141:8080/mmc-console-3.6.2/api/repository%5C)”“,  
“delta”: “0:00:00.088039”,  
“end”: “2016-07-21 20:38:47.715591”,  
“rc”: 0,  
“start”: “2016-07-21 20:38:47.627552”,  
“stderr”: " % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0\r100 411 0 30 100 381 362 4601 --:–:-- --:–:-- --:–:-- 4646”,  
“stdout”: “Specify a valid file to upload”,  
“stdout\_lines”: [  
“Specify a valid file to upload”  
],  
“warnings”: [  
“Consider using get\_url or uri module rather than running curl”  
]  
}  
}

PLAY RECAP \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ip-172-31-61-191.ec2.internal : ok=3 changed=1 unreachable=0 failed=0

It’s telling me that Specify a valid file to upload" I don’t know why the file is ms3-sample.zip. any ideas.

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [July 22, 2016, 6:20am UTC](https://forum.ansible.com/t/curl-playbook/22081/2 "2016-07-22T06:20:23Z")

</div>

> - action: shell curl --basic -u admin:admin -F  
> file=/etc/ansible/playbooks/ms3-samples.zip -F name=ms3-samples -F  
> version=2.0 --header "Content-Type:multipart/form-data"  
> "[http://52.73.56.141:8080/mmc-console-3.6.2/api/repository&quot](http://52.73.56.141:8080/mmc-console-3.6.2/api/repository&quot);  
> &nbsp;&nbsp;register: upload  
> - debug: var=upload

This task will run on the host and not the control machine.

> After running here is the result:
> 
> TASK [debug]  
> \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> ok: [ip-172-31-61-191.ec2.internal] =\> {  
> &nbsp;&nbsp;&nbsp;&nbsp;"upload": {  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"changed": true,  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"cmd": "curl --basic -u admin:admin -F  
> file=/etc/ansible/playbooks/@ms3-samples.zip -F name=ms3-samples -F  
> version=2.0 --header \"Content-Type:multipart/form-data\"  
> \"[http://52.73.56.141:8080/mmc-console-3.6.2/api/repository\\&quot;&quot;](http://52.73.56.141:8080/mmc-console-3.6.2/api/repository%5C%5C&quot;&quot;),  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"delta": "0:00:00.088039",  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"end": "2016-07-21 20:38:47.715591",  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"rc": 0,  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"start": "2016-07-21 20:38:47.627552",  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stderr": " % Total % Received % Xferd Average Speed Time  
> Time Time Current\n Dload Upload  
> Total Spent Left Speed\n\r 0 0 0 0 0 0 0  
> 0 --:--:-- --:--:-- --:--:-- 0\r100 411 0 30 100 381  
> 362 4601 --:--:-- --:--:-- --:--:-- 4646",  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stdout": "Specify a valid file to upload",  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"stdout\_lines": [  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Specify a valid file to upload"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"warnings": [  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Consider using get\_url or uri module rather than running curl"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]  
> &nbsp;&nbsp;&nbsp;&nbsp;}  
> }

So in your case the file need to be on the host ip-172-31-61-191.ec2.internal, I'm guessing that's not the case and the file is on you control machine.

> It's telling me that Specify a valid file to upload" I don't know why the  
> file is ms3-sample.zip. any ideas.

If the file is on the control machine you'll need to run the task on the localhost,  
two ways to achieve that depending on the coding style you like.

- local\_action: shell curl --basic -u admin:admin -F file=/etc/ansible/playbooks/ms3-samples.zip -F name=ms3-samples -F version=2.0 --header "Content-Type:multipart/form-data" "[http://52.73.56.141:8080/mmc-console-3.6.2/api/repository&quot](http://52.73.56.141:8080/mmc-console-3.6.2/api/repository&quot);  
&nbsp;&nbsp;&nbsp;register: upload

or

- shell: curl --basic -u admin:admin -F file=/etc/ansible/playbooks/ms3-samples.zip -F name=ms3-samples -F version=2.0 --header "Content-Type:multipart/form-data" "[http://52.73.56.141:8080/mmc-console-3.6.2/api/repository&quot](http://52.73.56.141:8080/mmc-console-3.6.2/api/repository&quot);  
&nbsp;&nbsp;&nbsp;register: upload  
&nbsp;&nbsp;&nbsp;delegate\_to: localhost
