Premiere materialisation d'une VM de tenant depuis le runner du SITE. Elle a
echoue quatre fois d'affilee, sur quatre dependances que le moteur ne declarait
nulle part. Chacune fonctionnait chez le mainteneur pour une raison DIFFERENTE,
et aucune de ces raisons n'existe sur une autre machine.
1. VERSIONS DES COLLECTIONS. `requirements.yml` les nommait sans les epingler. Le
runner a recu `community.general` 13.3.0 quand le poste porte la 10.3.0 — et la
11 a retire les modules Proxmox de cette collection.
ERROR! couldn't resolve module/action 'community.general.proxmox_pool'
2. INSTALLATION EN AVANT. `ansible-galaxy` ne retrograde pas : declarer la 10.3.0
ne suffisait pas a defaire une 13.3.0 deja posee. `--force`.
3. EMPLACEMENT. Le `Makefile` pose `ANSIBLE_HOME ?= $(CURDIR)/.ansible` : sous
`make`, Ansible ne lit QUE `<moteur>/.ansible/collections`. Le role deposait
dans `<racine>/.ansible/collections` — a cote, jamais lu. Invisible chez le
mainteneur, ou les collections viennent du paquet systeme, toujours dans le
chemin quel que soit ANSIBLE_HOME. Et le garde-fou d'installation suivait le
DEPOT des archives : changer la destination ne le declenchait pas. Il mesure
desormais la destination — meme piege qu'en 2026-08-24, deplace d'un cran.
4. BIBLIOTHEQUES PYTHON. Le venv recevait `ansible-core` et `pyyaml`, ecrits en
dur. Les modules Proxmox tournent `delegate_to: localhost` et exigent
`proxmoxer` SUR LE CONTROLEUR.
La bibliotheque Python proxmoxer est absente
Ne d'ici : `requirements-python.txt`, avec sa frontiere ecrite — il ne declare
QUE ce qui tourne sur le controleur. `python-ldap` et `psycopg2` s'executent
sur leurs cibles ; le poste du mainteneur ne les a pas et la flotte se deploie,
ce qui prouve que la ligne est au bon endroit.
P51 garde les trois faiblesses de cette famille : une dependance utilisee sans
etre declaree (le defaut du 2026-08-24, `ansible.posix`), une dependance declaree
sans version, et `proxmoxer` absent alors que des playbooks Proxmox existent.
Quatre controles negatifs verifies.
RESULTAT : ops-01 materialisee par le runner du site. L'agent invite rapporte
`eth0 10.17.19.41/24`, Debian 13 trixie — l'adressage derive du plan, applique.
Un seul executant masque ces ecarts indefiniment ; un second les revele tous en
une soiree. Meme mecanique que le second tenant en aout.
make prouver : CONFORME, 51 OK, 0 echec.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
27 lines
1.5 KiB
Text
27 lines
1.5 KiB
Text
# Bibliotheques Python requises par le CONTROLEUR Set-OPS.
|
|
#
|
|
# LE PENDANT DE `requirements.yml`, POUR PYTHON (2026-08-27). Les collections Ansible
|
|
# etaient declarees ; les bibliotheques dont leurs modules dependent ne l'etaient nulle
|
|
# part. Le venv d'un poste d'exploitation recevait `ansible-core` et `pyyaml`, ecrits en
|
|
# dur dans le role — et rien d'autre.
|
|
#
|
|
# Ce que ca a coute : le runner du SITE a echoue a la premiere materialisation de VM sur
|
|
# « La bibliotheque Python proxmoxer est absente ». Le poste du mainteneur l'avait par
|
|
# son paquet systeme, sans que personne ne l'ait jamais declare.
|
|
#
|
|
# CE FICHIER NE LISTE QUE CE QUI TOURNE SUR LE CONTROLEUR. Les modules `ldap_*` et
|
|
# `postgresql_*` s'executent SUR LEURS CIBLES : `python-ldap` et `psycopg2` sont donc
|
|
# affaire des roles `serveur_openldap` et `serveur_postgresql`, pas d'ici. Le poste du
|
|
# mainteneur ne les a pas non plus, et la flotte se deploie tres bien — c'est la preuve
|
|
# que la frontiere est au bon endroit.
|
|
#
|
|
# Les versions sont EPINGLEES, pour la meme raison que dans `requirements.yml` : une
|
|
# dependance non epinglee n'est pas une dependance, c'est un pari sur l'etat d'Internet
|
|
# a la date du deploiement. Voir la preuve P51.
|
|
|
|
# `community.general.proxmox_kvm`, `proxmox_pool`, `proxmox_nic`, `proxmox_disk` —
|
|
# tous `delegate_to: localhost`, donc tous exiges sur le CONTROLEUR.
|
|
proxmoxer==2.2.0
|
|
# Transport HTTP de proxmoxer. `pip` l'installerait en dependance, mais une dependance
|
|
# transitive non nommee est une version non choisie.
|
|
requests==2.32.3
|