aboutsummaryrefslogtreecommitdiff
path: root/attackbox/tasks/golang_install.yaml
blob: df9c26610efe06daa27bab5523cdeeb12174469f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
- name: check if golang is installed
  stat:
    path: /usr/local/go/bin/go
  register: golang_installed

- name: download and extract golang
  when: not golang_installed.stat.exists
  block:
    - name: get latest golang version
      shell: |
        curl -sSL https://golang.org/dl/ | awk -F '"' '/dl\/.*linux-amd64.*tar.gz/{print $(NF-1)}' | awk -F '/' '{print $3}' | head -1
      register: latest_golang
      changed_when: false

    - name: download golang
      get_url:
        url: "https://golang.org/dl/{{ latest_golang.stdout }}"
        dest: /tmp/golang.tar.gz

    - name: extract golang to /usr/local
      unarchive:
        src: /tmp/golang.tar.gz
        dest: /usr/local
        remote_src: yes

    - name: remove tarball
      file:
        path: /tmp/golang.tar.gz
        state: absent

    - name: add golang to PATH
      lineinfile:
        path: "{{ ansible_env.HOME }}/.bashrc"
        line: "{{ item }}"
        create: yes
      loop:
        - "GOPATH={{ ansible_env.HOME }}/go"
        - "PATH=$PATH:/usr/local/go/bin:{{ ansible_env.HOME }}/go:{{ ansible_env.HOME }}/go/bin"