我有一个任务看起来是这样的:
- name: Download {{ mysql_connector_download_url }}
ansible.builtin.get_url:
url: '{{ mysql_connector_download_url }}'
dest: '{{ mysql_connector_download_dir }}/{{ mysql_connector_download_file }}'
register: jdbc_driver其中mysql_connector_download_url扩展为https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.31.tar.gz
这已经有很长一段时间了,但是由于某些原因,它不再起作用了,我得到的错误是:
"msg": "Request failed",
"response": "HTTP Error 403: Forbidden",
"status_code": 403,
"url": "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.31.tar.gz"奇怪的是,我可以在目标机器上键入wget和相同的URL,这很好,只有通过ansible才能下载失败。
我在想,可能涉及到cookie,但如果是这样的话,wget不也应该失败吗?
发布于 2023-02-06 09:30:34
由于文件是可用的,但隐藏在重定向后面,因此最简单的方法是查看wget的输出,以获得文件的真实位置并从那里下载。
在这种情况下,将https://dev.mysql.com/get/Downloads…重定向到https://cdn.mysql.com/Downloads…并将最后一个URL传递给Ansible是成功的。
这当然会在未来有所改变,但这个解决方案为我解决了问题。
https://serverfault.com/questions/1121140
复制相似问题