diff --git a/migrate_patch_excludes_v2_20260507.sql b/migrate_patch_excludes_v2_20260507.sql new file mode 100644 index 0000000..7e32b74 --- /dev/null +++ b/migrate_patch_excludes_v2_20260507.sql @@ -0,0 +1,74 @@ +-- 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;