--- - name: Assurer le repertoire des trousseaux apt ansible.builtin.file: path: /etc/apt/keyrings state: directory owner: root group: root mode: "0755" # Recuperee UNE FOIS. Sans garde, chaque deploiement recontactait le serveur du # fournisseur : cinq cles x quatorze hotes = soixante-dix allers-retours externes pour # des cles deja installees, et autant d'occasions qu'un tiers lent fasse tomber le # deploiement. Arbitrage rendu le 2026-08-09 : une plateforme souveraine ne depend pas # de six serveurs etrangers pour redeployer ce qu'elle possede deja. # # CONSEQUENCE ASSUMEE : une rotation de cle amont n'est plus recuperee toute seule. Elle # ne passe pas inapercue pour autant — `apt` refuse alors le depot, bruyamment. Pour # forcer le rafraichissement : supprimer le fichier et rejouer le role. - name: Cette ressource est-elle deja recuperee ? (Telecharger la cle de signature Gr) ansible.builtin.stat: path: "{{ client_journal_depot_cle_fichier }}" register: telecharger_la_cle_de_signature_grafana_present - name: Telecharger la cle de signature Grafana when: not telecharger_la_cle_de_signature_grafana_present.stat.exists ansible.builtin.get_url: url: "{{ client_journal_depot_cle_url }}" dest: "{{ client_journal_depot_cle_fichier }}" owner: root group: root mode: "0644" - name: Ajouter le depot apt Grafana ansible.builtin.apt_repository: repo: "{{ client_journal_depot_source }}" filename: grafana state: present # LE CACHE DU CONTROLEUR D'ABORD, LE DEPOT DISTANT POUR LE RESTE (2026-09-03). # # Les depots tiers sont en HTTPS, et `client_artefacts` pose # `Acquire::https::Proxy "DIRECT"` — ils CONTOURNENT donc le cache du site et sortent sur # Internet a chaque construction de VM. `make cacher-paquets` les tire une fois, versions # epinglees et empreintes verifiees ; ce role les depose depuis ce cache. - name: Poser les paquets tiers depuis le cache du controleur ansible.builtin.include_role: name: paquets_tiers vars: paquets_tiers_noms: "{{ client_journal_paquets }}" - name: Installer Grafana Alloy ansible.builtin.apt: # CE QUE LE CACHE N'A PAS FOURNI, ET RIEN D'AUTRE. Les dependances Debian passent # par le cache du site en HTTP ; seuls les paquets tiers non caches exigent Internet. # Reinstaller ce que le cache vient de poser ferait un `update_cache` inutile — et # hors ligne, il echouerait APRES un travail deja fait. name: "{{ client_journal_paquets | difference((paquets_tiers_disponibles | default({})).keys() | list) }}" state: present update_cache: true when: (client_journal_paquets | difference((paquets_tiers_disponibles | default({})).keys() | list)) | length > 0 - name: Autoriser Alloy a lire le journal systeme ansible.builtin.user: name: "{{ client_journal_utilisateur }}" groups: systemd-journal append: true notify: Redemarrer alloy - name: Deployer la configuration Alloy ansible.builtin.template: src: config.alloy.j2 dest: "{{ client_journal_config }}" owner: root group: "{{ client_journal_utilisateur }}" mode: "0640" notify: Redemarrer alloy # Le port d'ecoute est IMPOSE ici plutot que subi : voir defaults/main.yml. - name: Imposer le port de l interface locale d Alloy ansible.builtin.lineinfile: path: /etc/default/alloy regexp: "^CUSTOM_ARGS=" line: >- CUSTOM_ARGS="--server.http.listen-addr={{ client_journal_http_adresse }}:{{ client_journal_http_port }}" create: false notify: Redemarrer alloy - name: Activer et demarrer Alloy ansible.builtin.systemd: name: "{{ client_journal_service }}" enabled: true state: started