Paillasse/ansible/roles/elasticsearch/tasks/main.yml
Adam Belkacemi 777dd1cbc8 ajoute la recherche plein texte dans les cours et labs (bloc C)
Elasticsearch interne (jamais exposé, sécurité x-pack désactivée,
cohérent avec le reste des services internes de ce serveur), tas JVM
fixé à 512 Mo plutôt que le calcul automatique (jusqu'à 50 % de la
RAM système, désastreux sur ce serveur à 31 Go réels). Appels HTTP
directs depuis Laravel, pas de bibliothèque cliente pour un besoin
aussi simple. Index reconstruit après chaque synchronisation du
catalogue, page de recherche commune aux profs et aux élèves.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-14 13:24:13 +02:00

63 lines
2.1 KiB
YAML

---
# Bloc C (CLAUDE.md) : recherche plein texte dans les cours et labs.
# Instance interne seule (voir elasticsearch.yml.j2) : jamais exposée,
# jamais de réseau à configurer dans Nginx — seul le portail lui parle, en
# PHP, sur 127.0.0.1.
- name: ajouter la clé de signature du dépôt Elastic
ansible.builtin.get_url:
url: https://artifacts.elastic.co/GPG-KEY-elasticsearch
dest: /tmp/elastic-gpg-key.asc
mode: "0644"
register: elasticsearch_cle_brute
- name: déposer la clé au format attendu par apt
ansible.builtin.shell: gpg --dearmor < /tmp/elastic-gpg-key.asc > /usr/share/keyrings/elastic.gpg
args:
creates: /usr/share/keyrings/elastic.gpg
- name: ajouter le dépôt Elastic 8.x
ansible.builtin.apt_repository:
repo: "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main"
filename: elastic-8.x
state: present
update_cache: true
- name: installer Elasticsearch
ansible.builtin.apt:
name: elasticsearch
state: present
register: elasticsearch_installation
- name: déployer la configuration (sécurité désactivée, écoute locale seulement)
ansible.builtin.template:
src: elasticsearch.yml.j2
dest: /etc/elasticsearch/elasticsearch.yml
owner: root
group: elasticsearch
mode: "0660"
notify: redémarrer elasticsearch
- name: réduire le tas JVM (catalogue de cours/labs, volume très faible)
ansible.builtin.template:
src: heap.options.j2
dest: /etc/elasticsearch/jvm.options.d/heap.options
owner: root
group: elasticsearch
mode: "0660"
notify: redémarrer elasticsearch
- name: activer et démarrer Elasticsearch
ansible.builtin.systemd:
name: elasticsearch
state: started
enabled: true
- name: ajouter/mettre à jour les variables Elasticsearch dans .env du portail
ansible.builtin.lineinfile:
path: "{{ portail_dossier_app }}/.env"
regexp: "^{{ item.cle }}="
line: "{{ item.cle }}={{ item.valeur }}"
loop:
- { cle: "ELASTICSEARCH_HOTE", valeur: "127.0.0.1" }
- { cle: "ELASTICSEARCH_PORT", valeur: "{{ elasticsearch_port }}" }
notify: redémarrer horizon