Corriger 3 bugs trouvés au premier déploiement réel (asgard)
- clonage/Makefile : chemin proxmox codé en dur `inventories/lab` → détection lab>principal>production (débloque les instances principal) - resize disque grow-only : tolère le cas disque dérivé < template (shrinking not supported), la VM garde le disque du template - PowerDNS : ne plus redéclarer launch+=bind (déjà posé par le paquet pdns-backend-bind) → « multiple backends 'bind' » résolu Trouvés en déployant réellement infra-dns-01 (clone + socle durci + PowerDNS qui résout) sur le cluster Proxmox. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
614cebcc55
commit
da85af2a62
4 changed files with 37 additions and 9 deletions
11
CHANGELOG.md
11
CHANGELOG.md
|
|
@ -56,6 +56,17 @@
|
|||
intrants-communs.md §H, QUICKSTART). Le GUI ne stocke toujours aucun secret.
|
||||
|
||||
### Corrigé
|
||||
- **Trois bugs trouvés au premier déploiement réel (cluster asgard).**
|
||||
- **Clonage/Makefile codaient `inventories/lab` en dur** (config Proxmox + voûte) —
|
||||
vestige du modèle env qui cassait les instances `principal`. Le playbook de clonage
|
||||
et le Makefile détectent maintenant l'inventaire (`lab` > `principal` > `production`).
|
||||
- **Redimensionnement disque non idempotent** : quand le disque dérivé du plan est
|
||||
plus petit que le golden template, Proxmox refuse (`shrinking disks is not
|
||||
supported`) et le clone échouait. Le resize est désormais **grow-only** (tolère le
|
||||
cas, la VM garde le disque du template — le dérivé est un minimum).
|
||||
- **PowerDNS refusait de démarrer** (`multiple backends 'bind'`) : le rôle
|
||||
redéclarait `launch+=bind` que le paquet `pdns-backend-bind` pose déjà. Le rôle ne
|
||||
déclare plus `launch` (seulement `bind-config`).
|
||||
- **`chezlepro_timezone` n'était appliqué nulle part.** Cet intrant de base global
|
||||
était défini mais aucun rôle ne s'en servait. Le rôle `chrony` (appliqué à tout
|
||||
hôte via `serveur_debian`) règle désormais le fuseau horaire à partir de
|
||||
|
|
|
|||
8
Makefile
8
Makefile
|
|
@ -353,8 +353,12 @@ cloner-vm: ansible-runtime
|
|||
extra_vars+=( -e proxmox_clone_vlan="$(VLAN)" ); \
|
||||
[[ -n "$(DEMARRER)" ]] && extra_vars+=( -e proxmox_clone_demarrer="$(DEMARRER)" ); \
|
||||
vault_args=(); \
|
||||
vault_file="$(SETOPS_INSTANCE)/inventories/lab/group_vars/proxmox.vault.yml"; \
|
||||
if [[ -f "$$vault_file" ]]; then \
|
||||
vault_file=""; \
|
||||
for d in lab principal production; do \
|
||||
f="$(SETOPS_INSTANCE)/inventories/$$d/group_vars/proxmox.vault.yml"; \
|
||||
[[ -f "$$f" ]] && vault_file="$$f" && break; \
|
||||
done; \
|
||||
if [[ -n "$$vault_file" && -f "$$vault_file" ]]; then \
|
||||
read -r premiere_ligne < "$$vault_file" || true; \
|
||||
case "$$premiere_ligne" in \
|
||||
'$$ANSIBLE_VAULT'*) \
|
||||
|
|
|
|||
|
|
@ -5,14 +5,19 @@
|
|||
gather_facts: false
|
||||
become: false
|
||||
|
||||
vars:
|
||||
# Config Proxmox de l'instance : on cherche dans l'inventaire de l'instance,
|
||||
# quel que soit son nom (lab > principal > production). Compatible « par instance ».
|
||||
setops_inventaires: [lab, principal, production]
|
||||
setops_gv_proxmox: [proxmox.yml, proxmox.vault.yml, proxmox.local.yml]
|
||||
|
||||
tasks:
|
||||
- name: Verifier les fichiers de variables Proxmox optionnels
|
||||
ansible.builtin.stat:
|
||||
path: "{{ item }}"
|
||||
loop:
|
||||
- "{{ playbook_dir }}/../../instance/inventories/lab/group_vars/proxmox.yml"
|
||||
- "{{ playbook_dir }}/../../instance/inventories/lab/group_vars/proxmox.vault.yml"
|
||||
- "{{ playbook_dir }}/../../instance/inventories/lab/group_vars/proxmox.local.yml"
|
||||
path: "{{ playbook_dir }}/../../instance/inventories/{{ item.0 }}/group_vars/{{ item.1 }}"
|
||||
loop: "{{ setops_inventaires | product(setops_gv_proxmox) | list }}"
|
||||
loop_control:
|
||||
label: "{{ item.0 }}/{{ item.1 }}"
|
||||
register: proxmox_fichiers_variables
|
||||
|
||||
- name: Charger les variables Proxmox non sensibles disponibles
|
||||
|
|
@ -147,7 +152,7 @@
|
|||
- proxmox_clone_pont is defined
|
||||
- proxmox_clone_pont | length > 0
|
||||
|
||||
- name: Agrandir le disque principal du clone
|
||||
- name: Agrandir le disque principal du clone (grow-only)
|
||||
community.general.proxmox_disk:
|
||||
api_host: "{{ proxmox_api_host_effectif }}"
|
||||
api_port: "{{ proxmox_api_port_effectif | int if proxmox_api_port_effectif | length > 0 else omit }}"
|
||||
|
|
@ -159,6 +164,13 @@
|
|||
disk: "{{ proxmox_clone_disque | default('scsi0') }}"
|
||||
size: "{{ proxmox_clone_taille_disque }}"
|
||||
state: resized
|
||||
register: proxmox_redim_disque
|
||||
# Le disque derive du plan est un MINIMUM. Si le template est deja plus grand,
|
||||
# Proxmox refuse de retrecir : on tolere ce cas (grow-only), la VM garde le
|
||||
# disque du template. Toute autre erreur reste bloquante.
|
||||
failed_when:
|
||||
- proxmox_redim_disque is failed
|
||||
- "'shrinking disks is not supported' not in (proxmox_redim_disque.msg | default(''))"
|
||||
when:
|
||||
- proxmox_clone_taille_disque is defined
|
||||
- proxmox_clone_taille_disque | length > 0
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
launch+=bind
|
||||
{# launch=bind est deja declare par le paquet pdns-backend-bind (pdns.d/bind.conf).
|
||||
Ne PAS le redeclarer ici : sinon PowerDNS refuse « multiple backends 'bind' ». #}
|
||||
bind-config={{ serveur_powerdns_bind_config }}
|
||||
local-address={{ serveur_powerdns_listen_addresses | join(',') }}
|
||||
{% if serveur_powerdns_allow_axfr_ips | length > 0 %}
|
||||
|
|
|
|||
Loading…
Reference in a new issue