Ansible-从Github存储库下载最新版本的二进制文件 [英] Ansible - Download latest release binary from Github repo
问题描述
使用Ansible,请告知我如何从Github存储库下载最新版本的二进制文件.根据我目前的理解,这些步骤将是: 一种.获取最新版本的URL b.下载版本
With Ansible please advise how i could download the latest release binary from Github repository. As per my current understanding the steps would be: a. get URL of latest release b. download the release
我有类似的东西不能提供实际的版本(例如v0.11.53):
For a. I have something like which does not provide the actual release (ex. v0.11.53):
- name: get latest Gogs release
local_action:
module: uri
url: https://github.com/gogits/gogs/releases/latest
method: GET
follow_redirects: no
status_code: 301
register: release_url
对于b.我有下面的工作,但需要不断更新.而不是版本,我需要在a中设置一个变量:
For b. I have the below which works but needs constant updating. Instead of version i would need a variable set in a.:
- name: download latest
become: yes
become-user: "{{gogs_user}}"
get_url:
url: https://github.com/gogs/gogs/releases/download/v0.11.53/linux_amd64.tar.gz
dest: "/home/{{gogs_user}}/linux_amd64.tar.gz"
谢谢!
推荐答案
Github has an API to manipulate the release which is documented.
因此,假设您想获得最新版本的ansible(属于ansible项目)
so imagine you want to get the latest release of ansible (which belong to the project ansible) you would
- 调用网址
https://api.github.com/repos/ansible/ansible/releases/latest
- 获取这样的json结构
{
"url": "https://api.github.com/repos/ansible/ansible/releases/5120666",
"assets_url": "https://api.github.com/repos/ansible/ansible/releases/5120666/assets",
"upload_url": "https://uploads.github.com/repos/ansible/ansible/releases/5120666/assets{?name,label}",
"html_url": "https://github.com/ansible/ansible/releases/tag/v2.2.1.0-0.3.rc3",
"id": 5120666,
"node_id": "MDc6UmVsZWFzZTUxMjA2NjY=",
"tag_name": "v2.2.1.0-0.3.rc3",
"target_commitish": "devel",
"name": "THESE ARE NOT OUR OFFICIAL RELEASES",
...
},
"prerelease": false,
"created_at": "2017-01-09T16:49:01Z",
"published_at": "2017-01-10T20:09:37Z",
"assets": [
],
"tarball_url": "https://api.github.com/repos/ansible/ansible/tarball/v2.2.1.0-0.3.rc3",
"zipball_url": "https://api.github.com/repos/ansible/ansible/zipball/v2.2.1.0-0.3.rc3",
"body": "For official tarballs go to https://releases.ansible.com\n"
}
- 获取键
tarball_url
的值
- 下载刚刚检索到的密钥的值
- get the value of the key
tarball_url
- download the value of the key retrieved just above
在可以完成的Ansible代码中
In ansible code that would do
- hosts: localhost
tasks:
- uri:
url: https://api.github.com/repos/ansible/ansible/releases/latest
return_content: true
register: json_reponse
- get_url:
url: "{{ json_reponse.json.tarball_url }}"
dest: ./ansible-latest.tar.gz
我让您调整适当的参数来回答您的问题:)
I let you adapt the proper parameters to answer your question :)
这篇关于Ansible-从Github存储库下载最新版本的二进制文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!