poste : l'outillage sur le chemin de celui qui l'exploite

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, `sudo -iu setops` compris, et se retire d'un seul geste.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Daniel Allaire 2026-08-26 16:42:24 -04:00
parent 8890c997af
commit 8195d6b814

View file

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