在两个远程主机

时间:2018-02-24 14:27:39

标签: ansible

我在负载均衡器后面有两个Web服务器,它们使用Let's Encrypt进行自动SSL。 web1将处理SSL密钥的创建和续订,然后将这些密钥同步到web2。尝试使用variant of this对我不起作用:

- 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,这会切换我的用户以及为什么我得到权限被拒绝,b / c SSH密钥与非root用户关联。因此,我似乎需要一种方法来访问仅root用户文件夹的内容,并与普通用户一起发送。我可以创建一些步骤来复制和更改root权限,然后与非root同步,并使用sudo修复远程主机上的权限。

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

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

0 个答案:

没有答案