Fetch and install release archives from GitHub with automatic latest detection and special handling for HashiCorp products.
The 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.
All role variables are prefixed with release_ with defaults listed in defaults/main.yml.
The only mandatory variable is release_repo which is expected to take the form <user|organisation>/<repo>:
release_repo: hashicorp/terraformIf release_version is not specified the role will attempt to determine the "latest" release using the GitHub Releases API, falling back to Git tags:
release_version: 0.12.23By default, remote TLS certificates are not validated on macOS:
release_validate_certs: yesThe 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:
release_tmp_path: ~/DownloadsThe role extracts the release archive to release_bin_path (default: /usr/local/bin), ignoring files listed in release_exclude_files:
release_bin_path: ~/bin
release_exclude_files:
- READMEIf an external handler should be notified when the release is updated, the handler name can be passed via release_notify.
- The target system must have
unzip(1)ortar(1)andgunzip(1)available as determined by the format of the release to be installed.
Deploy v1.24.0 of GoBGP to /usr/local/bin:
- hosts: all
become: yes
roles:
- name: breathe.release-from-github
release_repo: osrg/gobgp
release_version: 1.24.0Deploy the latest version of Terraform to ~/bin:
- hosts: localhost
roles:
- name: breathe.release-from-github
release_repo: hashicorp/terraform
release_tmp_path: ~/Downloads
release_bin_path: ~/binDeploy version 1.6.0 of Vault and trigger a rolling restart of cluster members:
- hosts: vault-cluster
roles:
- name: breathe.release-from-github
release_repo: hashicorp/vault
release_version: 1.6.0
release_owner: root
release_group: root
release_notify: restart vault
handlers:
- name: restart vault
become: yes
systemd:
name: vault
state: restarted
throttle: 1
tasks:
# ellidedMIT