all.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. ---
  2. # ============================================================
  3. # Global Variables — AI Platform Ansible Automation
  4. # ============================================================
  5. # Domain and networking
  6. domain: example.com
  7. ai_server_ip: 192.168.1.100
  8. nginx_proxy_ip: 192.168.1.30
  9. coredns_host_ip: 192.168.1.29
  10. # SSH user for all managed hosts (override per-host in host_vars if needed)
  11. ansible_user: admin
  12. # Platform identity — used for Keycloak realm, Vault paths, UI display names
  13. platform_name: "AI Platform"
  14. vault_project_slug: "ai-platform"
  15. # Service URLs
  16. vault_url: "https://vault.{{ domain }}"
  17. keycloak_url: "https://idm.{{ domain }}"
  18. openwebui_url: "https://ollama-ui.{{ domain }}"
  19. ollama_api_url: "https://ollama-api.{{ domain }}"
  20. # Storage paths on ai_server
  21. ai_data_root: /mnt/ai_data
  22. ollama_models_path: "{{ ai_data_root }}/ollama_models"
  23. keycloak_data_path: "{{ ai_data_root }}/keycloak"
  24. qdrant_data_path: "{{ ai_data_root }}/qdrant"
  25. openwebui_data_path: "{{ ai_data_root }}/open-webui"
  26. openclaw_data_path: "{{ ai_data_root }}/openclaw"
  27. benchmark_results_path: "{{ ai_data_root }}/benchmarks"
  28. # Storage paths on coredns_host
  29. vault_config_path: /docker_mounts/vault/config
  30. vault_data_path: /docker_mounts/vault/data
  31. vault_scripts_path: /docker_mounts/vault
  32. coredns_zone_file: "/docker_mounts/coredns/{{ domain }}.db"
  33. # Local control-node paths (gitignored)
  34. vault_token_file: "{{ playbook_dir }}/../vault/.vault-token"
  35. vault_init_file: "{{ playbook_dir }}/../vault/.vault-init.json"
  36. # Vault configuration
  37. vault_port: 8202
  38. vault_api_addr: "https://vault.{{ domain }}"
  39. vault_secret_prefix: "secret/data/{{ vault_project_slug }}"
  40. vault_secret_meta_prefix: "secret/metadata/{{ vault_project_slug }}"
  41. vault_approle_name: "ai-services"
  42. # Service ports
  43. keycloak_port: 8180
  44. ollama_port: 11434
  45. qdrant_http_port: 6333
  46. qdrant_grpc_port: 6334
  47. # Ollama configuration
  48. ollama_host: "0.0.0.0:11434"
  49. ollama_num_threads: 28
  50. ollama_num_parallel: 4
  51. ollama_max_loaded_models: 4
  52. ollama_keep_alive: "-1"
  53. ollama_flash_attention: "1"
  54. # NUMA/CPU affinity - Dell M630, 2x E5-2690v4
  55. # NUMA node 1 (odd CPUs) has ~120 GB free RAM vs node 0's ~75 GB
  56. ollama_numa_node: "1"
  57. ollama_cpu_affinity: "1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55"
  58. # Keycloak configuration
  59. keycloak_realm: "{{ vault_project_slug }}"
  60. keycloak_realm_display: "{{ platform_name }}"
  61. keycloak_client_id: open-webui
  62. keycloak_redirect_uri: "https://ollama-ui.{{ domain }}/*"
  63. keycloak_oidc_url: "https://idm.{{ domain }}/realms/{{ keycloak_realm }}"
  64. keycloak_realm_admin_user: "{{ vault_project_slug }}-admin"
  65. # Benchmark thresholds
  66. benchmark_thresholds:
  67. min_tokens_per_sec: 5.0
  68. min_quality_score: 0.6
  69. min_composite_score: 0.55
  70. # Candidate models to recommend/pull if benchmark scores are below threshold
  71. candidate_models:
  72. - name: "qwen2.5-coder:32b-instruct-q4_K_M"
  73. size_gb: 20
  74. expected_tokens_sec: 4.5
  75. reason: "Larger qwen2.5-coder for higher quality"
  76. category: coding
  77. - name: "deepseek-coder-v2:latest"
  78. size_gb: 9
  79. expected_tokens_sec: 8.0
  80. reason: "DeepSeek Coder V2 full model"
  81. category: coding
  82. - name: "codegemma:7b-instruct-q5_K_M"
  83. size_gb: 5.5
  84. expected_tokens_sec: 12.0
  85. reason: "Fast Google coding model"
  86. category: coding
  87. - name: "starcoder2:15b-instruct-q4_K_M"
  88. size_gb: 9.5
  89. expected_tokens_sec: 7.0
  90. reason: "StarCoder2 coding specialist"
  91. category: coding
  92. # OpenClaw default model
  93. openclaw_model: "llama3.2:3b"
  94. # NGINX SSL certificate paths (on nginx_proxy)
  95. nginx_ssl_cert: "/etc/nginx/ssl/{{ domain }}.crt"
  96. nginx_ssl_key: "/etc/nginx/ssl/{{ domain }}.key"