Have you tried using the synchronize module for this? Since it's a wrapper
around rsync, you should be able to use it to transfer files from one
remote host to another.


On Wed, May 21, 2014 at 1:29 PM, Michael Peters
<[email protected]>wrote:

> I also tried using a copy with a delegate_to and that's not working
> either (the src couldn't be found). Here's a playbook and the output
> from the run:
>
> ]$ cat test3.yml
> ---
> - hosts: all
>   remote_user: sg
>   sudo: true
>   tasks:
>   - name: create remote file
>     file: path=/tmp/XYZ123 state=touch
>     delegate_to: '{{ delegate_host }}'
>
>   - name: testing delegate copy
>     copy: src=/tmp/XYZ123 dest=/tmp/ABC456
>     delegate_to: '{{ delegate_host }}'
>
> ]$ ansible-playbook test3.yml -l app1 -e 'delegate_host=10.0.1.86' -vvv
>
> PLAY [all]
> ********************************************************************
>
> GATHERING FACTS
> ***************************************************************
> <10.0.1.89> ESTABLISH CONNECTION FOR USER: sg on PORT 22 TO 10.0.1.89
> <10.0.1.89> REMOTE_MODULE setup
> <10.0.1.89> EXEC /bin/sh -c 'mkdir -p
> $HOME/.ansible/tmp/ansible-tmp-1400696767.07-233153692139034 && chmod
> a+rx $HOME/.ansible/tmp/ansible-tmp-1400696767.07-233153692139034 &&
> echo $HOME/.ansible/tmp/ansible-tmp-1400696767.07-233153692139034'
> <10.0.1.89> PUT /tmp/tmp6bGYDw TO
> /home/sg/.ansible/tmp/ansible-tmp-1400696767.07-233153692139034/setup
> <10.0.1.89> EXEC /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via
> ansible, key=bbgqvwdsjhbplqqmobpwlqwybvofjfuw] password: " -u root
> /bin/sh -c '"'"'echo SUDO-SUCCESS-bbgqvwdsjhbplqqmobpwlqwybvofjfuw;
> LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8 /usr/bin/python
> /home/sg/.ansible/tmp/ansible-tmp-1400696767.07-233153692139034/setup;
> rm -rf /home/sg/.ansible/tmp/ansible-tmp-1400696767.07-233153692139034/
> >/dev/null 2>&1'"'"''
> ok: [app1]
>
> TASK: [create remote file]
> ****************************************************
> <10.0.1.86> ESTABLISH CONNECTION FOR USER: sg on PORT 22 TO 10.0.1.86
> <10.0.1.86> REMOTE_MODULE file path=/tmp/XYZ123 state=touch
> <10.0.1.86> EXEC /bin/sh -c 'mkdir -p
> $HOME/.ansible/tmp/ansible-tmp-1400696768.62-116058327340724 && chmod
> a+rx $HOME/.ansible/tmp/ansible-tmp-1400696768.62-116058327340724 &&
> echo $HOME/.ansible/tmp/ansible-tmp-1400696768.62-116058327340724'
> <10.0.1.86> PUT /tmp/tmpvpuHFg TO
> /home/sg/.ansible/tmp/ansible-tmp-1400696768.62-116058327340724/file
> <10.0.1.86> EXEC /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via
> ansible, key=fmymfhqecsgxkmngwtllopvyzgarrtjn] password: " -u root
> /bin/sh -c '"'"'echo SUDO-SUCCESS-fmymfhqecsgxkmngwtllopvyzgarrtjn;
> LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8 /usr/bin/python
> /home/sg/.ansible/tmp/ansible-tmp-1400696768.62-116058327340724/file;
> rm -rf /home/sg/.ansible/tmp/ansible-tmp-1400696768.62-116058327340724/
> >/dev/null 2>&1'"'"''
> changed: [app1] => {"changed": true, "dest": "/tmp/XYZ123", "gid": 0,
> "group": "root", "mode": "0644", "owner": "root", "size": 0, "state":
> "file", "uid": 0}
>
> TASK: [testing delegate copy]
> *************************************************
> <10.0.1.86> ESTABLISH CONNECTION FOR USER: sg on PORT 22 TO 10.0.1.86
> failed: [app1] => {"failed": true}
> msg: could not find src=/tmp/XYZ123
>
> FATAL: all hosts have already failed -- aborting
>
> PLAY RECAP
> ********************************************************************
>            to retry, use: --limit @/home/sg/test3.retry
>
> app1                       : ok=2    changed=1    unreachable=0    failed=1
>
>
>
> I should also note that running this will hang too at the end, but a
> single <enter> brings it back to the prompt. Maybe that's connected to
> the ssh-inside-ssh problem I'm having as well with STDIN waiting on a
> carriage-return somewhere but STDIN not being tied to my terminal...
>
>
> On Wed, May 21, 2014 at 2:16 PM, Michael Peters
> <[email protected]> wrote:
> > I was trying to do this via ssh or scp but that's not working (see
> >
> https://groups.google.com/forum/#!msg/ansible-project/WPVGypBbwlU/mYN5B4wp4ogJ
> ).
> > I need to transfer a file on one server (who's ip is determined via a
> > variable and isn't necessarily being managed by ansible) to another
> > ansible managed server.
> >
> > I tried using something like this:
> >
> >   - name: Copy file
> >     command: 'scp /tmp/file.tar.gz {{ ansible_all_ipv4_addresses[0]
> > }}:/tmp/file.tar.gz'
> >     delegate_to: '{{ other_host }}'
> >
> > Like my problems in the above mentioned discussion this just hangs
> > when run via ansible, but runs fine when executed as the same user on
> > other_host.
> >
> > I was just wondering if there is a better way. I could break it up
> > into 2 steps with a fetch and copy but my control server is pretty
> > small and these files are going to be pretty large. Surely other
> > people have automated the movement of large files in their systems
> > with ansible, right?
>
> --
> 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/CAJQqANeCE66ktNvExO%3D9vL_xewRPVFQdJK1NBUJFyJbPXxF8vA%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAMFyvFjv0kHpKnEkNUuPfNQMDQaOnvCnPgeFt%3DsfBsZSoFp1iQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to