cli-standardization/playbooks/workstation.yml

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