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:
parent
30e14b1c54
commit
8742bde807
30 changed files with 1103 additions and 6 deletions
98
ansible/roles/proxy-console/tasks/02-service.yml
Normal file
98
ansible/roles/proxy-console/tasks/02-service.yml
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue