我正在尝试使用 Windows 10 计算机上的 Ansible 将 zip 文件上传到 URL。我目前正在尝试以下操作:
- name: Get zip file contents for upload
slurp:
src: 'bundle.zip'
register: zip_contents
no_log: true
- name: Upload ZIP
ansible.windows.win_uri:
url_method: "PUT"
url: "my-url.com/bundle.zip"
body: "{{ zip_contents['content'] | b64decode }}"
但是,这会导致上传的文件损坏,大小是预期大小的两倍。我尝试在本地对 zip 文件进行编码和解码,以确保此方法可行,结果似乎没问题。上述代码块适用于其他文件类型,例如 xml 和 json。
做这个的最好方式是什么?
答案1
由于我试图专门上传到 Artifactory,因此我找到了一种使用 jfrog CLi 的解决方法:
- name: Upload ZIP
ansible.windows.win_powershell:
script: |
jfrog rt u 'bundle.zip' 'my-repo/bundle.zip'
然而,如果存在更原生的 Ansible 解决方案的话,我会很喜欢。