restart-vpn.yml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ---
  2. - hosts: 10.0.0.2
  3. become: true
  4. gather_facts: false
  5. vars_files:
  6. - "{{ inventory_dir }}/vars/vault.yaml"
  7. vars:
  8. openvpn_service: "openvpn@nord"
  9. openvpn_remotes: "{{ vaulted_openvpn_remotes }}"
  10. openvpn_user: "{{ vaulted_openvpn_user }}"
  11. openvpn_pass: "{{ vaulted_openvpn_pass }}"
  12. tasks:
  13. - name: Query Nord Endpoint Info (Pre-Change)
  14. ansible.builtin.shell:
  15. cmd: "nordvpn status | grep Hostname | awk '{print $2}'"
  16. changed_when: false
  17. register: nord_status_pre
  18. - name: Change Nord Endpoint
  19. ansible.builtin.shell:
  20. cmd: nordvpn connect
  21. - name: Query Nord Endpoint Info (Post-Change)
  22. ansible.builtin.shell:
  23. cmd: "nordvpn status | grep Hostname | awk '{print $2}'"
  24. changed_when: false
  25. register: nord_status_post
  26. - name: "Display VPN Endpoint Change"
  27. debug:
  28. msg: "{{ nord_status_pre.stdout }} -> {{ nord_status_post.stdout }}"
  29. # - name: Select random NordVPN Endpoint
  30. # ansible.builtin.set_fact:
  31. # nord_endpoint: "{{ vaulted_openvpn_remotes | random }}"
  32. # - name: Set config from chosen endpoint "{{ nord_endpoint.cn }}"
  33. # ansible.builtin.set_fact:
  34. # nord_remote: "{{ nord_endpoint.remote }}"
  35. # nord_cn: "{{ nord_endpoint.cn }}"
  36. # - name: Update config file settings
  37. # ansible.builtin.lineinfile:
  38. # path: /etc/openvpn/nord.conf
  39. # regexp: "{{ item.regexp }}"
  40. # line: "{{ item.line }}"
  41. # loop:
  42. # - { "label": "remote", "regexp": "^remote ", "line": "remote {{ nord_remote }} 443" }
  43. # - { "label": "cn", "regexp": "^verify-x509-name", "line": "verify-x509-name CN={{ nord_cn }}" }
  44. # loop_control:
  45. # label: "{{ item.label }}"
  46. # - name: Update motd script with new endpoint
  47. # ansible.builtin.lineinfile:
  48. # path: /usr/local/bin/vpn-endpoint
  49. # regexp: "^endpoint="
  50. # line: "endpoint={{ nord_cn }}"
  51. # - name: Bounce {{ openvpn_service }} service
  52. # ansible.builtin.systemd_service:
  53. # name: "{{ openvpn_service }}"
  54. # state: restarted
  55. # - name: Bounce unbound service
  56. # ansible.builtin.systemd_service:
  57. # name: unbound
  58. # state: restarted