[英]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登录到web1
或web2
,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.