- server.py: Flask-free Python web server on port 80 - 4-step wizard: network → tier → tools → live install log - DHCP or static IP support - SSE log streaming, handles phase-1 reboot gracefully - user-data: deploy web UI service instead of TUI (whiptail) - sets hostname to cezenai (accessible as cezenai.local) - installs python3, avahi-daemon - entry.yml: skip roles based on skip_roles var from web UI - install.sh: reads /opt/cezen/install.conf for tier & skip_roles
36 lines
1.1 KiB
YAML
36 lines
1.1 KiB
YAML
---
|
|
# Phase 2: Full Cezen AI Suite — Entry Tier
|
|
# Runs after NVIDIA driver reboot
|
|
- name: Cezen AI — Entry Tier Stack
|
|
hosts: localhost
|
|
connection: local
|
|
become: true
|
|
vars:
|
|
cezen_user: "cezen"
|
|
cezen_home: "/opt/cezen"
|
|
python_version: "3.11"
|
|
cuda_version: "12.4"
|
|
skip_roles: "" # comma-separated list of role names to skip (set by install.sh)
|
|
|
|
roles:
|
|
- role: base
|
|
when: "'base' not in skip_roles.split(',')"
|
|
- role: docker
|
|
when: "'docker' not in skip_roles.split(',')"
|
|
- role: k3s
|
|
when: "'k3s' not in skip_roles.split(',')"
|
|
- role: ollama
|
|
when: "'ollama' not in skip_roles.split(',')"
|
|
- role: vllm
|
|
when: "'vllm' not in skip_roles.split(',')"
|
|
- role: jupyterlab
|
|
when: "'jupyterlab' not in skip_roles.split(',')"
|
|
- role: chromadb
|
|
when: "'chromadb' not in skip_roles.split(',')"
|
|
- role: mlflow
|
|
when: "'mlflow' not in skip_roles.split(',')"
|
|
- role: minio
|
|
when: "'minio' not in skip_roles.split(',')"
|
|
- role: monitoring
|
|
when: "'monitoring' not in skip_roles.split(',')"
|