verrou-runner.yml fige les 15 roues et les 3 collections qui tournent sur le runner de Technolibre, avec URL amont et somme SHA-256. Le cache du runner tenait deux versions de six bibliotheques selon le jour du montage. - serveur_artefacts depose ces 18 fichiers au depot de binaires du site. - serveur_ops les prend au site d'abord, somme verifiee ; repli sur Internet dit en clair ; plus aucun pip download ni collection download ; seuls les fichiers du verrou sont deposes sur le runner. - ansible-core epingle a 2.18.19 (la version deployee). - P70 exige le verrou au site ; test_verrou_runner.py dans make test. AGENTS.md et CLAUDE.md : version allegee par l'operateur. 94 preuves. CHANGELOG (121). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
79 lines
6 KiB
YAML
79 lines
6 KiB
YAML
---
|
|
# CE QUE LE RUNNER INSTALLE, A L'OCTET PRES — tenu par le site, verifie a la reception.
|
|
#
|
|
# POURQUOI (2026-10-09). A chaque reconstruction, le runner sortait sur Internet : `pip
|
|
# download` interrogeait PyPI, et un runner neuf tirait ses collections de Galaxy. Seules
|
|
# deux bibliotheques etaient epinglees ; `ansible-core` etait borne (>=2.18,<2.19), le reste
|
|
# libre. Mesure sur le runner de Technolibre : son depot de roues portait DEUX versions de
|
|
# six bibliotheques (cryptography 50.0.1 et 50.0.2, urllib3 2.7.0 et 2.8.0...) — PyPI avait
|
|
# bouge entre l'insemination et le montage, et personne n'avait choisi celle qui tournait.
|
|
#
|
|
# CE VERROU EST CE QUI TOURNE : les quinze roues installees dans le venv de ce runner (pip
|
|
# freeze), et les trois collections qu'il a recues, avec leurs sommes, releves le
|
|
# 2026-10-09. Chaque URL a ete telechargee depuis le poste et rend exactement sa somme.
|
|
#
|
|
# QUI LE LIT : `serveur_artefacts` (le site tient ces fichiers dans son depot de binaires),
|
|
# `serveur_ops` (le runner les prend au site, ne depose QUE ceux-ci, installe hors ligne),
|
|
# P70 (le site tient tout ce que le runner va chercher), `test_verrou_runner.py`.
|
|
#
|
|
# MONTER UNE VERSION est un geste delibere : remplacer la ligne (nom, url, sha256), et les
|
|
# epingles de `requirements-python.txt`, `serveur_ops_ansible` et `requirements.yml`, que
|
|
# le test confronte a ce verrou.
|
|
# Le Python pour lequel les roues sont faites (`cp313`) ; la cible doit le porter.
|
|
python_cible: "3.13"
|
|
python:
|
|
- nom: ansible_core-2.18.19-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/a/ansible-core/ansible_core-2.18.19-py3-none-any.whl
|
|
sha256: 00f53c10d97ce001f6e49857820901b3e8d2f234cb9f5fd9fdf8092c14109fa0
|
|
- nom: certifi-2026.7.22-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/c/certifi/certifi-2026.7.22-py3-none-any.whl
|
|
sha256: 62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775
|
|
- nom: cffi-2.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
|
|
url: https://files.pythonhosted.org/packages/cp313/c/cffi/cffi-2.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
|
|
sha256: a931079504ecc49efed7744c476a5c343a92fabf66dec2db95edb1b2fdc770e2
|
|
- nom: charset_normalizer-3.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
url: https://files.pythonhosted.org/packages/cp313/c/charset-normalizer/charset_normalizer-3.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl # yamllint disable-line rule:line-length
|
|
sha256: 7218e8f32b0956cfcd048fd42d9d5779809745ca1d86113ca56f66e7ae1549c4
|
|
- nom: cryptography-50.0.2-cp311-abi3-manylinux_2_34_x86_64.whl
|
|
url: https://files.pythonhosted.org/packages/cp311/c/cryptography/cryptography-50.0.2-cp311-abi3-manylinux_2_34_x86_64.whl
|
|
sha256: 9dab55f57c74c3cad24c323bacbbd04be4705ba6eb0d92e920b1fc4837ed5079
|
|
- nom: idna-3.20-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/i/idna/idna-3.20-py3-none-any.whl
|
|
sha256: ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c
|
|
- nom: jinja2-3.1.6-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/j/jinja2/jinja2-3.1.6-py3-none-any.whl
|
|
sha256: 85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67
|
|
- nom: markupsafe-3.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
url: https://files.pythonhosted.org/packages/cp313/m/markupsafe/markupsafe-3.0.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl # yamllint disable-line rule:line-length
|
|
sha256: 434139499bb20b502ed3baa1f169e618f924a97e7a777fea1a49446d80106cf6
|
|
- nom: packaging-26.3-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/p/packaging/packaging-26.3-py3-none-any.whl
|
|
sha256: d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c
|
|
- nom: proxmoxer-2.2.0-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/p/proxmoxer/proxmoxer-2.2.0-py3-none-any.whl
|
|
sha256: 7e4431fd38e1a9321eedf6d860ddc373fc2b29ce1845fa8b072d7580d99f6b90
|
|
- nom: pycparser-3.1-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/p/pycparser/pycparser-3.1-py3-none-any.whl
|
|
sha256: f09d358c840bd147b79e55f2bc494f18ea869dc897f5852a8f5766b74f787882
|
|
- nom: pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
url: https://files.pythonhosted.org/packages/cp313/p/pyyaml/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
|
|
sha256: 0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6
|
|
- nom: requests-2.32.3-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/r/requests/requests-2.32.3-py3-none-any.whl
|
|
sha256: 70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6
|
|
- nom: resolvelib-1.0.1-py2.py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py2.py3/r/resolvelib/resolvelib-1.0.1-py2.py3-none-any.whl
|
|
sha256: d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf
|
|
- nom: urllib3-2.8.0-py3-none-any.whl
|
|
url: https://files.pythonhosted.org/packages/py3/u/urllib3/urllib3-2.8.0-py3-none-any.whl
|
|
sha256: 0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3
|
|
collections:
|
|
- nom: ansible-posix-1.6.2.tar.gz
|
|
url: https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/ansible-posix-1.6.2.tar.gz
|
|
sha256: 3c6b4d4f326cb42490b75644179e809ed09f3040ddaf0763bd6ea9e0f2ef8c47
|
|
- nom: community-general-10.3.0.tar.gz
|
|
url: https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/community-general-10.3.0.tar.gz
|
|
sha256: f1df87cca61c7c22aa1d66fbb3864185da71d0141f825a1385b8c4b7a635b129
|
|
- nom: community-postgresql-3.10.2.tar.gz
|
|
url: https://galaxy.ansible.com/api/v3/plugin/ansible/content/published/collections/artifacts/community-postgresql-3.10.2.tar.gz
|
|
sha256: f0ad8976e502d28c901b8bbeb5a4a85a82f86e28fac245c4caa3d60a618e14e2
|