---
- name: Run all roles
  hosts: serguzim_net
  vars:
    host_services: "{{ all_services | services_for_host(inventory_hostname) }}"
  tasks:
    - name: Install software
      ansible.builtin.include_role:
        name: software
        apply:
          tags: software
      tags: software

    - name: Run always role
      ansible.builtin.include_role:
        name: always
        apply:
          tags: always
      tags: always

    - name: Include service roles
      ansible.builtin.include_role:
        name: "{{ services_item }}"
        apply:
          tags: "{{ services_item }}"
      tags: always
      loop: "{{ host_services | services_names() }}"
      loop_control:
        loop_var: services_item

    - name: Reload caddy on caddy tag
      ansible.builtin.include_tasks:
        file: tasks/reload-caddy.yml
        apply:
          tags: caddy
      tags:
        - caddy
        - never

    - name: Stop unused services
      ansible.builtin.include_tasks:
        file: tasks/stop-unused.yml
        apply:
          tags:
            - cleanup
            - always
      tags:
        - cleanup
        - always