common_packages : apt-get attend le verrou dpkg lui aussi
lock_timeout ne protege que la verification du module ; apt-get n'attend pas (APT 3.0 ne l'accorde qu'a la commande apt). Verrou repris par unattended-upgrades sur mon-01 de Technolibre, ne une minute plus tot. DPkg::Lock::Timeout pour tout appel d'APT, en premiere tache. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
2bf94acb96
commit
b5fa0e8d23
2 changed files with 40 additions and 0 deletions
17
CHANGELOG.md
17
CHANGELOG.md
|
|
@ -1,5 +1,22 @@
|
|||
# CHANGELOG — Set-OPS
|
||||
|
||||
## 2026-09-30 (54) — Chezlepro au bout ; Technolibre arrêtée par un verrou dpkg
|
||||
|
||||
**Chezlepro** (lancée par l'exploitant, reprise `DEPUIS=parefeu` après (53)) : pare-feu 13/13
|
||||
sans flux perdu, les 7 jeux d'état **restaurés** depuis les instantanés de 15:59. Silence de
|
||||
douze minutes pendant `parefeu` : la sortie du Python enfant restait dans son tampon (tuyau) —
|
||||
les sous-commandes écrivent désormais sans tampon.
|
||||
|
||||
**Technolibre** (lancée par l'exploitant) : arrêt à `monter`, `mon-01` en échec dans
|
||||
`common_packages` — `apt-get dist-upgrade` refusé, verrou dpkg tenu par
|
||||
`unattended-upgrades`, né avec la VM. La tâche portait pourtant `lock_timeout: 300` : il ne
|
||||
protège que la vérification du MODULE ; `apt-get`, appelé ensuite, n'attend pas — APT 3.0
|
||||
ne donne d'attente qu'à la commande `apt` (`Binary::apt::DPkg::Lock::Timeout "120"`). Le
|
||||
verrou a été repris entre les deux. **Correction** : `DPkg::Lock::Timeout` posé pour tout
|
||||
appel d'APT (`/etc/apt/apt.conf.d/10setops-verrou`), en toute première tâche du rôle.
|
||||
Rien à voir avec la restauration : un tirage au sort du premier démarrage, que la troisième
|
||||
reconstruction de Chezlepro n'avait pas tiré.
|
||||
|
||||
## 2026-09-30 (53) — Troisième reconstruction (Chezlepro, lancée par l'exploitant) : arrêtée au pare-feu
|
||||
|
||||
L'exploitant a lancé lui-même `make reconstruire-locataire TENANT=OPS-Chezlepro
|
||||
|
|
|
|||
|
|
@ -6,6 +6,29 @@
|
|||
#
|
||||
# Attendre ici plutot que seulement avant le playbook : le verrou peut etre repris
|
||||
# ENTRE deux taches, ce qu'une verification ponctuelle en amont ne peut pas empecher.
|
||||
# APT-GET ATTEND LE VERROU, LUI AUSSI (2026-09-30).
|
||||
#
|
||||
# `lock_timeout` ne protege que la verification faite par le MODULE apt. Pour une mise a
|
||||
# niveau, le module lance ensuite `apt-get dist-upgrade` — qui, lui, n'attend pas : APT 3.0
|
||||
# ne donne d'attente (120 s) qu'a la commande `apt` (`Binary::apt::DPkg::Lock::Timeout`),
|
||||
# pas a `apt-get`. Entre la verification et l'appel, `unattended-upgrades` a repris le
|
||||
# verrou sur `mon-01`, ne une minute plus tot, et la reconstruction de Technolibre s'est
|
||||
# arretee :
|
||||
#
|
||||
# E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1198 (unattended-upgr)
|
||||
#
|
||||
# On le dit donc a APT LUI-MEME, pour tout appel : c'est un fichier, pas une operation apt,
|
||||
# il peut passer en tout premier.
|
||||
- name: Faire attendre le verrou dpkg a tout appel d'APT (apt-get compris)
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/apt/apt.conf.d/10setops-verrou
|
||||
content: |
|
||||
// Gere par Set-OPS (role common_packages). Voir tasks/main.yml.
|
||||
DPkg::Lock::Timeout "{{ common_packages_lock_timeout }}";
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
|
||||
# DÉSARMER AVANT TOUTE OPÉRATION APT, ET NON APRÈS.
|
||||
#
|
||||
# Une tâche apt placée avant celle-ci attendrait le verrou que celle-ci doit justement
|
||||
|
|
|
|||
Loading…
Reference in a new issue