如何将相同的文件传输到带宽最小的多个服务器

时间:2018-03-22 22:08:42

标签: azure ansible

我使用ansible copy task将相同的文件复制到大约50个Azure服务器。

- copy:
    src: /home/myuser/project/build/fatboot.jar
    dest: /opt/project/fatboot.jar
    owner: foo
    group: foo
    mode: 0644

这会将相同的文件上传50次到azure(每个服务器一次)。

是否可以将其上传到azure,然后将其从远程位置复制到azure中的服务器?

还是通过其他方式减少我的电脑上的网络流量(以及时间)?

1 个答案:

答案 0 :(得分:0)

.jar放入Blob存储空间,programaticallyaz CLIAzure Storage Explorer,然后从每个虚拟机中获取。{p}然后为blob创建Shared Access Signature

这种方法应该比从办公室上传快几个数量级。所有流量都保存在同一个Azure DC中,只需确保存储帐户与您的计算机位于同一区域。

- name: Fetch jar.jar from blob storage
  get_url:
    url: https://{{storage_account}}.blob.core.windows.net/{{container}}/jar.jar?{{sas_token}}
    dest: /opt/project/jar.jar
    mode: 0644

我不太确定你在Ansible中如何追加包含URL查询参数的字符串,但是你明白了。

完全成型时,Shared Access Signature URL应如下所示:

SAS URL breakdown