1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- ---
- - hosts: 10.0.0.2
- become: true
- gather_facts: false
- vars_files:
- - "{{ inventory_dir }}/vars/vault.yaml"
- vars:
- openvpn_service: "openvpn@nord"
- openvpn_remotes: "{{ vaulted_openvpn_remotes }}"
- openvpn_user: "{{ vaulted_openvpn_user }}"
- openvpn_pass: "{{ vaulted_openvpn_pass }}"
- tasks:
- - name: Select random NordVPN Endpoint
- ansible.builtin.set_fact:
- nord_endpoint: "{{ vaulted_openvpn_remotes | random }}"
- - name: Set config from chosen endpoint "{{ nord_endpoint.cn }}"
- ansible.builtin.set_fact:
- nord_remote: "{{ nord_endpoint.remote }}"
- nord_cn: "{{ nord_endpoint.cn }}"
- - name: Update config file settings
- ansible.builtin.lineinfile:
- path: /etc/openvpn/nord.conf
- regexp: "{{ item.regexp }}"
- line: "{{ item.line }}"
- loop:
- - { "label": "remote", "regexp": "^remote ", "line": "remote {{ nord_remote }} 443" }
- - { "label": "cn", "regexp": "^verify-x509-name", "line": "verify-x509-name CN={{ nord_cn }}" }
- loop_control:
- label: "{{ item.label }}"
- - name: Update motd script with new endpoint
- ansible.builtin.lineinfile:
- path: /usr/local/bin/vpn-endpoint
- regexp: "^endpoint="
- line: "endpoint={{ nord_cn }}"
- - name: Bounce {{ openvpn_service }} service
- ansible.builtin.systemd_service:
- name: "{{ openvpn_service }}"
- state: restarted
- - name: Bounce unbound service
- ansible.builtin.systemd_service:
- name: unbound
- state: restarted
|