patchcenter/migrate_patch_excludes_v2_20260507.sql
Admin MPCZ 626f8898e1 feat(excludes): nouvelle liste exclusions par domaine (sdcss-kmod base + Flux Libre minimal + ASM Oracle kernel*)
Aligne les exclusions sur les nouvelles regles SANEF:
- Base globale: 32 patterns precedents + *sdcss-kmod* (anciennement override HAproxy FL).
  S applique a TOUS les domaines sauf Flux Libre.
- Domaine Flux Libre: liste reduite a *podman* run* *container* uniquement
  (les autres patterns doivent etre patches sur ces serveurs).
- ASM Oracle (~50 hosts hardcodes): base globale + kernel*  (kmod-redhat-oracleasm
  doit suivre le kernel ASM, ne PAS mettre a jour le kernel hote).
- Reset des overrides serveurs HAproxy FL (vrpeahbst1/vppeahbst1/vipeahbst1)
  qui pointaient vers base + sdcss-kmod ; ils heritent maintenant du domaine FL.
2026-05-07 08:40:10 +02:00

75 lines
3.5 KiB
SQL

-- Migration v2 des exclusions patching :
-- - Liste générale : ajoute *sdcss-kmod* à la base globale (était un override
-- HAproxy FL avant). La nouvelle base s'applique à tous les domaines.
-- - Exception Flux Libre : remplace la base par UNIQUEMENT *podman* run* *container*
-- (les serveurs Flux Libre ont besoin de patcher le reste).
-- - Cas spécifique ASM Oracle : base globale + kernel* (à NE PAS mettre à jour).
-- - Reset des overrides HAproxy FL (vrpeahbst1/vppeahbst1/vipeahbst1) qui
-- étaient à `base + sdcss-kmod` ; désormais ils héritent du domaine Flux Libre.
-- Idempotent.
-- ─── 1) Nouvelle liste de base (33 patterns avec *sdcss-kmod*) ────────
UPDATE public.domains
SET default_excludes =
'*mongodb* *mysql* *postgres* *mariadb* *oracle* *pgdg* *php* *java* '
'*redis* *elasticsearch* *nginx* *mod_ssl* *haproxy* *certbot* '
'*python-certbot* *docker* *podman* *centreon* *qwserver* *ansible* '
'*node* *tina* *memcached* *nextcloud* *pgbouncer* *pgpool* *pgbadger* '
'*psycopg2* *barman* *kibana* *sdcss-kmod*'
WHERE LOWER(name) <> 'flux libre';
-- ─── 2) Exception Flux Libre : liste réduite ─────────────────────────
UPDATE public.domains
SET default_excludes = '*podman* run* *container*'
WHERE LOWER(name) = 'flux libre';
-- ─── 3) Reset des overrides HAproxy FL (héritent désormais du domaine) ─
UPDATE public.servers
SET patch_excludes = NULL
WHERE LOWER(hostname::text) IN ('vrpeahbst1', 'vppeahbst1', 'vipeahbst1');
-- ─── 4) Cas spécifique ASM Oracle : base + kernel* ───────────────────
DO $$
DECLARE
base_excludes text :=
'*mongodb* *mysql* *postgres* *mariadb* *oracle* *pgdg* *php* *java* '
'*redis* *elasticsearch* *nginx* *mod_ssl* *haproxy* *certbot* '
'*python-certbot* *docker* *podman* *centreon* *qwserver* *ansible* '
'*node* *tina* *memcached* *nextcloud* *pgbouncer* *pgpool* *pgbadger* '
'*psycopg2* *barman* *kibana* *sdcss-kmod*';
BEGIN
UPDATE public.servers SET patch_excludes = base_excludes || ' kernel*'
WHERE LOWER(hostname::text) IN (
'lamarrac1','lamarrac2','lamarrac3','lamarrac4',
'srdsibora1','srdsibora2',
'lptrabgas1',
'lragtbpla1','lpaiigrid1',
'lamaprac1','lamaprac2','lamaprac3','lamaprac4',
'lampadp1','lampadp2','lampadv1',
'lampasu1','lampasu2',
'lampcrm1','lampdec1','lampfin1','lampfin3','lampoct1','lamppea1',
'lamppla1','lamppla2',
'lamrsip1','lamrsip2',
'lamtinf1','lamtpfe1',
'lpagtbpla1',
'lpemvbaemv1','lpemvbpemv1','lpemvbpemv2',
'lpsimbpfe1',
'lraiibora1',
'lremvbremv1','lremvbremv2',
'rmila150','rmilgmo3','rmilsas1',
'rsmiged1','rsmigmo1','rsmipat1','rsmisar2',
'srtrabgas1',
'vpemvgrid1','vpnapamed1'
);
END $$;
-- ─── 5) Vérifications (à exécuter manuellement après) ────────────────
-- SELECT name, default_excludes FROM domains ORDER BY name;
-- SELECT hostname, patch_excludes FROM servers
-- WHERE patch_excludes LIKE '%kernel*%' OR LOWER(hostname::text) IN
-- ('vrpeahbst1','vppeahbst1','vipeahbst1') ORDER BY hostname;
-- SELECT s.hostname, vs.effective_excludes FROM servers s
-- JOIN v_servers vs ON vs.id = s.id
-- WHERE s.application_id IN (SELECT id FROM applications WHERE LOWER(domain)='flux libre')
-- ORDER BY s.hostname LIMIT 20;