Solutii de patch management
Postat la Sun 28 April 2019 in tutoriale
Uneori ori suntem in situatia de a administra o infrastructura pe care nu putem reimprospata usor sau fregvent sistemul de operare prin reinstall, asa cum se poate face in cloud. Ma gandesc aici servere de webhost cu zeci de domenii instalate , servere de baze de date ori storage de date critice pentru aplicatii.
Ce alternative avem?
- Actualizare manuala
Prima alternativa e sa nu conectam via ssh si sa rulam una din comenzi:
yum update
apt update && apt upgrade
Pro:
- solutia este simpla
- fezabila pentru un numar redus de instante.
Contra:
- evidenta cand unde s-a rulat trebuie facuta extern/manual
- cu cat numarul lor creste metoda devine greoaie dpdv al administrarii
- e necesar configurarea repo-urilor pe fiecare instanta
- Salt/Ansible/Puppet/Chef
Rulam comanda de actualizare sistemului de operare/aplicatiilor printr-un sistem de management al configuratiilor fie Ansible sau Salt ori Puppet
Pro:
- un singur loc de rulare a comenzii
- permite rularea comenzii pe un numar ridicat de instante simultan (chiar mii folosind Salt/Puppet)
Contra:
- e necesar gruparea atenta a instantelor pentru evitarea aplicarea actualizarilor nedorite (versiuni de PHP/Python/Node)
- e necesar configurarea repo-urilor pe fiecare instanta
- Aplicatii dedicate de patch management.
O aplicatie de patch management iti arata puterea cu cat infrastructura administata este mai mare (servere fizice sau VM). Aceste aplicatii uzual permit sa fie o sursa unica de aplicatii pentru masinile administrate sau ce nu au nevoie de access extern, prin creeare unui repo/mirror local.
Pro:
- permit
- evidenta pachetelor instalate pe fiecare instanta
- pot avea si functionalitati de CMDB
- folosirea unor repo-uri locale ce pot stoca versiuni diferite ale aceluasi pachet (ce in timp pot disparea de pe mirror-uri)
- permit functionalitati de management al fisierelor de configurare
- permit functionalitati de instalare automata a sistemelor (OS provisioning)
- pot include Salt/Puppet ca agent de executie remote.
- permit rularea de audit-uri de securitate folosind openscap.
Contra:
- necesita resurse dedicate (cpu/ram/hdd)
- complex de instalat/configurat/actualizat
Din categoria aplicatiilor de patch management folosite amintesc: Spacewalk, Redhat Satellite, Uyuni, Foreman + Katello, SUSE Manager.
Spacewalk / Redhat Satellite 5.x / SUSE Manager 3.x
Spacewalk este proiectul upstream pentru:
- Redhat Satellite < 6.x (fiind sustinut intens de Redhat pana la versiunile 5.x).
- SUSE Manager < 4.0
Acesta poate fi utiliat pentru sistemele bazate pe RHEL, Centos, Scientific Linux, Oracle Linux, SUSE Linux, OpenSUSE ce folosesc pachetele RPM.
Putem prin Spacewalk sa generam fisiere kickstart pentru configurarea automata la instalarea sistemului de operare.
Pentru executia comenzilor pe sistemele administrate se instaleaza agenti dedicati care verifica si executa periodic (la fiecare 4 ore) task-urile programate.
Din pacate in ultimii ani dezvoltarea aplicatiei a scazut poate din cauza ca Redhat nu l-a mai folosit pentru Satellite 6.x. SUSE si-a aratat interesul in a prelua si sustine proiectul dar fara success.
Uyuni / SUSE Manager 4.0
Ca urmare a evolutiei proiectului Spacewalk, SUSE a decis in iunie 2018 initierea proiectului Uyuni pornind de la Spacewalk si care va fi upstream pentru noua versiune SUSE Manager 4.
Incepand cu versiunea 3 la SUSE Manager s-a inclus Salt ca sistem de executie remote avand avantaje evidente (executie aproape instanta a comenzilor).
Cu Uyuni se poate adminstra un cluster Kubernetes (creare si deploy containere) sau host KVM (VM).
Am inceput sa utilizez Uyuni pe o infrastructura de peste 50 de sisteme cu rezultate foarte bune si fara mari probleme - aplicatia fiind inca in beta de dezvoltare (noua versiune se asteapata in cateva luni).
Foreman + Katello / Redhat Satellite 6.x
Foreman este folosit de multa vreme pentru administrarea/mionitoriarea infrastructurii fizice sau virtuale, server DHCP si DNS, executie remote folosind in special Puppet, etc.
Pentru patch managemet exista un plugin dedicat Katello care permite crearea de repo-uri local pentru yum si puppet.
Interfata este diferita ca concept de Spacewalk si poate fi uneori greoaie.
Pentru instalare si rulare Foreman are nevoie de minim 8Gb de RAM si este scrisa in Ruby
Redhat a decis utilizarea ca sursa pentru Satellite 6 a proiectului Foreman si a angajat chiar cativa core developeri.
Notificari actualizari / patch-uri
Toate aceste aplicatii permit importul eratelor publicate pentru pachetele rpm, identificarea sistemelor cu probleme si afisarea patch-urilor disponibie. Afisarea patch-urilor disponibile pe sisteme in Uyuni:
Sper ca prin acest articol sa analizati beneficiile pe care le aduce o aplicatie de patch management in infrastructura pe care o administrati.