Ansible 试图访问root用户拥有的文件的权限被拒绝

Ansible 试图访问root用户拥有的文件的权限被拒绝,ansible,Ansible,我有两台远程服务器,我需要使用synchronize指令将文件从一台服务器传输到另一台服务器 在serverA中,我使用sudo用户创建了一个SSH密钥(id_rsa),并将公钥复制到serverB中(复制到同一sudo用户的authorized_keys文件中) 主机文件 [servers] prod_server ansible_host=IP_prod new_server ansible_host=IP_new [servers:vars] ansible_user=sudo_user

我有两台远程服务器,我需要使用
synchronize
指令将文件从一台服务器传输到另一台服务器

在serverA中,我使用sudo用户创建了一个SSH密钥(id_rsa),并将公钥复制到serverB中(复制到同一sudo用户的authorized_keys文件中)

主机文件

[servers]
prod_server ansible_host=IP_prod
new_server ansible_host=IP_new

[servers:vars]
ansible_user=sudo_user
ansible_sudo_pass=sudo_password
ansible_ssh_private_key_file=~/.ssh/id_rsa

任务

运行playbook时,会显示一个错误:

change\u dir\“/etc/letsencrypt/live/domain.tld\”失败:权限被拒绝
这意味着
sudo\u用户
没有根权限访问该文件。 如果我将
been:true
设置为true,则可以访问
fullchain.pem
文件,但游戏将尝试使用root用户传输文件,并且SSH密钥
id\u rsa
sudo\u用户所有


我必须设置什么才能使其正常工作?

以root身份连接或升级权限,不要委派,使用rsync uri作为
dest
,使用正确的用户名以root身份连接,这意味着我的笔记本SSH密钥必须存在于两个远程服务器中,在root用户的授权密钥文件中,目前我的笔记本SSH密钥只存在于远程sudo用户帐户中。如果我使用
been:true升级权限
则存在仅由
sudo用户拥有的远程SSH密钥问题
。。。也许我错过了什么?你能给我举一个“用正确的用户名使用rsync uri as
dest
”的例子吗?同步文档页面有我能想到的最完整的例子列表。你的意思是?不幸的是,rsync uri作为dest与正确的用户名无关。。。。谢谢你!相反,这里有一个类似的问题:建议的解决方案
rsync\u路径:sudo rsync
似乎是正确的方向!
- name: Transfer files from prod to new server
  hosts: new_server
  gather_facts: false
  roles:
  - rsync
- name: Copy files to new server
  synchronize:
    src: /etc/letsencrypt/live/domain/fullchain.pem
    dest: /opt
  delegate_to: prod_server