--- - name: Configure the server and install required software hosts: vpn-host gather_facts: false become: true vars_files: - config.cfg tasks: - block: - import_role: name: common tags: common - import_role: name: dns when: - algo_dns_adblocking or dns_encryption tags: dns - import_role: name: wireguard when: wireguard_enabled tags: wireguard - import_role: name: strongswan when: ipsec_enabled tags: ipsec - import_role: name: ssh_tunneling when: algo_ssh_tunneling tags: ssh_tunneling - block: - name: Dump the configuration copy: dest: "configs/{{ IP_subject_alt_name }}/.config.yml" content: | server: {{ 'localhost' if inventory_hostname == 'localhost' else inventory_hostname }} server_user: {{ ansible_ssh_user }} {% if algo_provider != "local" %} ansible_ssh_private_key_file: {{ ansible_ssh_private_key_file|default(SSH_keys.private) }} {% endif %} algo_provider: {{ algo_provider }} algo_server_name: {{ algo_server_name }} algo_ondemand_cellular: {{ algo_ondemand_cellular }} algo_ondemand_wifi: {{ algo_ondemand_wifi }} algo_ondemand_wifi_exclude: {{ algo_ondemand_wifi_exclude }} algo_dns_adblocking: {{ algo_dns_adblocking }} algo_ssh_tunneling: {{ algo_ssh_tunneling }} algo_windows: {{ algo_windows }} algo_store_cakey: {{ algo_store_cakey }} IP_subject_alt_name: {{ IP_subject_alt_name }} ipsec_enabled: {{ ipsec_enabled }} wireguard_enabled: {{ wireguard_enabled }} {% if tests|default(false)|bool %} ca_password: {{ CA_password }} p12_password: {{ p12_export_password }} {% endif %} become: false delegate_to: localhost - name: Create a symlink if deploying to localhost file: src: "{{ IP_subject_alt_name }}" dest: configs/localhost state: link force: true when: inventory_hostname == 'localhost' - debug: msg: - "{{ congrats.common.split('\n') }}" - " {{ congrats.p12_pass if algo_ssh_tunneling or ipsec_enabled else '' }}" - " {{ congrats.ca_key_pass if algo_store_cakey and ipsec_enabled else '' }}" - " {{ congrats.ssh_access if algo_provider != 'local' else ''}}" tags: always rescue: - include_tasks: playbooks/rescue.yml