{"id":20567807,"url":"https://github.com/isometry/ansible-role-release-from-github","last_synced_at":"2025-10-27T07:20:33.932Z","repository":{"id":68239061,"uuid":"247022543","full_name":"isometry/ansible-role-release-from-github","owner":"isometry","description":"Fetch and install release archives from GitHub with automatic latest detection and special handling for HashiCorp products","archived":false,"fork":false,"pushed_at":"2023-01-09T16:41:06.000Z","size":8,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-16T20:28:41.091Z","etag":null,"topics":["ansible-role","deployment-automation"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isometry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-13T08:28:20.000Z","updated_at":"2024-07-04T16:48:19.000Z","dependencies_parsed_at":"2023-02-24T03:45:20.498Z","dependency_job_id":null,"html_url":"https://github.com/isometry/ansible-role-release-from-github","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isometry%2Fansible-role-release-from-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isometry%2Fansible-role-release-from-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isometry%2Fansible-role-release-from-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isometry%2Fansible-role-release-from-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isometry","download_url":"https://codeload.github.com/isometry/ansible-role-release-from-github/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242179426,"owners_count":20084947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible-role","deployment-automation"],"created_at":"2024-11-16T04:48:33.963Z","updated_at":"2025-10-27T07:20:28.881Z","avatar_url":"https://github.com/isometry.png","language":null,"readme":"# Ansible Role: Release from GitHub\n\nFetch and install release archives from GitHub with automatic latest detection and special handling for HashiCorp products.\n\n## Requirements\n\nThe Ansible user must have write access to `release_tmp_path` (default: `/tmp`) and `release_bin_path` (default: `/usr/local/bin`). The role expects to be called with `become` if privilege escalation is required, and will chown all files to the effective user/group with which ansible runs, maintaining rwx permissions from the source archive but stripping write permissions from other users.\n\n## Role Variables\n\nAll role variables are prefixed with `release_` with defaults listed in `defaults/main.yml`.\n\nThe only mandatory variable is `release_repo` which is expected to take the form `\u003cuser|organisation\u003e/\u003crepo\u003e`:\n\n```yaml\nrelease_repo: hashicorp/terraform\n```\n\nIf `release_version` is not specified the role will attempt to determine the \"latest\" release using the GitHub Releases API, falling back to Git tags:\n\n```yaml\nrelease_version: 0.12.23\n```\n\nBy default, remote TLS certificates are not validated on macOS:\n\n```yaml\nrelease_validate_certs: yes\n```\n\nThe role will leave a copy of the release archive in `release_tmp_path` (default: `/tmp`) and only re-download if the version or checksum (remote value checked on each run) changes:\n\n```yaml\nrelease_tmp_path: ~/Downloads\n```\n\nThe role extracts the release archive to `release_bin_path` (default: `/usr/local/bin`), ignoring files listed in `release_exclude_files`:\n\n```yaml\nrelease_bin_path: ~/bin\nrelease_exclude_files:\n  - README\n```\n\nIf an external handler should be notified when the release is updated, the handler name can be passed via `release_notify`.\n\n## Dependencies\n\n* The target system must have `unzip(1)` or `tar(1)` and `gunzip(1)` available as determined by the format of the release to be installed.\n\n## Example Playbooks\n\nDeploy v1.24.0 of [GoBGP](https://github.com/osrg/gobgp) to `/usr/local/bin`:\n\n```yaml\n- hosts: all\n  become: yes\n  roles:\n    - name: breathe.release-from-github\n      release_repo: osrg/gobgp\n      release_version: 1.24.0\n```\n\nDeploy the latest version of [Terraform](https://github.com/hashicorp/terraform) to ~/bin:\n\n```yaml\n- hosts: localhost\n  roles:\n    - name: breathe.release-from-github\n      release_repo: hashicorp/terraform\n      release_tmp_path: ~/Downloads\n      release_bin_path: ~/bin\n```\n\nDeploy version 1.6.0 of [Vault](https://vaultproject.io/) and trigger a rolling restart of cluster members:\n\n```yaml\n- hosts: vault-cluster\n\n  roles:\n    - name: breathe.release-from-github\n      release_repo: hashicorp/vault\n      release_version: 1.6.0\n      release_owner: root\n      release_group: root\n      release_notify: restart vault\n\n  handlers:\n    - name: restart vault\n      become: yes\n      systemd:\n        name: vault\n        state: restarted\n      throttle: 1\n\n  tasks:\n    # ellided\n```\n\n## License\n\nMIT\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisometry%2Fansible-role-release-from-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisometry%2Fansible-role-release-from-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisometry%2Fansible-role-release-from-github/lists"}