98 lines
2.8 KiB
YAML
98 lines
2.8 KiB
YAML
---
|
|
- 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
|