{% extends "base.html" %} {% block title %}QuickWin #{{ run.id }}{% endblock %} {% set STEPS = [ ("draft", "Brouillon", "#94a3b8"), ("prereq", "Pr\u00e9requis", "#00d4ff"), ("snapshot", "Snapshot", "#a78bfa"), ("patching", "Patching", "#ffcc00"), ("result", "R\u00e9sultats", "#00ff88"), ("completed", "Termin\u00e9", "#10b981"), ] %} {% set current_step_idx = namespace(val=0) %} {% for s in STEPS %}{% if s[0] == run.status %}{% set current_step_idx.val = loop.index0 %}{% endif %}{% endfor %} {% set can_modify = run.status in ('draft', 'prereq') %} {% macro qs(hp=hp_page, pp=p_page) -%} ?hp_page={{ hp }}&p_page={{ pp }}&per_page={{ per_page }}&search={{ filters.search or '' }}&status={{ filters.status or '' }}&domain={{ filters.domain or '' }} {%- endmacro %} {% block content %}
S{{ '%02d'|format(run.week_number) }} {{ run.year }} — Créé par {{ run.created_by_name or '?' }}
Cochez les domaines et zones à inclure. Les serveurs hors périmètre seront marqués « Exclu ».
Vérifie : résolution DNS, SSH (PSMP/Key), Satellite/YUM, espace disque (<90%)
Connexion vSphere → recherche VM → snapshot automatique. Les serveurs physiques sont ignorés (vérifier backup Commvault).
Les non-prod suivants ne sont pas validés. Marquer leur validation dans /patching/validations avant de patcher les prods correspondants.
| Prod | Hors-prod bloquant | Statut |
|---|---|---|
| {{ b.prod_hostname }} | {{ b.nonprod_hostname }} | {% if b.status == 'en_attente' %}En attente {% elif b.status == 'validated_ko' %}KO {% elif b.status == 'aucun_patching' %}Pas de patching {% else %}{{ b.status }}{% endif %} |
{{ validations_blockers|length }} bloquant(s) — vous pouvez continuer mais il est recommandé d'obtenir les validations d'abord.
Avant de patcher la prod, lancez les checks prereq et snapshots sur les serveurs production.
Étape 1 : Générer les commandes. Étape 2 : Vérifier. Étape 3 : Exécuter via SSH.
{{ stats.patched }} patché(s), {{ stats.failed }} KO, {{ stats.reboot_count }} reboot(s).
Télécharger le rapportHors-production d'abord : {{ stats.hprod_pending }} serveur(s) hprod en attente.
| {% endif %} | Serveur | Domaine | Env | Statut | {% if run.status in ('prereq','snapshot','patching','result','completed') %}Prereq | {% endif %} {% if run.status in ('snapshot','patching','result','completed') %}Snap | {% endif %}Exclusions gén. | Exclusions spéc. | Packages | Date patch | Reboot | Notes | {% if run.status == 'patching' %}Action | {% endif %}||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {% endif %} | {{ e.hostname }} | {{ e.domaine or '?' }} | {{ e.environnement or '?' }} | {% if e.status == 'patched' %}Patché {% elif e.status == 'failed' %}KO {% elif e.status == 'in_progress' %}En cours {% elif e.status == 'excluded' %}Exclu {% elif e.status == 'skipped' %}Ignoré {% else %}En attente{% endif %} | {% if run.status in ('prereq','snapshot','patching','result','completed') %}{% if e.prereq_ok == true %}✓ {% elif e.prereq_ok == false %}✗ {% else %}—{% endif %} | {% endif %} {% if run.status in ('snapshot','patching','result','completed') %}{% if e.snap_done %}✓ {% else %} {% if run.status == 'snapshot' %} {% else %}—{% endif %} {% endif %} | {% endif %}{{ e.patch_packages_count or '—' }} | {{ e.patch_date.strftime('%d/%m %H:%M') if e.patch_date else '—' }} | {% if e.reboot_required %}OUI{% else %}—{% endif %} | {{ e.notes or '—' }} | {% if run.status == 'patching' %}
{% if e.status == 'pending' and e.prereq_ok and e.snap_done %}
|
{% endif %}
||||
| Aucun serveur{% if filters.search or filters.status or filters.domain %} (filtre actif){% endif %} | |||||||||||||||
{{ run.notes }}