--- - name: initial hosts: all gather_facts: false tasks: - name: "set facts" ansible.builtin.set_fact: ansible_host: "{{ host }}" ansible_port: "{{ port|default(22) }}" ansible_user: "root" ansible_ssh_private_key_file: "{{ private_key_file | default('.ssh_private_key') }}" changed_when: false throttle: 1 - name: bootstrap ansible.builtin.raw: which python3 || pkg_add python3 || apk add python3 || apt install python3 when: bootstrap|default(true) changed_when: false throttle: 1 - name: gather facts ansible.builtin.setup: throttle: 1 tags: - base - web - dns - xray - ocserv - sshvpn - hysteria - name: "openbsd : apply base role to all" hosts: all roles: - role: base tags: - base - name: "openbsd : setup ocserv" hosts: ocserv, all_vpns roles: - role: ocserv tags: - ocserv - name: "openbsd : setup xray vpn" hosts: vless, vmess, trojan, all_vpns roles: - role: xray tags: - xray - name: "openbsd : setup sshvpn" hosts: sshvpn, all_vpns roles: - role: sshvpn tags: - sshvpn - name: "openbsd : setup sshvpn" hosts: hysteria, all_vpns roles: - role: hysteria tags: - hysteria - name: "openbsd : setup dns resolver with adblock and web interface" hosts: all roles: - role: dns tags: - dns - name: "openbsd : setup web interface for vpn clients" hosts: all roles: - role: web tags: - web