veza/ansible/roles/go/tasks/main.yml
2025-12-03 22:56:50 +01:00

38 lines
1.2 KiB
YAML

---
# file: roles/go/tasks/main.yml
- name: "get go json release page"
ansible.builtin.uri:
url: https://go.dev/dl/?mode=json
return_content: true
register: go_json_response
when: go_version is not defined
tags: go
- name: "parse latest stable go version"
ansible.builtin.set_fact:
go_latest_version: "{{ go_json_response.json | community.general.json_query(query) | first | regex_replace('^go', '') }}"
vars:
query: "[?stable].version"
when: go_version is not defined
tags: go
- name: "download go {{ go_version | default(go_latest_version) }} archive"
ansible.builtin.get_url:
url: https://go.dev/dl/go{{ go_version | default(go_latest_version) }}.linux-amd64.tar.gz
dest: /dev/shm/go{{ go_version | default(go_latest_version) }}.linux-amd64.tar.gz
mode: '0644'
tags: go
- name: "remove existing go installation"
ansible.builtin.file:
path: /usr/local/go
state: absent
tags: go
- name: "extract go {{ go_version | default(go_latest_version) }} to /usr/local"
ansible.builtin.unarchive:
src: /dev/shm/go{{ go_version | default(go_latest_version) }}.linux-amd64.tar.gz
dest: /usr/local
remote_src: true
tags: go