Sziasztok!
Deploy rendszert keresek, amivel webes fejlesztésnél automatikusan ki lehet pakolni a kódot a szerverre. Olyan kellene, ami integrálható Git hook-okkal. A pontos igény az lenne, hogy amikor a fejlesztő push-ol a repóba, akkor a fájlok kerüljenek ki egy adott szerverre, hogy melyikre, azt a push-olt branch alapján kellene kiválasztani. Mivel vannak sub-repók is, ezért ha az adott repóhoz nem tartozik ilyen beállítás, akkor a külső repót vegye alapul.
És persze a „szokásos”: Fusson Windows-on is, lehetőleg legyen opensource és használjon rsync-et, lehessen megadni kihagyandó könyvtárakat stb.
Amit néztem eddig, az a puppet, capistrano, ansible, de nem vagyok biztos abban, hogy ezek lennének a megfelelő eszközök.
- 7868 megtekintés
Hozzászólások
jenkins (CI)
capistrano
fabric
...stb
Van meg jo par.
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer
- A hozzászóláshoz be kell jelentkezni
Szia!
Attól függ milyen nyelven íródott a projekt.
A Phing-et megnézheted, főképp PHP projektekhez, még decemberben írtam egy ismertető cikket róla itt:
Bevezetés a Phing használatába
Ezen kívül létezik még Apache Ant (a Phing is ezen alapul), Java-s projektekhez.
Az Ansible, Puppet nem feltétlenül a legjobb választás, azok inkább másra valóak, a Capistranot pedig inkább Rails-es projektekhez választanám.
Nekem egyébként a kiemelt érdeklődési körömbe tartozik a téma (build, deploy folyamatok, kód analitikai eszközök, minőségbiztosítás), szóval ha érdekel, dobj egy privát üzenetet és szívesen megosztom veled a tapasztalataimat.
- A hozzászóláshoz be kell jelentkezni
Szia!
Ezek PHP-s projektek, köszönöm a cikket, már a bevezetője alapján is jónak igérkezik. :) Írok üzenetet! :)
-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)
- A hozzászóláshoz be kell jelentkezni
Ment válasz. :)
- A hozzászóláshoz be kell jelentkezni
ant miert?
tompos
- A hozzászóláshoz be kell jelentkezni
Akkor Maven.
- A hozzászóláshoz be kell jelentkezni
Akkor Gradle.
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ahogy en csinaltam:
Kod/config bemegy SVN-be
Puppet server 5 percenkent csinal egy automatikus svn co-t egy konyvtarba
Puppet recipek hostokhoz rendelve mit szedjen ki, melyik PUPPET-serveren levo konyvtarhoz szinkronizaljon (amit a szerver ugye 5 percenkent frissit - cron)
clienseken cronbol 15 percenkent lefut a puppet cliens es helyrehozza magat ha valaki beleronditott lokalisan a configkba fileokba stb...
Puppet recipek meg tudod irni h ha valami konfig valtozott pl ujrainditsa a processzt, stb...
Eredmeny - tobbszaz szerver SVN repobol szinkronban tartva, beleertve ssh kulcsok, user profilok, scriptek, installalt appok stv...
Upgrade-nal pl kijavitok egy runningversion -> "xx.yy" -nt a puppet/etc/nodes megfelelo hostjai szamara a laptopomon, SVN commit, es 15 perc mulva megvan az update 300 hoston...
Ennel kicsit bonyolultabb es kell egy kis ido amig megirod a recipeket, classokat stb, de utana mar remecceru :)
- A hozzászóláshoz be kell jelentkezni
Imadom a puppetett de erre a feladatra sajnos szerintem pont nem jo :).
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer
- A hozzászóláshoz be kell jelentkezni
Ha nincs nagy kockázata php-nak bash script futattási jogot adni, akkor szerintem ez egy gyors és platform független megoldás.
http://net.tutsplus.com/tutorials/other/the-perfect-workflow-with-git-g…
Nálunk a következő képpen megy:
git push -> github post receive meghívja a developer szervert -> szerveren lefut a bash script amit lefuttatja a 'git clone' -t és checkout az apache www folderbe. Néha belenyúlok a bash script-be hogy okosabb legyen, branch/verzió kezeléssel lehet bővíteni, mert a github API elég sok mindent átad. Éles szerveren természetesen már manuálisan ssh és git clone.
Előny: tudsz nagyon sok projektet egyszerűen, akár branchenként elérhetővé tenni.
Hátrány: php bash scriptet futtat.
Update, mert kihagytam: php cron nyomat egy git clone-t a webszerveren 5-10 percenként és akkor nem kell bash scriptet hívogatni commitonként.
- A hozzászóláshoz be kell jelentkezni
Eddig azt hittem, ilyen csak a meseben letezik.
Plane, h van aki a *perfect* jelzovel illeti.
- A hozzászóláshoz be kell jelentkezni
Ezt hivjak ganyolasnak es elcseszet deployolasnak.
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer
- A hozzászóláshoz be kell jelentkezni
Chef?
http://www.getchef.com/
___________________________
http://lorem.hu
Az emberi tudás mindenkié!
- A hozzászóláshoz be kell jelentkezni
Az hogy a Puppet erre nem valo, az nem igaz, legalabbis egy nagyobb cegnel igy mukodtetjuk.:)
Valamilyen verziokezelo rendszerrel kezeled, megcimkezed a serveredre kimeheto fileokat, itt megfelel barmi olyan verziokezelo, ami kezel taget, cimkezest, stb.
Megirod a scriptedet, hogy ezekbol a fileokbol keszitsen egy debian csomagot, illetve verzioszamot irja bele a puppet confba, igy amit elerheto a debian repoban az uj csomag atomatikusan telepul az adott vezioszammal.
Termeszetesen az egesz rollout elofeltetele egy QA rendszer, megfelelo teszttel. (Hogy ne telepitsen rossz csomagot eles szerverre.)
Udv
- A hozzászóláshoz be kell jelentkezni