New roles: - workstation: Arch base (yay, UV, Hyprland, tiling tools, fonts, productivity apps, NVIDIA auto-detect, tmux + TPM) - dev_apps: optional dev tools (PyCharm, R/RStudio, databases) - claude_code: Claude Code CLI install/update via npm - user_bootstrap: fresh machine user setup (SSH key, sudo) CLI/shell/terminal setup excluded — handled by existing cli_modern role. workstation.yml runs cli_modern first, then workstation roles in phases. All roles tagged for selective deployment. Passes ansible-lint at production level.
25 lines
641 B
YAML
25 lines
641 B
YAML
---
|
|
- name: Converge
|
|
hosts: all
|
|
# become: true
|
|
|
|
pre_tasks:
|
|
- name: Update apt cache.
|
|
apt: update_cache=yes cache_valid_time=600
|
|
when: ansible_facts.os_family == 'Debian'
|
|
|
|
- name: Wait for systemd to complete initialization. # noqa 303
|
|
command: systemctl is-system-running
|
|
register: systemctl_status
|
|
until: >
|
|
'running' in systemctl_status.stdout or
|
|
'degraded' in systemctl_status.stdout
|
|
retries: 30
|
|
delay: 5
|
|
when: ansible_facts.service_mgr == 'systemd'
|
|
changed_when: false
|
|
failed_when: systemctl_status.rc > 1
|
|
|
|
roles:
|
|
- role: geerlingguy.docker
|