main.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. ---
  2. - name: Create shadowsocks service user
  3. ansible.builtin.user:
  4. name: "{{ ss_user }}"
  5. system: yes
  6. shell: /usr/sbin/nologin
  7. create_home: no
  8. - name: Create shadowsocks config directory
  9. ansible.builtin.file:
  10. path: "{{ ss_config_path | dirname }}"
  11. state: directory
  12. owner: "{{ ss_user }}"
  13. group: "{{ ss_user }}"
  14. mode: "0750"
  15. - name: Download shadowsocks-rust binary
  16. ansible.builtin.get_url:
  17. url: "https://github.com/shadowsocks/shadowsocks-rust/releases/download/v{{ ss_version }}/shadowsocks-v{{ ss_version }}.x86_64-unknown-linux-gnu.tar.xz"
  18. dest: /tmp/shadowsocks.tar.xz
  19. mode: "0644"
  20. - name: Extract shadowsocks-rust binary
  21. ansible.builtin.unarchive:
  22. src: /tmp/shadowsocks.tar.xz
  23. dest: /tmp/
  24. remote_src: yes
  25. - name: Install ssserver binary
  26. ansible.builtin.copy:
  27. src: /tmp/ssserver
  28. dest: "{{ ss_bin_path }}"
  29. remote_src: yes
  30. owner: root
  31. group: root
  32. mode: "0755"
  33. notify: restart shadowsocks
  34. - name: Clean up downloaded archive
  35. ansible.builtin.file:
  36. path: "{{ item }}"
  37. state: absent
  38. loop:
  39. - /tmp/shadowsocks.tar.xz
  40. - /tmp/ssserver
  41. - /tmp/sslocal
  42. - /tmp/ssurl
  43. - /tmp/ssmanager
  44. - /tmp/ssservice
  45. - name: Deploy shadowsocks configuration
  46. ansible.builtin.template:
  47. src: ss-config.json.j2
  48. dest: "{{ ss_config_path }}"
  49. owner: "{{ ss_user }}"
  50. group: "{{ ss_user }}"
  51. mode: "0640"
  52. notify: restart shadowsocks
  53. - name: Deploy shadowsocks systemd unit
  54. ansible.builtin.template:
  55. src: shadowsocks.service.j2
  56. dest: /etc/systemd/system/shadowsocks.service
  57. owner: root
  58. group: root
  59. mode: "0644"
  60. notify: restart shadowsocks
  61. - name: Enable and start shadowsocks service
  62. ansible.builtin.systemd:
  63. name: shadowsocks
  64. daemon_reload: yes
  65. enabled: yes
  66. state: started