96 lines
2.6 KiB
YAML
96 lines
2.6 KiB
YAML
- 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
|
|
roles:
|
|
- common
|
|
tasks:
|
|
- 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
|
|
|
|
- name: Systemd provisioning
|
|
ansible.builtin.import_tasks: 'tasks/systemd.yml'
|
|
tags: systemd
|
|
|
|
- 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
|
|
|
|
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'
|