Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. # Ansible playbook to install latest Golang using godeb on Debian system
  2. # ansible-playbook latest-golang.yml -K
  3. ---
  4.  
  5. - hosts: all
  6. vars:
  7. remote_user: alkemic
  8. user: "{{ remote_user }}"
  9. tasks:
  10. - name: Setup GOPATH in ~/.profile
  11. lineinfile: >
  12. dest=/home/{{ remote_user }}/.profile
  13. create=yes
  14. line="{{ item }}"
  15. with_items:
  16. - 'export GOPATH=/home/{{ remote_user }}/projects/go'
  17. - 'export PATH=$PATH:$GOPATH/bin'
  18.  
  19. - name: Check if golang is installed
  20. command: which go
  21. register: go_check
  22. ignore_errors: True
  23.  
  24. - name: Check if godeb is installed
  25. command: which godeb
  26. register: godeb_check
  27. ignore_errors: True
  28.  
  29. - name: Install golang if missing
  30. become: yes
  31. apt:
  32. name: golang
  33. when: go_check.rc == 1
  34.  
  35. - name: Install git
  36. become: yes
  37. apt:
  38. name: git
  39.  
  40. - name: Install godeb if missing
  41. become: no
  42. shell: . /home/{{ remote_user }}/.profile && go get gopkg.in/niemeyer/godeb.v1/cmd/godeb
  43. when: godeb_check.rc == 1
  44.  
  45. - shell: go version | sed -n -e 's/^go version go\\(.*\\) linux\\/.*$/\\1/p'
  46. register: go_version
  47.  
  48. - shell: . /home/{{ remote_user }}/.profile && godeb list | head -1
  49. register: go_latest_version
  50.  
  51. - debug: msg="{{ go_latest_version.stdout }} - {{ go_version.stdout}}"
  52.  
  53. - name: Update Go
  54. become: no
  55. shell: . /home/{{ remote_user }}/.profile && godeb install
  56. when: go_latest_version.stdout != go_version.stdout
  57.  
  58. - name: Install golang if missing
  59. become: yes
  60. apt:
  61. name: golang
  62. state: absent
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement