如何在 Ansible playbook 中将文件从本地主机复制到远程主机?

问题描述 投票:0回答:4

我有一个目录:

/users/rolando/myfile

我想将“myfile”复制到目录中的主机名“targetserver”:

/home/rolando/myfile

剧本中执行此操作的语法是什么?我使用

copy
命令找到的示例看起来更多的是关于将文件从远程服务器上的源目录复制到同一远程服务器上的目标目录。

我尝试过的剧本 .yml 中的行失败了:

- copy: 
    src='/users/rolando/myfile' 
    dest='rolando@targetserver:/home/rolando/myfile'

我做错了什么?

ansible
4个回答
27
投票

来自复制概要:

copy
模块将本地盒子上的文件复制到远程位置。

- hosts: targetserver
  tasks:
    - copy:
        src: /users/rolando/myfile
        dest: /users/rolando/myfile

4
投票

这是更新的答案。上面的答案有助于复制本地计算机本身的文件。 使用copy模块

中提供的remote_src参数应该很容易
- name: Copy a "sudoers" file on the remote machine for editing
  copy:
    src: /users/rolando/myfile
    dest: /home/rolando/myfile
    remote_src: yes 

0
投票

从 Ansible 2.10 开始,核心模块被重新组织到命名空间中,并且 文档 建议使用

ansible.builtin.copy
:

- hosts: targetserver
  tasks:
    - ansible.builtin.copy:
        src: /users/rolando/myfile
        dest: /users/rolando/myfile

0
投票

  • 名称:复制文件的简单 Playbook 主办方:全部 变成:是 任务:
    • name:这个任务是复制文件 复制: 源代码:/users/rolando/myfile 目标:/users/rolando/myfile
© www.soinside.com 2019 - 2024. All rights reserved.