Files
infra/ansible/site.yml
Fabio Scotto di Santolo eab66b6d3d Add dormant Rocky server profile (#2)
* Add dormant Rocky server profile

* feat: activate Rocky server profile for prometheus

* fix: complete Rocky server migration tooling

* Remove FreeBSD profile

* feat: add Aegis Fedora CoreOS profile

* docs: define Git Flow branch prefixes

* Add Aegis TPM-backed btrfs storage

Co-authored-by: fscotto <17803710+fscotto@users.noreply.github.com>

* Preserve existing Aegis filesystem tables

Co-authored-by: fscotto <17803710+fscotto@users.noreply.github.com>

* Remove unsupported Aegis TPM storage

Co-authored-by: fscotto <17803710+fscotto@users.noreply.github.com>

* Configure Aegis pi Btrfs storage

Co-authored-by: fscotto <17803710+fscotto@users.noreply.github.com>

* Mount Aegis Btrfs as root

Co-authored-by: fscotto <17803710+fscotto@users.noreply.github.com>

* Handle Maven on Mise

* Feature/aegis coreos (#7)

* feat(aegis): add ARM image bootstrap workflow

* feat(aegis): manage firewall and SSH hardening

* feat(aegis): harden Fedora IoT services

* chore(aegis): remove local TLS configuration

* fix(aegis): restore supported Fedora IoT bootstrap

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: fscotto <17803710+fscotto@users.noreply.github.com>
2026-09-08 10:36:29 +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"
- "'platform_fedora_iot' 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 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 Aegis Fedora IoT profile
hosts: role_aegis
become: true
roles:
- profile_aegis
- name: Configure Atlas NAS profile
hosts: atlas
become: true
roles:
- profile_atlas
- name: Configure Rocky Linux server
hosts: rocky_server
become: true
roles:
- dotfiles_common
- profile_server
- 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