Ansible—如何在复制到远程主机之前压缩本地主机中的文件

Ansible—如何在复制到远程主机之前压缩本地主机中的文件,ansible,ansible-role,Ansible,Ansible Role,我正在尝试将大型文件集(100年代)复制到我的远程服务器。但是,使用“复制”命令执行此任务需要相当长的时间。搜索一点,我明白了“同步”是一个很好的适合这个。不幸的是,我当前的远程服务器没有“rsync”,因此我也不能使用“synchronize”选项 作为一种解决方法,我想在ansible主机中压缩文件夹,然后使用“unarchive”模块将其传输到远程服务器 - name: Archive the folder shell: zip <dest-zip-path> <pa

我正在尝试将大型文件集(100年代)复制到我的远程服务器。但是,使用“复制”命令执行此任务需要相当长的时间。搜索一点,我明白了“同步”是一个很好的适合这个。不幸的是,我当前的远程服务器没有“rsync”,因此我也不能使用“synchronize”选项

作为一种解决方法,我想在ansible主机中压缩文件夹,然后使用“unarchive”模块将其传输到远程服务器

- name: Archive the folder
  shell: zip <dest-zip-path> <path-to-folder>
  delegate_to: localhost
-名称:归档文件夹
外壳:拉链
委托给:localhost
但是,这样做会导致以下错误: 模块\u stderr:“sudo:需要密码\n”


在传送之前,是否有更简单的方法在ansible主机上本地压缩文件夹?

您可能正在播放中使用
been:true
。这在委派给本地主机时也适用。但它需要本地计算机上的密码

由于您可能不需要此选项,只需将
been:false
应用于此特定任务即可。否则,您必须在本地主机上配置权限升级,或提供
成为\u密码


此外,您应该考虑使用而不是使用Shell。< /P> < P>基于Zeitounator发布的解决方案,这是我用来解决问题的ANTILE代码:

- name: Archive the files
  archive:
    path: <path-to-folder>
    dest: <dest-zip-path>
    format: zip
  delegate_to: localhost
  become: false
-名称:归档文件
档案文件:
路径:
目的地:
格式:zip
委托给:localhost
变成:假