Group/host variable refactor

This commit is contained in:
Sonny Bakker 2025-03-15 00:05:30 +01:00
parent eb308670cc
commit 4b8aaf3e95
78 changed files with 445 additions and 374 deletions

View file

@ -1,61 +1,21 @@
- name: Arch Linux provisioning
hosts: localhost
pre_tasks:
- name: Install shared packages
become: true
community.general.pacman:
name: '{{ packages }}'
- name: Platform vars
tags: platform_vars
block:
- name: Detect platform
ansible.builtin.command: laptop-detect
register: is_laptop
failed_when: is_laptop.rc == 2
- name: Set platform (desktop)
ansible.builtin.set_fact:
platform: desktop
when: is_laptop.rc == 1
- name: Set platform (laptop)
ansible.builtin.set_fact:
platform: laptop
when: is_laptop.rc == 0
- name: Load desktop specific vars
ansible.builtin.include_vars:
dir: vars/desktop
when: platform == 'desktop'
- name: Load laptop specific vars
ansible.builtin.include_vars:
dir: vars/laptop
when: platform == 'laptop'
- name: Install platform specific packages
become: true
community.general.pacman:
name: '{{ platform_packages }}'
when: platform_packages | length > 0
hosts:
- xps
- desktop
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
- name: Desktop provisioning
ansible.builtin.import_tasks: 'tasks/setup-desktop.yml'
when: platform == 'desktop'
tags: laptop
- name: Laptop provisioning
ansible.builtin.import_tasks: 'tasks/setup-laptop.yml'
when: platform == 'laptop'
tags: laptop
- name: Network provisioning
ansible.builtin.import_tasks: 'tasks/network.yml'
tags: network
@ -64,33 +24,46 @@
ansible.builtin.import_tasks: 'tasks/systemd.yml'
tags: systemd
# TODO: move to development playbook
- name: Git provisioning
ansible.builtin.import_tasks: 'tasks/git.yml'
tags: git
- name: MPV provisioning
ansible.builtin.import_tasks: 'tasks/mpv.yml'
tags: mpv
- name: MPD provisioning
ansible.builtin.import_tasks: 'tasks/mpd.yml'
tags: mpd
- name: Syncthing provisioning
ansible.builtin.import_tasks: 'tasks/syncthing.yml'
tags: syncthing
- name: Systemd timer provisioning
ansible.builtin.import_tasks: 'tasks/timer.yml'
tags: timers
- name: Personal provisiong
when: "'personal' in group_names"
block:
- name: Wireguard provisioning
ansible.builtin.import_tasks: 'tasks/personal/wireguard.yml'
tags: wireguard
- name: MPV provisioning
ansible.builtin.import_tasks: 'tasks/personal/mpv.yml'
tags: mpv
- name: MPD provisioning
ansible.builtin.import_tasks: 'tasks/personal/mpd.yml'
tags: mpd
- name: Syncthing provisioning
ansible.builtin.import_tasks: 'tasks/personal/syncthing.yml'
tags: syncthing
- 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'
vars_files:
- 'vars/main.yml'
- 'vars/gpg.yml'
- 'vars/mpd.yml'