Thanks Dmitry. Hosting it on s3 is a great idea. We may be able to use that with get_url as a short term solution. The download speed is the main issue and we get great speeds from s3.
Cheers On Sunday, 2 March 2014 20:00:49 UTC+10, Dmitry Horbach wrote: > > Custom module will work best in your case. > We are using the same approach but with more sources of asset. This module > is basically used in every software installation role and separate role is > not an option. > > 1) Check if file is already present in destination directory > 2) Download from /opt/repository/app (mount of software repository for > installations with Vagrant) > 3) Download from http://reposerver/app or s3://repobucket/app > 4) Download from internet > > - name: Get Packer installer > get_installer: > > name={{ packer_installer }} > dest={{ packer_install_home }} > repo={{ repo_app_base }} > path={{ packer_repo_path }} > repo_url={{ repo_app_url }} > url={{ packer_url }} > sudo: yes > > Where > packer_installer: '{{ packer_version }}_linux_386.zip' > packer_repo_path: HashiCorp/Packer/{{ packer_version }} > packer_url: https://dl.bintray.com/mitchellh/packer/{{ packer_installer > }} > repo_app_base: /opt/repository/app > repo_app_url: http://reposerver/app (or s3://repobucket/app) > > So module searches in > 1) /opt/install/packer/0.5.1_linux_386.zip (destination) > 2) /opt/repository/app/HashiCorp/Packer/0.5.1/0.5.1_linux_386.zip (nfs > mount) > 3) http://reposerver/app/HashiCorp/Packer/0.5.1/0.5.1_linux_386.zip (http > server) or s3://repobucket/app/HashiCorp/Packer/0.5.1/0.5.1_linux_386.zip > 4) https://dl.bintray.com/mitchellh/packer/0.5.1_linux_386.zip > > Drawback - none of your roles can be shared in Ansible Galaxy. > > On Saturday, March 1, 2014 1:19:45 PM UTC+3, Jason Sheedy wrote: >> >> Thanks for the feedback guys. I think, as James suggested, the simplest >> way would be to download all the assets in a separate role. >> >> That sayid, I was hoping to download / sync to the asset server in an >> addhock fashion in various roles. To do that I think it would be easier to >> write a custom module than piecing together a long list of calls to >> standard modules every time I need an asset. As an example, I'm thinking >> something like this would be good: >> >> tasks >> >> - name: download asset and sync to asset server >> url: http://www.some.com/asset.tar.gz >> dest: /var/assets >> asset_host: [email protected] >> >> This would download the asset if if doesn't exist on the asset server and >> syncronise with the local file system. The dest directory could be mirrored >> between the asset server and the host machine. >> > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/cb77e64f-f371-4714-b31a-ac0abc7c4e8f%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
