--- # Arch Linux workstation setup — combines cli_modern + workstation roles. # # Usage: # ansible-playbook workstation.yml -i inventory.yml # ansible-playbook workstation.yml -i inventory.yml --tags cli # CLI tools only # ansible-playbook workstation.yml -i inventory.yml --tags workstation # System + apps only # ansible-playbook workstation.yml -i inventory.yml --tags dev_apps # Dev apps only # ansible-playbook workstation.yml -i inventory.yml --tags claude_code - name: Arch Linux workstation — full setup hosts: all gather_facts: true roles: # Phase 1: User bootstrap (only for fresh machines) # Uncomment and set vars if provisioning a new machine # - role: user_bootstrap # tags: [bootstrap] # vars: # bootstrap_user: herby # bootstrap_ssh_pubkey: "{{ lookup('file', '~/.ssh/id_ed25519.pub') }}" # Phase 2: CLI environment (Fish, Starship, modern coreutils) - role: cli_modern tags: [cli] # Phase 3: Workstation base (yay, UV, Hyprland, fonts, productivity, NVIDIA) - role: workstation become: true tags: [workstation] # Phase 4: Docker - role: geerlingguy.docker become: true tags: [docker, workstation] # Phase 5: Development apps (PyCharm, databases) - role: dev_apps become: true tags: [dev_apps, workstation] # Phase 6: Claude Code CLI - role: claude_code tags: [claude_code, dev_tools]