ajoute le proxy console Go et le relais WebSocket vers nova-serialproxy

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Adam Belkacemi 2026-10-08 09:35:16 +02:00
parent 30e14b1c54
commit 8742bde807
30 changed files with 1103 additions and 6 deletions

View file

@ -81,6 +81,36 @@
portail_app_url: "http://{{ ansible_host }}"
when: not portail_env_stat.stat.exists
# Variables ajoutées après le premier déploiement (étape 9) : mises à jour
# ligne par ligne, pour ne jamais retoucher le reste d'un .env déjà en place
# (APP_KEY en particulier, qui ne doit jamais changer sans le vouloir).
- name: lire l'application credential OpenStack du portail (étape 6)
ansible.builtin.slurp:
src: /etc/kolla/clouds-paillasse.yaml
register: portail_clouds_brut
- name: extraire l'id et le secret de l'application credential
ansible.builtin.set_fact:
portail_os_application_credential_id: "{{ portail_clouds_contenu | regex_search('application_credential_id:\\s*\"?([^\"\\n]+)', '\\1') | first }}"
portail_os_application_credential_secret: "{{ portail_clouds_contenu | regex_search('application_credential_secret:\\s*\"?([^\"\\n]+)', '\\1') | first }}"
vars:
portail_clouds_contenu: "{{ portail_clouds_brut.content | b64decode }}"
no_log: true
- name: ajouter/mettre à jour les variables OpenStack dans .env
ansible.builtin.lineinfile:
path: "{{ portail_dossier_app }}/.env"
regexp: "^{{ item.cle }}="
line: "{{ item.cle }}={{ item.valeur }}"
loop:
- { cle: "OS_AUTH_URL", valeur: "http://10.10.0.1:5000" }
- { cle: "OS_NOVA_URL", valeur: "http://10.10.0.1:8774/v2.1" }
- { cle: "OS_APPLICATION_CREDENTIAL_ID", valeur: "{{ portail_os_application_credential_id }}" }
- { cle: "OS_APPLICATION_CREDENTIAL_SECRET", valeur: "{{ portail_os_application_credential_secret }}" }
- { cle: "REDIS_PREFIX", valeur: "" }
no_log: true
register: portail_env_mis_a_jour
- name: installer les dépendances JS (npm)
ansible.builtin.command:
cmd: npm ci

View file

@ -12,6 +12,17 @@ server {
try_files $uri $uri/ /index.php?$query_string;
}
# Relaie la console série (étape 9) en WebSocket vers le proxy Go. Le
# jeton après /console/ est à usage court (5 min), jamais l'URL Nova.
location /console/ {
proxy_pass http://127.0.0.1:8081/console/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_read_timeout 1h;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php{{ portail_php_version }}-fpm.sock;
fastcgi_index index.php;