我已经在我的机器上执行了一个 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 path
和destination 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