diff --git a/roles/serveur_ops/tasks/main.yml b/roles/serveur_ops/tasks/main.yml index 7fc701f..fd4b22c 100644 --- a/roles/serveur_ops/tasks/main.yml +++ b/roles/serveur_ops/tasks/main.yml @@ -93,6 +93,33 @@ delay: 6 until: serveur_ops_pip is succeeded +# L'OUTILLAGE DOIT ETRE SUR LE CHEMIN DE CELUI QUI L'EXPLOITE (2026-08-26). +# +# Ansible vit dans un venv isole — c'est voulu, il est epingle. Mais rien ne le mettait sur +# le PATH du compte d'exploitation : `make instancier` y echouait sur +# « [Errno 2] No such file or directory: 'ansible-inventory' », un message qui accuse un +# fichier manquant alors que le fichier est la, deux dossiers plus loin. +# +# Mesure du 2026-08-26, en eprouvant la sequence depuis le runner du site. Un exploitant y +# serait tombe exactement de la meme facon — et c'est precisement ce qu'un outil « utilisable +# sans IA » ne doit pas faire. +# +# Un fragment `profile.d` plutot qu'un `.bashrc` : il vaut pour toute session du compte, y +# compris `sudo -iu setops`, et se retire d'un seul geste. +- name: Mettre l'outillage du poste sur le chemin du compte d'exploitation + ansible.builtin.copy: + dest: /etc/profile.d/50-setops-venv.sh + content: | + # GÉNÉRÉ par Set-OPS (rôle serveur_ops). NE PAS éditer à la main. + # Ansible vit dans un venv épinglé ; sans cette ligne, `make` ne le trouve pas. + if [ "$(id -un)" = "{{ serveur_ops_utilisateur }}" ]; then + PATH="{{ serveur_ops_venv }}/bin:$PATH" + export PATH + fi + owner: root + group: root + mode: "0644" + # LA CONFIANCE, AVANT LE CLONE — et limitee a une seule url. # # Voir defaults/main.yml : on ne pose pas cette racine dans le magasin systeme. `git