如何用Ansible从WordPress插件页获取downloadUrl并下载文件?
解决方案
1. 用WordPress官方插件API获取可靠数据
WordPress提供了标准化的插件信息API,请求这个端点能直接拿到结构清晰的JSON数据,比解析插件页面HTML更稳定。API地址为:https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&slug=block-bad-queries&format=json
2. Ansible实现代码
方法一:用uri模块分步处理
- name: 获取插件的下载链接 uri: url: "https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&slug=block-bad-queries&format=json" return_content: yes register: plugin_info - name: 下载插件文件到目标路径 get_url: url: "{{ plugin_info.json.download_url }}" dest: "/your/target/path/block-bad-queries.zip"
注意:API返回的字段是download_url(下划线分隔),不是你之前尝试的downloadUrl,这是之前失败的核心原因。uri模块会自动把JSON响应解析为字典,直接通过plugin_info.json.download_url即可提取链接。
方法二:用lookup结合过滤器一次性处理
如果想简化成单步操作,可结合lookup和JSON过滤器(需Ansible 2.5+):
- name: 下载插件文件 get_url: url: "{{ lookup('url', 'https://api.wordpress.org/plugins/info/1.2/?action=plugin_information&slug=block-bad-queries&format=json') | from_json | json_query('download_url') }}" dest: "/your/target/path/block-bad-queries.zip"
内容的提问来源于stack exchange,提问作者user3327338
相关产品推荐
相关产品推荐

