site.yml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. ---
  2. # playbooks/site.yml
  3. # Master playbook - imports all playbooks in sequence
  4. - name: "Site | Import pre-flight checks"
  5. ansible.builtin.import_playbook: 00_preflight.yml
  6. tags:
  7. - preflight
  8. - name: "Site | Import Vault deployment"
  9. ansible.builtin.import_playbook: 01_vault.yml
  10. tags:
  11. - vault
  12. - name: "Site | Import infrastructure setup"
  13. ansible.builtin.import_playbook: 02_infrastructure.yml
  14. tags:
  15. - infrastructure
  16. - name: "Site | Import model benchmarking"
  17. ansible.builtin.import_playbook: 03_benchmark.yml
  18. tags:
  19. - benchmark
  20. - name: "Site | Import model configuration"
  21. ansible.builtin.import_playbook: 04_models.yml
  22. tags:
  23. - models
  24. - name: "Site | Import Keycloak deployment"
  25. ansible.builtin.import_playbook: 05_keycloak.yml
  26. tags:
  27. - keycloak
  28. - name: "Site | Import Qdrant deployment"
  29. ansible.builtin.import_playbook: 06_qdrant.yml
  30. tags:
  31. - qdrant
  32. - name: "Site | Import Open WebUI deployment"
  33. ansible.builtin.import_playbook: 07_openwebui.yml
  34. tags:
  35. - openwebui
  36. - name: "Site | Import OpenClaw deployment"
  37. ansible.builtin.import_playbook: 08_openclaw.yml
  38. tags:
  39. - openclaw
  40. - name: "Site | Import Nginx configuration"
  41. ansible.builtin.import_playbook: 09_nginx.yml
  42. tags:
  43. - nginx
  44. - name: "Site | Import CoreDNS configuration"
  45. ansible.builtin.import_playbook: 10_coredns.yml
  46. tags:
  47. - coredns
  48. - name: "Site | Import Vault OIDC configuration"
  49. ansible.builtin.import_playbook: 11_vault_oidc.yml
  50. tags:
  51. - vault-oidc
  52. # ── Final credentials summary ───────────────────────────────────────
  53. - name: "Site | Display deployment summary"
  54. hosts: localhost
  55. connection: local
  56. gather_facts: false
  57. tags:
  58. - summary
  59. vars:
  60. vault_token_file: "{{ playbook_dir }}/../vault/.vault-token"
  61. vault_url: "http://{{ ai_server_ip }}:{{ vault_port }}"
  62. tasks:
  63. - name: "Summary | Retrieve Keycloak admin password"
  64. ansible.builtin.set_fact:
  65. kc_admin_pass: "{{ lookup('community.hashi_vault.hashi_vault', vault_secret_prefix ~ '/keycloak:admin_password token=' ~ lookup('ansible.builtin.file', vault_token_file) ~ ' url=' ~ vault_url) }}"
  66. - name: "Summary | Retrieve Keycloak realm admin password"
  67. ansible.builtin.set_fact:
  68. kc_realm_admin_pass: "{{ lookup('community.hashi_vault.hashi_vault', vault_secret_prefix ~ '/keycloak:realm_admin_password token=' ~ lookup('ansible.builtin.file', vault_token_file) ~ ' url=' ~ vault_url) }}"
  69. - name: "Summary | Retrieve Vault root token"
  70. ansible.builtin.set_fact:
  71. vault_root_token: "{{ lookup('ansible.builtin.file', playbook_dir ~ '/../vault/.vault-init.json') | from_json | json_query('root_token') }}"
  72. - name: "Summary | Display credentials and access information"
  73. ansible.builtin.debug:
  74. msg: |
  75. ╔══════════════════════════════════════════════════════════════════╗
  76. ║ {{ platform_name }} PLATFORM - DEPLOYMENT COMPLETE
  77. ╠══════════════════════════════════════════════════════════════════╣
  78. ║ ║
  79. ║ SERVICES: ║
  80. ║ ───────── ║
  81. ║ Open WebUI: {{ openwebui_url }}
  82. ║ Keycloak: {{ keycloak_url }}
  83. ║ Vault: {{ vault_api_addr }}
  84. ║ Ollama API: {{ ollama_api_url }}
  85. ║ Qdrant: http://{{ ai_server_ip }}:{{ qdrant_http_port }} (internal only)
  86. ║ ║
  87. ║ CREDENTIALS: ║
  88. ║ ──────────── ║
  89. ║ Vault Root Token: {{ vault_root_token }}
  90. ║ Vault Token File: vault/.vault-token ║
  91. ║ Keycloak Admin: admin / {{ kc_admin_pass }}
  92. ║ Realm Admin: {{ keycloak_realm_admin_user }} / {{ kc_realm_admin_pass }}
  93. ║ ║
  94. ║ FILES: ║
  95. ║ ────── ║
  96. ║ Vault Init: vault/.vault-init.json ║
  97. ║ Ansible Token: vault/.vault-token ║
  98. ║ Benchmarks: benchmarks/results/model_selection.json ║
  99. ║ ║
  100. ║ NOTES: ║
  101. ║ ────── ║
  102. ║ - All secrets are stored in Vault at {{ vault_secret_prefix }}/*
  103. ║ - Run individual playbooks with --tags for partial deploys ║
  104. ║ - Vault must be unsealed after each restart ║
  105. ║ ║
  106. ╚══════════════════════════════════════════════════════════════════╝