繁体   English   中英

在两个远程主机之间同步文件/文件夹

[英]Synchronize files/folders between two remote hosts

我在负载均衡器后面有两个Web服务器,这些服务器使用“让我们加密”自动SSL。 web1将处理SSL密钥的创建和更新,然后将这些密钥同步到web2 尝试使用这种方式对我不起作用:

- name: Sync SSL files from master to slave(s)
  synchronize:
    src: "{{ item }}"
    dest: "{{ item }}"
  when: inventory_hostname != 'web1'
  delegate_to: web1
  with_items:
    - /etc/nginx/ssl/letsencrypt/
    - /var/lib/letsencrypt/csrs/
    - /var/lib/letsencrypt/account.key
    - /etc/ssl/certs/lets-encrypt-x3-cross-signed.pem

返回立即错误:

Permission denied (publickey).\r\nrsync: connection unexpectedly closed (0 bytes received so far) [Receiver]\nrsync error: unexplained error (code 255) at io.c(605) [Receiver=3.0.9]\n"

一旦ansible登录到web1web2 ,ssh转发为什么不起作用? 当我手动执行此操作时,它可以正常工作:

ssh -A user@web1
#logged into web1 successfully
ssh user@web2
#logged into web2 successfully

这是我的ansible.cfg

[defaults]
filter_plugins = ~/.ansible/plugins/filter_plugins/:/usr/share/ansible_plugins/filter_plugins:lib/trellis/plugins/filter
host_key_checking = False
force_color = True
force_handlers = True
inventory = hosts
nocows = 1
roles_path = vendor/roles

[ssh_connection]
ssh_args=-o ControlMaster=auto -o ControlPersist=60s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r -o ForwardAgent=yes
pipelining = True
retries = 1

我认为正在发生的事情是我试图从仅具有root权限的文件夹中复制内容。 因此,使用了sudo ,它切换了我的用户以及为什么我拒绝了权限,因为SSH密钥与非root用户相关联。 因此,似乎我需要一种方法来访问仅根目录文件夹的内容,并将其发送给普通用户。 我可能会创建一些步骤来复制和更改root用户的权限,然后与非root用户同步,然后使用sudo修复远程主机上的权限。

似乎有很多步骤,但是不确定同步是否可以处理我的用例。

更新 :添加了更多相关的错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM