Aplicatii pentru managementul configuratiilor

Postat la Thu 11 October 2018 in tutoriale

Aplicatiile pentru managementul configuratiilor ori Configuration Management (CM) sunt acele unelte ce permit administrarea configuratiilor pe o multitudine de servere fizice sau virtuale (indiferent de OS) in functiune sau noi lansate (pornite).

Mai exact ce fac ele:

  • instaleaza aplicatii pe servere
  • instaleaza actualizari si patch-uri de securitate
  • genereaza si actualizeaza configuratiile aplicatiilor,
  • administreaza serviciile ce ruleaza pe servere
  • administreaza useri pe servere
  • administreaza baze de date
  • administreaza echipamente de retea

iar penru cei ce le utilizeaza:

  • reduce repetabilitatea operatiilor
  • ruleaza simultan pe mai multe masini
  • simplifica generarea configuratiilor prin utilizarea de sabloane si variabile
  • reduc problemele produse de erorile de configurare

Ce avantaje aduce pentru dezvoltatori: permite replicarea unei infrastructuri din productie (la o scara mai mica) perfect functionala pe statia locala (laptop) intr-un timp foarte scurt.

Cele mai cunoscute si utilizate aplicatii de acest gen sunt:

Ca mod de functionare acestea pot fi:

  • fara agenti ce ruleaza pe masinile controlate - Ansible
  • cu agenti ce ruleaza pe masinile controlate - Saltstack, Puppet, Chef

In varianta fara agenti, masina master se conecteaza la masinile slave (client) - prin ssh - si ruleaza comenzile necesare pe acestea.

Avantaje:

  • nu este necesar instalarea de soft suplimentar pe masinile slave
  • usor de folosit la un numar mic si mediu de masini gestionate
  • nu necesita servicii suplimentare pe masina de control

Dezavantaje:

  • e necesara adaugarea cheii publice pentru conectarea la masinile slave
  • la numar mare de masini gestionate timpii de executie pot creste, masina master trebuie sa se conecteze la fiecare slave pentru rularea comenzilor.

Cand exista agenti pe masinile slave acestia sunt conectati la masina master si executa comenzile primite

Avantaje:

  • permit gestionarea facila unui numar mare de masini slave.
  • timpi redusi de propagare a modificarilor prin executia in paralel pe masinile slave a comenzilor.
  • masinile slave sunt mereu conectate la masina master

Dezavantaje

  • e necesar instalarea aplicatiei client pe toate masinile slave.
  • ruleaza servicii suplimentare pe masina master si masinile slave

Instalarea cheilor publice de ssh sau a aplicatiilor client pe masinile slave poate fi realizata in timpul operatiilor de instalare OS prin cloud-init (pe instantele de cloud) sau kickstart.

Voi reveni cu articole legate de Ansible si Salt cu care am lucrat incluzand exemple de implementare.

Seria de articole cuprinde: