Szerverek közti szinkron

Fórumok

A következő problémára keresek megoldásokat:

Vannak kiszolgáló szerverek (mindegyiken web, mail stb), amikkel kapcsolatos fejlesztések folyamatosan zajlanak: bizonyos scriptek frissülnek, beállítások módosulnak.
Gyakorlatilag van egy tesztrendszer és a kipróbált módosítások kerülnének az éles szerverekre. Mindegyikre ugyanaz.

Az oprendszer CentOS.
Mi lehetne a fent leírt procedúrának a legegyszerűbb megvalósítása?
rsync? sima másolás? valahogy máshogy?

A hozzászólásokat előre is köszönöm.

üdv,
Dávid

Hozzászólások

szerintem az rsync teljesen jo

ASK Me No Questions, I'll Tell You No Lies

Az rsync sztem nem lesz jó nektek, hacsak nem tudjátok garantálni, hogy a scriptek akkor nem futnak amikor rsynceltek. Gondolj bele, mi lenne a következménye annak, ha éppen írsz egy fájlba, amit máshol meg megpróbálnak végrehajtani? Nem tudom, milyen jellegű dolgokról beszélünk, ha daemonokról akkor mondjuk ez lehet, hogy nem probléma, de érdemes rá figyelni. Egy lockfile létrehozásával ez a probléma kiküszöbölhető, ezt cselekedtük mi is (habár nálunk PHP-ról volt szó, biztos ami tuti).

Az rsync-et nem javaslom. Nem tudod ugyanis megmondani, hogy explicit módon mi kerül telepítésre/módosításra, és visszaszedni sem olyan egyszerű a problémás módosítást.
Ahogy anno mi csináltuk, az a következőképp nézett ki: A fejlesztői környezetben megcsináltuk a módosítást, az új kódot, majd az, aki fejlesztette, írt mellé egy telepítési leírást (melyik hiba javítását, illetve melyik újonnan megrendelt funkciót tartalmazza a módosítás, milyen fájlokat, illetve adatbázis-elemeket rak fel, illetve módosít, továbbá hogy hogyan kell a javítást telepíteni (x könyvtárba kicsomagol, y fájlt futtat, stb.).
Ezen felül a kapcsolódó módosításokat, másolásokat, szükséges egyéb tevékenységeket elvégző telepítőszkriptet is megírta, majd az egészet összecsomagolta egy fájlba.
Ez a telepítőcsomag került felmásolásra a tesztkörnyezetre (amit bármikor újra lehetett húzni az éles mentéséből), és ott a tesztrendszer üzemeltetője elvégezte a csomag telepítését, a leírás alapján. Ha sikeres volt, a szintén a csomag részét képező tesztleírás alapján elvégezték a funkcionális- és egyéb teszteket, és ha sikeres v olt, akkor a csomag kapott egy tesztjegyzőkönyvet, és ment az élesre, ahol az üzemeltetők felrakták (a leírás szerint), és mindenki boldog volt vele.

Ami a lényeg: a változáskezelést úgy kell csinálni, akár egy sornyi módosítás esetén is(!), hogy pontosan követhető legyen, és szükség esetén a rollback-kel se legyen gond.

Az éles környezetek, a csomagot elsőként megkapó szerverről elvileg kaphatnák rsync-kel a dolgokat, a kérdés csak az, hogy mennyire kell konzisztensnek lenni a telepítésnek, hiszen az rsync darabonként mazsolázza végig a fájlokat, és viszi át a módosításokat, azaz lehet, hogy három módosult állományból az egyik már az új, a másikba épp beleírt, a harmadikhoz meg még hozzá sem szagolt...

A "hol tárolja" kérdésre jó válasz lehet, a hogyan-ra (konzisztencia, visszakövethetőség, rollback, stb.) csak megfelelő doksikkal, illetve folyamatokkal nyakon öntve használható, és gondolom ez volt a kérdés lényegi része...

subversion
--
unix -- több, mint kód. filozófia.
Life is feudal