- name: Arch Linux provisioning hosts: personal gather_facts: true roles: - common tasks: - name: Verifying that a limit is set ansible.builtin.fail: msg: 'This playbook cannot be run with no limit' run_once: true when: ansible_limit is not defined - name: Generic provisioning ansible.builtin.import_tasks: 'tasks/setup.yml' tags: setup # TODO: provision ssh client config with modern cyphers - name: Network provisioning ansible.builtin.import_tasks: 'tasks/network.yml' tags: network - name: Systemd provisioning ansible.builtin.import_tasks: 'tasks/systemd.yml' tags: systemd - name: Systemd timer provisioning ansible.builtin.import_tasks: 'tasks/timer.yml' tags: timers - name: Personal provisiong when: "'personal' in group_names" block: # Note: set `network.dns.native_https_query` in about:config to prevent # DoH requests by default. See https://github.com/arkenfox/user.js/issues/1881 - name: Wireguard provisioning ansible.builtin.import_tasks: 'tasks/personal/all/wireguard.yml' tags: wireguard - name: MPV provisioning ansible.builtin.import_tasks: 'tasks/personal/all/mpv.yml' tags: mpv - name: MPD provisioning ansible.builtin.import_tasks: 'tasks/personal/all/mpd.yml' tags: mpd - name: Syncthing provisioning ansible.builtin.import_tasks: 'tasks/personal/all/syncthing.yml' tags: syncthing # TODO: provision current macvlan setup - name: Desktop provisioning ansible.builtin.import_tasks: 'tasks/personal/desktop.yml' when: ansible_hostname == 'desktop' tags: desktop - name: XPS provisioning ansible.builtin.import_tasks: 'tasks/personal/xps.yml' when: ansible_hostname == 'xps' tags: xps handlers: - name: Import default handlers ansible.builtin.import_tasks: 'handlers.yml' - name: Import common role handlers ansible.builtin.import_tasks: 'roles/common/handlers/user.yml'