diff options
Diffstat (limited to 'attackbox/tasks/golang_install.yaml')
-rw-r--r-- | attackbox/tasks/golang_install.yaml | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/attackbox/tasks/golang_install.yaml b/attackbox/tasks/golang_install.yaml new file mode 100644 index 0000000..df9c266 --- /dev/null +++ b/attackbox/tasks/golang_install.yaml @@ -0,0 +1,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" + |