feat: implement Ansible-based process architecture for RunPod
Major architecture overhaul to address RunPod Docker limitations: Core Infrastructure: - Add base_service.py: Abstract base class for all AI services - Add service_manager.py: Process lifecycle management - Add core/requirements.txt: Core dependencies Model Services (Standalone Python): - Add models/vllm/server.py: Qwen 2.5 7B text generation - Add models/flux/server.py: Flux.1 Schnell image generation - Add models/musicgen/server.py: MusicGen Medium music generation - Each service inherits from GPUService base class - OpenAI-compatible APIs - Standalone execution support Ansible Deployment: - Add playbook.yml: Comprehensive deployment automation - Add ansible.cfg: Ansible configuration - Add inventory.yml: Localhost inventory - Tags: base, python, dependencies, models, tailscale, validate, cleanup Scripts: - Add scripts/install.sh: Full installation wrapper - Add scripts/download-models.sh: Model download wrapper - Add scripts/start-all.sh: Start orchestrator - Add scripts/stop-all.sh: Stop all services Documentation: - Update ARCHITECTURE.md: Document distributed VPS+GPU architecture Benefits: - No Docker: Avoids RunPod CAP_SYS_ADMIN limitations - Fully reproducible via Ansible - Extensible: Add models in 3 steps - Direct Python execution (no container overhead) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
33
ansible.cfg
Normal file
33
ansible.cfg
Normal file
@@ -0,0 +1,33 @@
|
||||
[defaults]
|
||||
# Ansible configuration for RunPod deployment
|
||||
|
||||
# Inventory
|
||||
inventory = inventory.yml
|
||||
|
||||
# Disable host key checking (RunPod instances may change)
|
||||
host_key_checking = False
|
||||
|
||||
# Display settings
|
||||
stdout_callback = yaml
|
||||
bin_ansible_callbacks = True
|
||||
|
||||
# Performance
|
||||
forks = 5
|
||||
gathering = smart
|
||||
fact_caching = jsonfile
|
||||
fact_caching_connection = /tmp/ansible_facts
|
||||
fact_caching_timeout = 86400
|
||||
|
||||
# Logging
|
||||
log_path = /tmp/ansible-runpod.log
|
||||
|
||||
# Privilege escalation
|
||||
become_method = sudo
|
||||
become_ask_pass = False
|
||||
|
||||
# SSH settings
|
||||
timeout = 30
|
||||
transport = local
|
||||
|
||||
# Retry files
|
||||
retry_files_enabled = False
|
||||
Reference in New Issue
Block a user