--- # 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