66 lines
1.6 KiB
YAML
66 lines
1.6 KiB
YAML
|
---
|
||
|
- name: gather architecture specific variables
|
||
|
include_vars: "{{ lookup('first_found', possible_files) }}"
|
||
|
vars:
|
||
|
possible_files:
|
||
|
files:
|
||
|
- "{{ ansible_userspace_architecture }}.yaml"
|
||
|
- "default.yaml"
|
||
|
paths:
|
||
|
- vars
|
||
|
|
||
|
- name: determine if go exists
|
||
|
stat:
|
||
|
path: /usr/local/go/bin/go
|
||
|
register: st
|
||
|
|
||
|
- name: determine go version
|
||
|
command: /usr/local/go/bin/go version
|
||
|
register: gv
|
||
|
changed_when: false
|
||
|
when: st.stat.exists is defined and st.stat.exists
|
||
|
|
||
|
- name: gather os specific variables
|
||
|
include_vars: "{{ lookup('first_found', possible_files) }}"
|
||
|
vars:
|
||
|
possible_files:
|
||
|
files:
|
||
|
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
|
||
|
- "{{ ansible_distribution }}.yaml"
|
||
|
- "{{ ansible_os_family }}.yaml"
|
||
|
- "default.yaml"
|
||
|
paths:
|
||
|
- vars
|
||
|
|
||
|
- name: download go
|
||
|
get_url:
|
||
|
url: "{{ go_url }}"
|
||
|
checksum: "{{ go_checksum }}"
|
||
|
dest: "/usr/local/src/go{{ go_version }}.{{ ansible_system | lower }}-{{ go_arch }}.tar.gz"
|
||
|
owner: root
|
||
|
group: root
|
||
|
mode: 0644
|
||
|
|
||
|
- name: remove old version of go
|
||
|
file:
|
||
|
path: /usr/local/go
|
||
|
state: absent
|
||
|
when: st.stat.exists and gv.stdout != go_version_str
|
||
|
|
||
|
- name: unpack go
|
||
|
unarchive:
|
||
|
src: "/usr/local/src/go{{ go_version }}.{{ ansible_system | lower }}-{{ go_arch }}.tar.gz"
|
||
|
dest: /usr/local
|
||
|
remote_src: yes
|
||
|
when: st.stat.exists is defined and not st.stat.exists
|
||
|
|
||
|
- name: environment
|
||
|
copy:
|
||
|
dest: /etc/profile.d/go.sh
|
||
|
owner: root
|
||
|
group: root
|
||
|
mode: 0755
|
||
|
content: |
|
||
|
PATH=$HOME/go/bin:$PATH:/usr/local/go/bin
|
||
|
GOPATH=$HOME/go
|