aboutsummaryrefslogtreecommitdiff
path: root/attackbox/tasks/golang_install.yaml
diff options
context:
space:
mode:
authorheqnx <root@heqnx.com>2025-05-23 13:37:32 +0300
committerheqnx <root@heqnx.com>2025-05-23 13:37:32 +0300
commit356adb1e7924274a25c3b1ec48cc2a6d07f56cc4 (patch)
treecb23e4990a9a118319c8636f1ac6c8714cf5ee0f /attackbox/tasks/golang_install.yaml
parent72756cce5ea85f43c7fa80f1f128bbbe7f1a4309 (diff)
downloadansible-playbooks-356adb1e7924274a25c3b1ec48cc2a6d07f56cc4.tar.gz
ansible-playbooks-356adb1e7924274a25c3b1ec48cc2a6d07f56cc4.zip
added attackbox ansible setup
Diffstat (limited to 'attackbox/tasks/golang_install.yaml')
-rw-r--r--attackbox/tasks/golang_install.yaml39
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"
+