main.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. ---
  2. - name: Ensure snell config directory exists
  3. ansible.builtin.file:
  4. path: /etc/snell
  5. state: directory
  6. owner: root
  7. group: root
  8. mode: "0755"
  9. - name: Download snell-server binary
  10. ansible.builtin.get_url:
  11. url: "{{ snell_download_url }}"
  12. dest: /tmp/snell-server.zip
  13. mode: "0644"
  14. register: snell_download
  15. - name: Unarchive snell-server binary
  16. ansible.builtin.unarchive:
  17. src: /tmp/snell-server.zip
  18. dest: /usr/local/bin/
  19. remote_src: yes
  20. creates: /usr/local/bin/snell-server
  21. when: snell_download is changed
  22. - name: Ensure snell-server is executable
  23. ansible.builtin.file:
  24. path: /usr/local/bin/snell-server
  25. mode: "0755"
  26. state: file
  27. - name: Deploy snell-server configuration
  28. ansible.builtin.template:
  29. src: snell-server.conf.j2
  30. dest: /etc/snell/snell-server.conf
  31. owner: root
  32. group: root
  33. mode: "0600"
  34. notify: restart snell
  35. - name: Deploy snell systemd service
  36. ansible.builtin.template:
  37. src: snell.service.j2
  38. dest: /etc/systemd/system/snell.service
  39. owner: root
  40. group: root
  41. mode: "0644"
  42. notify: restart snell
  43. - name: Reload systemd daemon
  44. ansible.builtin.systemd:
  45. daemon_reload: yes
  46. - name: Enable and start snell service
  47. ansible.builtin.systemd:
  48. name: snell
  49. enabled: yes
  50. state: started
  51. - name: Allow snell port through UFW
  52. community.general.ufw:
  53. rule: allow
  54. port: "{{ snell_port }}"
  55. proto: tcp