Docker 在ansible中使用SCP在服务器之间复制文件?

Docker 在ansible中使用SCP在服务器之间复制文件?,docker,ansible,devops,scp,Docker,Ansible,Devops,Scp,我已经在我的机器上执行了一个ansible脚本。是什么 1.将文件从我的计算机复制到远程计算机上运行的docker容器 file.pb 2.在docker容器上执行命令。该命令使用复制的文件并对其签名 这是命令 peer channel signconfigtx -f file.pb 现在,我想再次将这个已签名的文件复制到另一台机器上,在它从现在所在的docker容器中以相同的ansible脚本进行签名之后 我想试试SCP,但不确定它将如何工作,因为它将询问密码 谁能建议我怎么做 编辑: 我

我已经在我的机器上执行了一个ansible脚本。是什么

1.将文件从我的计算机复制到远程计算机上运行的docker容器

file.pb
2.在docker容器上执行命令。该命令使用复制的文件并对其签名

这是命令

peer channel signconfigtx -f file.pb
现在,我想再次将这个已签名的文件复制到另一台机器上,在它从现在所在的docker容器中以相同的ansible脚本进行签名之后

我想试试
SCP
,但不确定它将如何工作,因为它将询问密码

谁能建议我怎么做

编辑:

我试图在本地机器上从远程服务器获取文件,但我发现以下错误

致命:[user1]:失败!=>{“msg”:“无法创建本地 目录(/home/dhiraj/ansible_practice/playlist/fetched/user1/home/user1/Documents/Blockchain/network/scripts): [Errno 20]不是目录: “/home/dhiraj/ansible_practice/playlist/fetched/user1”

下面是我的手稿

 - name:  Fetching a file from remote server
      fetch:
        src: "/home/user1/Documents/Blockchain/network/scripts/file.pb"
        dest: fetched

还有更多的选择

1) 从docker到另一台机器的scp

  • 将Docker上运行scp的用户的公钥置于您在另一台机器上连接的用户的授权密钥
  • docker运行时:scp file.pbuser@another_machine:file.pdb
2) 获取并复制

  • 从docker到你的机器

  • 从您的机器到另一台机器

3) 提取并拉取

  • 从docker到你的机器
  • 在另一台机器上运行playbook,从您的机器上获取文件

4) 在另一台机器上运行scp…

而不是直接在服务器之间复制文件。我所做的是使用ansible的
fetch
模块。在fetch中,我只需要定义
源路径
目标路径

这是样品

   - name:  Fetching a file from remote server
      fetch:
        src: "{{ DEST }}/Documents/Blockchain/network/scripts/file.pb"
        dest: /home/fetched/
        flat: yes // it will not create dir strcuture as same as source
        validate_checksum: false

如果您将无密码密钥身份验证配置到主机,SCP不会请求密码。运行
mkdir fetched
创建dest
dest:fetched
。是否要将scp文件发送到运行在哪台机器上的docker容器中?相同的
ansible服务器
远程机器
?正在运行的
docker映像是什么?您需要在该映像中使用ssh服务器。请用这些详细信息更新问题。但是,我建议在主机(docker容器运行的地方)中使用
持久卷
,并使用它,而不是使之复杂化。已经创建了“获取”文件夹。docker容器正在远程机器上运行&我可以访问它。我能够访问装载到docker容器的目录。请注意,
dest
路径必须是一个目录,并且该路径必须以目录分隔符(“/”在“nix系统”上)结束,否则
flat
属性将不起作用。