--- # Install VPN client(s). - name: Workstation | Software | VPN | Mullvad block: # https://mullvad.net/en/help/install-mullvad-app-linux - name: Workstation | Software | VPN | Mullvad | Add Repo [apt] shell: "{{ item }}" loop: - sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc - echo "deb [signed-by=/usr/share/keyrings/mullvad-keyring.asc arch=$( dpkg --print-architecture )] https://repository.mullvad.net/deb/stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mullvad.list - apt update when: ansible_pkg_mgr == "apt" - name: Workstation | Software | VPN | Mullvad | Add Repo [dnf] shell: "{{ item }}" loop: - sudo dnf config-manager --add-repo https://repository.mullvad.net/rpm/stable/mullvad.repo when: ansible_pkg_mgr == "dnf" - name: Workstation | Software | VPN | Install package: name: - mullvad-vpn state: present - name: Workstation | Software | VPN | Install (Artix, runit) package: name: - mullvad-vpn-runit state: present when: ansible_pkg_mgr == "pacman" and ansible_service_mgr == "runit" when: ansible_distribution in ("Debian", "Ubuntu", "Arch", "Artix") - name: Workstation | Software | VPN | Mullvad | Devuan (runit) block: - name: Workstation | Software | VPN | Mullvad | Devuan | Facts 01 set_fact: devuan_mullvad_dir: ~/Downloads/mullvad-installer mullvad_deb_url: https://mullvad.net/en/download/app/deb/latest mullvad_repack_url: https://github.com/sys-fs/mullvad-repack - name: Workstation | Software | VPN | Mullvad | Devuan | Facts 02 set_fact: mullvad_repack_dir: "{{ devuan_mullvad_dir }}/mullvad_repack" - name: Workstation | Software | VPN | Mullvad | Devuan | Check stat: path: "/opt/Mullvad VPN" register: mullvad_installed - name: Workstation | Software | VPN | Mullvad | Devuan | Install shell: "{{ item }}" loop: - "mkdir -pv {{ devuan_mullvad_dir }}" - "cd {{ devuan_mullvad_dir }} && curl -L -o Mullvad.deb {{ mullvad_deb_url }}" - "cd {{ devuan_mullvad_dir }} && git clone {{ mullbvad_repack_url }}" - "cd {{ mullvad_repack_dir }} && ./repack.sh ../Mullvad.deb" - "cd {{ devuan_mullvad_dir }} && apt install -y ./Mullvad_repack.deb" - "mv {{ devuan_mullvad_dir }} ~/TRASH/mullvad-completed-`date +'%Y%m%d-%H%M'`" when: not mullvad_installed.stat.exists when: ansible_pkg_mgr == "apt" and ansible_service_mgr != "systemd" - name: Workstation | Software | VPN | Mullvad | Symlink GUI ansible.builtin.file: src: "/opt/Mullvad VPN/mullvad-vpn" dest: "{{ global_bin }}/mullvad-vpn" state: link force: true - name: Workstation | Software | VPN | Mullvad | Enable (runit) ansible.builtin.file: src: "/{{ runit_script_dir }}/mullvad-daemon" dest: "/{{ runit_service_dir }}/mullvad" state: link force: true when: ansible_service_mgr == "runit"