# Discussion - Component packages on control machine or remote machine?

**URL:** <https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444>\
**Category:** Ansible Developer\
**Tags:** windows\
**Created:** [June 9, 2015, 7:52am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444 "2015-06-09T07:52:27Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Amir\_Luzon](https://avatars.discourse-cdn.com/v4/letter/a/9d8465/32.png) [@Amir\_Luzon](https://forum.ansible.com/u/Amir_Luzon)\
**Post date:** [June 9, 2015, 7:52am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444/1 "2015-06-09T07:52:27Z")

</div>

Hi guys,

I’d like to open this question for discussion as I am not sure what is the best practice here.

So we are working on deploying our platform. This involves Unix machines and windows machine. Currently we are using Artifactory to store component packages. Component packages are basically Zip files with each package. We are planning in the future to use Nuget and Git for this but for now our packages are Zip files with component already built within them.

Here is the million dollar question, what would you suggest:

- Download packages to Ansible control machine and deploy them to remote hosts?
- Download packages straight to remote host and conduct logic there?  
One of the reasons i am asking is due to a complaint from one of the DEVs working on a Unix component deployment. He says “Hey, because you want us to have the package on the remote machine i cannot use simple and useful modules like ‘Copy’”.

So what do you guys think?

---

<div class="post-metadata">

**Author:** ![Hagai\_Kariti](https://avatars.discourse-cdn.com/v4/letter/h/4491bb/32.png) [@Hagai\_Kariti](https://forum.ansible.com/u/Hagai_Kariti)\
**Post date:** [June 9, 2015, 8:35am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444/2 "2015-06-09T08:35:30Z")

</div>

If the networking overhead is the same (i.e. it doesn’t cost more to fetch multiple times from artifactory, isn’t slower etc), I think you should download straight on the target hosts. Does Artifactory have an HTTP api? If it does, there’s the get\_url module ([http://docs.ansible.com/get\_url\_module.html](http://docs.ansible.com/get_url_module.html))

---

<div class="post-metadata">

**Author:** ![mark.kusch](https://avatars.discourse-cdn.com/v4/letter/m/8e8cbc/32.png) [@mark.kusch](https://forum.ansible.com/u/mark.kusch)\
**Post date:** [June 9, 2015, 8:51am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444/3 "2015-06-09T08:51:47Z")

</div>

Hi,

I'd recommend the opposite. Question might be for propagation between  
different stages. Even if you can verify your download with shasums,  
you may want to ensure that the exact same file is available to all  
nodes in question.  
Assumption may be that there's a snapshot installed on some of the  
stages, and the snapshot gets updated in artifactory by CI, you'll  
end up having two different artifacts installed. Downloading and  
verifying once feels better than downloading and verifying N times.

# kraM

---

<div class="post-metadata">

**Author:** ![Amir\_Luzon](https://avatars.discourse-cdn.com/v4/letter/a/9d8465/32.png) [@Amir\_Luzon](https://forum.ansible.com/u/Amir_Luzon)\
**Post date:** [June 9, 2015, 8:55am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444/4 "2015-06-09T08:55:32Z")

</div>

yes it does have http api, we are planning on using it with get\_url or win\_geturl

---

<div class="post-metadata">

**Author:** ![Amir\_Luzon](https://avatars.discourse-cdn.com/v4/letter/a/9d8465/32.png) [@Amir\_Luzon](https://forum.ansible.com/u/Amir_Luzon)\
**Post date:** [June 9, 2015, 8:58am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444/5 "2015-06-09T08:58:59Z")

</div>

thanks for the response, i must admit i am quite new to this, could you please simplify your answer since i am not completely familiar with your meaning of “shasums”, “stages”, “snapshot”.

thanks again

---

<div class="post-metadata">

**Author:** ![mark.kusch](https://avatars.discourse-cdn.com/v4/letter/m/8e8cbc/32.png) [@mark.kusch](https://forum.ansible.com/u/mark.kusch)\
**Post date:** [June 9, 2015, 9:11am UTC](https://forum.ansible.com/t/discussion-component-packages-on-control-machine-or-remote-machine/18444/6 "2015-06-09T09:11:57Z")

</div>

Hi,

stage here means something like development, test or production  
instances of your deployment.

shasums here means checksums to validate that your download has  
succeeded properly (e.g. md5 /path/to/file or sha256sum /path/to/file).

snaphshot here comes from maven based Java development (my assumpion  
was maven/gradle because of artifactory). A snapshot is a development  
version of a software which has no release version, which is not tagged,  
which may get overridden in artifactory, because it is not a final  
version.

Hope this helps for your understanding,

# kraM
