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

@ -0,0 +1,98 @@
---
- name: créer l'utilisateur système dédié
ansible.builtin.user:
name: proxyconsole
system: true
shell: /usr/sbin/nologin
home: "{{ proxy_console_dossier }}"
create_home: false
- name: créer le dossier de l'application
ansible.builtin.file:
path: "{{ proxy_console_dossier }}"
state: directory
owner: "{{ ansible_user }}"
group: "{{ ansible_user }}"
mode: "0755"
- name: synchroniser le code source
become: false
ansible.posix.synchronize:
src: "{{ playbook_dir }}/../proxy-console/"
dest: "{{ proxy_console_dossier }}/"
delete: true
rsync_opts:
- "--exclude=proxy-console-linux-amd64"
- "--exclude=proxy-console"
- "--exclude=.cache"
- "--exclude=go"
register: proxy_console_code_synchronise
- name: compiler le binaire
ansible.builtin.command:
cmd: /usr/local/bin/go build -o {{ proxy_console_dossier }}/proxy-console .
args:
chdir: "{{ proxy_console_dossier }}"
environment:
HOME: "{{ proxy_console_dossier }}"
register: proxy_console_build
changed_when: true
notify: redémarrer proxy-console
- name: donner la propriété du binaire à l'utilisateur dédié
ansible.builtin.file:
path: "{{ proxy_console_dossier }}/proxy-console"
owner: proxyconsole
group: proxyconsole
mode: "0750"
# Le mot de passe Redis est déjà généré par le rôle `portail` (même Redis,
# partagé) : on le relit plutôt que d'en gérer un second.
- name: lire le mot de passe Redis de l'app
ansible.builtin.slurp:
src: /etc/portail/.env
register: proxy_console_env_portail_brut
- name: extraire le mot de passe Redis
ansible.builtin.set_fact:
proxy_console_redis_mot_de_passe: "{{ proxy_console_env_portail_contenu | regex_search('REDIS_PASSWORD=(.*)', '\\1') | first }}"
vars:
proxy_console_env_portail_contenu: "{{ proxy_console_env_portail_brut.content | b64decode }}"
no_log: true
- name: déployer le fichier d'environnement du service
ansible.builtin.template:
src: proxy-console.env.j2
dest: /etc/proxy-console.env
owner: root
group: proxyconsole
mode: "0640"
no_log: true
notify: redémarrer proxy-console
- name: déployer le service systemd
ansible.builtin.template:
src: proxy-console.service.j2
dest: /etc/systemd/system/proxy-console.service
mode: "0644"
notify:
- recharger systemd
- redémarrer proxy-console
- name: appliquer les changements
ansible.builtin.meta: flush_handlers
- name: vérifier que le service tourne
ansible.builtin.systemd:
name: proxy-console
enabled: true
state: started
- name: déployer les scripts de test manuel de la console
ansible.builtin.copy:
src: "{{ playbook_dir }}/../proxy-console/{{ item }}"
dest: "/opt/construction-image/{{ item }}"
mode: "0644"
loop:
- test-manuel.py
- test-duplication.py