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



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

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

file.pb

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

这是命令

peer channel signconfigtx -f file.pb

现在我想在它从现在所在的 docker 容器中使用相同的 ansible 脚本签名后,再次将此签名文件复制到另一台机器。

我想尝试SCP但不确定它将如何工作,因为它会要求输入密码。

谁能建议我怎么做?

编辑:

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

致命: [用户 1]: 失败! => {"msg": "无法创建本地 directory(/home/dhiraj/ansible_practise/playlist/fetched/user1/home/user1/Documents/Blockchain/network/scripts): [错误20]不是目录: '/home/dhiraj/ansible_practise/playlist/fetched/user1'"}

下面是我的 ansible 脚本

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

还有更多选择。

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

  • 将 Docker 上运行 scp 的用户的公钥放在您在另一台计算机上连接的用户的authorized_key。
  • 在 docker run 命令: scp file.pb user@another_machine:file.pdb

2)获取和复制

  • 从码头工人提取到您的计算机

  • 从您的计算机复制到另一台计算机

3)获取和拉取

  • 从码头工人提取到您的计算机
  • 在另一台计算机上运行 ansible-pull 并运行将从您的计算机获取文件的剧本。

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

我所做的不是直接复制文件,而是使用了 ansiblefetch模块。在获取中,我只需要定义source pathdestination path.

这是示例

- 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

最新更新