copy restricted files from server A to B

I have some files with 0400/-r-------- permissions on server A that I need to copy to server B and preserve permissions.

For example:
serverA:/etc/ssl_cert.key → serverB:/etc/ssl_cert.key

How would you do it?

Another detail is that serverA can’t talk to serverB or vice versa, only the Ansible server can talk to both of them

Have a look at the various examples on the synchronize module page:
https://docs.ansible.com/ansible/latest/modules/synchronize_module.html.
You can use a combination of delegate_to and push/pull mode.

Use copy (to copy on the second server), fetch (to get the file on the controller), and stat (to get rights) modules

Regards,

JYL

Thank you guys!
It worked, this is the playbook for anyone having the same issues.
At the end I added a test to remove files from buffer

serverA% ls -l
-rw-------. 1 root 6 May 20 16:11 ezaz.txt

  • hosts: serverA
    gather_facts: no
    tasks:

  • name: fetch test file
    fetch: src=/tmp/ezaz.txt dest=/tmp/buffer/ flat=yes fail_on_missing=yes

  • hosts: serverB
    gather_facts: no
    tasks:

  • name: copy from dckr to dckr3
    copy: src=/tmp/buffer/ezaz.txt dest=/tmp/final_ezaz.txt remote_src=no owner=root group=root mode=0400 backup=yes force=yes

  • hosts: ansible
    gather_facts: no
    tasks:

  • name: Delete certificates from /tmp
    file: path=/tmp/buffer/ezaz.txt state=absent

serverB% ls -l
-r--------. 1 root root 6 May 20 16:30 final_ezaz.txt