main.yml 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. ---
  2. - name: Install openvpn
  3. ansible.builtin.package:
  4. name:
  5. - openvpn
  6. - openresolv
  7. state: present
  8. - name: Install openresolv script
  9. ansible.builtin.get_url:
  10. url: https://raw.githubusercontent.com/ProtonVPN/scripts/master/update-resolv-conf.sh
  11. dest: /etc/openvpn/update-resolv-conf
  12. mode: '0755'
  13. - name: Select random NordVPN Endpoint
  14. ansible.builtin.set_fact:
  15. nord_endpoint: "{{ openvpn_remotes | random }}"
  16. - name: Set config from chosen endpoint {{ nord_endpoint.cn | basename }}
  17. ansible.builtin.set_fact:
  18. nord_remote: "{{ nord_endpoint.remote }}"
  19. nord_cn: "{{ nord_endpoint.cn }}"
  20. - name: Write VPN Endpoint motd script
  21. ansible.builtin.template:
  22. src: vpn-endpoint.j2
  23. dest: /usr/local/bin/vpn-endpoint
  24. owner: root
  25. group: root
  26. mode: '0755'
  27. - name: Write config files
  28. ansible.builtin.template:
  29. src: "{{ item }}.conf.j2"
  30. dest: /etc/openvpn/{{ item }}.conf
  31. owner: root
  32. group: root
  33. mode: '0640'
  34. loop:
  35. - login-nord
  36. - nord
  37. notify:
  38. - Restart openvpn
  39. - name: Start/enable openvpn service
  40. ansible.builtin.systemd_service:
  41. name: "{{ openvpn_service }}"
  42. state: started
  43. enabled: true