60 lines
2.3 KiB
YAML
60 lines
2.3 KiB
YAML
---
|
|
# 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]
|
|
- name: Display all post-install reminders
|
|
debug:
|
|
msg: |
|
|
════════════════════════════════════════════════════
|
|
MANUAL SETUP STILL REQUIRED ({{ post_install_reminders | default([]) | length }} items)
|
|
════════════════════════════════════════════════════
|
|
{% for r in post_install_reminders | default([]) %}
|
|
|
|
{{ loop.index }}. {{ r.title }}
|
|
{% for step in r.steps %}
|
|
• {{ step }}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
════════════════════════════════════════════════════
|
|
when: post_install_reminders is defined |