Files
infra/ansible/site.yml
2026-08-31 10:02:32 +02:00

123 lines
2.9 KiB
YAML

---
- name: Configure common user environment
hosts: all
become: true
pre_tasks:
- name: Load local vault variables when available
tags: [always]
ansible.builtin.include_vars:
file: "{{ playbook_dir }}/../secrets/vault.yml"
when: >-
lookup('ansible.builtin.fileglob', playbook_dir + '/../secrets/vault.yml',
errors='ignore', wantlist=True) | length > 0
- name: Load machine-local vault variables when available
tags: [always]
ansible.builtin.include_vars:
file: "{{ playbook_dir }}/../secrets/vault.local.yml"
when: >-
lookup('ansible.builtin.fileglob', playbook_dir + '/../secrets/vault.local.yml',
errors='ignore', wantlist=True) | length > 0
- name: Reject conflicting AI coding-agent lifecycle flags
tags: [always, ai_agents]
ansible.builtin.assert:
that:
- not (item.value.install_enabled | bool and item.value.uninstall_enabled | bool)
fail_msg: >-
{{ item.key }} has both install_enabled and uninstall_enabled set to true.
Choose either installation or removal before running the playbook.
loop: "{{ ai_agents | dict2items }}"
loop_control:
label: "{{ item.key }}"
roles:
- role: dotfiles_common
when: "'platform_rocky' not in group_names"
- name: Configure Void platform
hosts: platform_void
become: true
roles:
- packages_void
- services_runit
- name: Configure Void graphical desktop
hosts: platform_void:&graphical_desktop
become: true
roles:
- profile_desktop_common
- profile_desktop_sway
- profile_desktop_niri
- profile_desktop_host
- name: Configure FreeBSD platform
hosts: platform_freebsd
become: true
roles:
- packages_freebsd
- services_freebsd
- name: Configure Fedora platform
hosts: platform_fedora
become: true
roles:
- packages_fedora
- services_systemd
- name: Configure Rocky Linux platform
hosts: platform_rocky
become: true
roles:
- packages_rocky
- services_systemd
- name: Configure Atlas NAS profile
hosts: atlas
become: true
roles:
- profile_atlas
- name: Configure personal workstation role on Fedora
hosts: platform_fedora:&role_personal_workstation
become: true
roles:
- profile_personal_workstation
- name: Configure Fedora GNOME desktop
hosts: platform_fedora:&desktop_gnome
become: true
roles:
- profile_desktop_gnome
- name: Configure Fedora workstation development layer
hosts: workstation_dev_fedora
become: true
roles:
- profile_workstation_dev_common
- name: Configure Fedora WSL workstation development layer
hosts: workstation_dev_wsl
become: true
roles:
- profile_workstation_dev_wsl
- name: Configure Ubuntu server
hosts: ubuntu_server
become: true
roles:
- packages_ubuntu
- services_systemd
- profile_server