为什么 Ansible get_url 给出校验和错误?
Why Ansible get_url gives error about checksums?
我的 ansible 剧本中有一个任务,即从 github url 下载 java 存档。
任务在这里:
- name: Download Jar Plugin
get_url:
url: https://GitHub-URL/plugins-1.0.5.jar
dest: /app/plugins/
没有提到校验和,但它给出了这个错误:
fatal: [host]: FAILED! => {"changed": false, "msg": "attempted to take checksum of directory: /app/plugins/plugins-1.0.5.jar"}
有人对此有任何想法吗?是否有任何解决方法可以让它下载此 java 存档?
首先,GitHub 不是保存二进制文件的正确位置。在大多数情况下,Github 不允许我们存储大于 100 MB 的单个文件。您应该将二进制文件保存在物理服务器或任何云存储中,然后从那里提取。
现在,如果您真的倾向于遵循这种不良做法,我建议您首先创建一个等效的 unix curl
来做到这一点。如果您有现有的 curl
命令来执行此操作,请与我们分享或简单地使用 ansible shell
模块作为起点。您也可以尝试增加超时,因为默认值仅为 10 秒。这是超时设置为 200 秒的片段。
- name: Download Jar Plugin
get_url:
url: https://GitHub-URL/plugins-1.0.5.jar
dest: /app/plugins/
timeout: 200
尝试如下添加校验和参数:
- name: Download Jar Plugin
get_url:
url: https://GitHub-URL/plugins-1.0.5.jar
dest: /app/plugins/
timeout: 200
checksum: <yourchecksum>
希望这对您的错误有所帮助。
我的 ansible 剧本中有一个任务,即从 github url 下载 java 存档。 任务在这里:
- name: Download Jar Plugin
get_url:
url: https://GitHub-URL/plugins-1.0.5.jar
dest: /app/plugins/
没有提到校验和,但它给出了这个错误:
fatal: [host]: FAILED! => {"changed": false, "msg": "attempted to take checksum of directory: /app/plugins/plugins-1.0.5.jar"}
有人对此有任何想法吗?是否有任何解决方法可以让它下载此 java 存档?
首先,GitHub 不是保存二进制文件的正确位置。在大多数情况下,Github 不允许我们存储大于 100 MB 的单个文件。您应该将二进制文件保存在物理服务器或任何云存储中,然后从那里提取。
现在,如果您真的倾向于遵循这种不良做法,我建议您首先创建一个等效的 unix curl
来做到这一点。如果您有现有的 curl
命令来执行此操作,请与我们分享或简单地使用 ansible shell
模块作为起点。您也可以尝试增加超时,因为默认值仅为 10 秒。这是超时设置为 200 秒的片段。
- name: Download Jar Plugin
get_url:
url: https://GitHub-URL/plugins-1.0.5.jar
dest: /app/plugins/
timeout: 200
尝试如下添加校验和参数:
- name: Download Jar Plugin
get_url:
url: https://GitHub-URL/plugins-1.0.5.jar
dest: /app/plugins/
timeout: 200
checksum: <yourchecksum>
希望这对您的错误有所帮助。