【问题标题】:Copy files between servers using SCP in ansible?在ansible中使用SCP在服务器之间复制文件?
【发布时间】:2019-07-15 06:05:22
【问题描述】:

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

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

file.pb

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

这是命令

peer channel signconfigtx -f file.pb

现在我想再次将这个签名的文件复制到另一台机器上,然后在它现在所在的 docker 容器中使用相同的 ansible 脚本对其进行签名。

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

谁能建议我如何做到这一点?

编辑:

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

致命:[user1]:失败! => {"msg": "无法创建本地 目录(/home/dhiraj/ansible_practise/playlist/fetched/user1/home/user1/Documents/Blockchain/network/scripts): [Errno 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

【问题讨论】:

  • 如果您为主机配置无密码密钥身份验证,SCP 不会要求输入密码。
  • 运行 mkdir fetched 以创建 dest dest: fetched。你想scp files to / from docker 容器运行在哪台机器上?相同的ansible serverremote machine?正在运行的docker image 是什么?您将需要该映像中的 ssh 服务器。请使用这些详细信息更新问题。但是,我建议在主机(运行 docker 容器的地方)中使用 persistent volume 并使用它,而不是复杂化。
  • 已经创建了 'fetched' 文件夹。 docker 容器正在远程机器上运行,我可以访问它。我可以访问挂载到 docker 容器的目录。

标签: docker ansible devops scp


【解决方案1】:

还有更多选择。

1) scp 从 docker 到另一台机器

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

2) 获取和复制

  • fetch 从 docker 到你的机器

  • copy 从你的机器到另一台机器

3) 获取和拉取

  • fetch 从 docker 到你的机器
  • 在另一台机器上运行 ansible-pull 并运行将从您的机器上获取文件的 playbook。

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

【讨论】:

    【解决方案2】:

    我没有直接在服务器之间复制文件,而是使用了 fetch ansible 模块。在 fetch 中,我只需要定义 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
    

    【讨论】:

    • 请注意dest 路径必须是目录,并且路径必须以目录分隔符结尾('/' on 'nix systems ) 或 flat 属性将不起作用。
    猜你喜欢
    • 1970-01-01
    • 2020-01-15
    • 2018-09-04
    • 2013-04-27
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2016-04-19
    相关资源
    最近更新 更多