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
|
# 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
|
## 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
|
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
|
# 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.
|
# 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.
|
# 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
|
# Une tâche apt placée avant celle-ci attendrait le verrou que celle-ci doit justement
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue