{"id":1741,"date":"2013-06-06T07:54:43","date_gmt":"2013-06-06T07:54:43","guid":{"rendered":"http:\/\/blog.mageia.org\/ro\/?p=1741"},"modified":"2014-12-03T12:29:40","modified_gmt":"2014-12-03T12:29:40","slug":"ei-fac-mageia-echipa-sysadmin-instalarea-si-configurarea-aplicatiilor-pe-serverele-mageia","status":"publish","type":"post","link":"https:\/\/blog.mageia.org\/ro\/2013\/06\/06\/ei-fac-mageia-echipa-sysadmin-instalarea-si-configurarea-aplicatiilor-pe-serverele-mageia\/","title":{"rendered":"Ei fac Mageia \u2013 echipa Sysadmin: instalarea \u0219i configurarea aplica\u021biilor pe serverele Mageia"},"content":{"rendered":"<p>\u00cen cadrul proiectului Mageia <a href=\"https:\/\/wiki.mageia.org\/en\/Sysadmin_Team\">echipa sysadmin<\/a> (administratorii de sistem) este responsabil\u0103 de instalarea, configurarea \u0219i mentenan\u021ba \u00eentregii infrastructuri, at\u00eet pentru utilizatori c\u00eet \u0219i pentru contribuitori. Pentru a ajuta publicul s\u0103 \u00een\u021beleag\u0103 mai bine ce face aceast\u0103 echip\u0103,\u00a0 c\u00eet \u0219i s\u0103 schimb\u0103m anumite idei cu ceilal\u021bi administratori de sistem, vom publica o serie de articole \u00een care vom explica exact ceea ce facem.<\/p>\n<p>Sarcinile noastre principale s\u00eent:<\/p>\n<ul>\n<li>Instalarea serverelor \u00een centrul de calcul<\/li>\n<li>Instalarea \u0219i configurarea diverselor aplica\u021bii pe serverele Mageia<\/li>\n<li>Diferite sarcini de administrare, precum actualizarea autoriza\u021biilor de acces ale utilizatorilor, \u00eenl\u0103turarea pachetelor, deplasarea pachetelor \u00eentre depozite, etc.<\/li>\n<li>Dezvoltarea \u0219i mentenan\u021ba a diverse unelte, precum componentele sistemului de cl\u0103dit (de compilat pachete).<\/li>\n<\/ul>\n<p>\u00cen acest prim articol se va prezenta procesul utilizat pentru instalarea \u0219i configurarea aplica\u021biilor pe serverele Mageia, se vor explica motivele pentru care facem acest lucru \u0219i de ce a\u021bi putea utiliza un proces similar pentru gestionarea propriilor voastre servere.<\/p>\n<p>Procesul utilizat pentru configurarea aplica\u021biilor pe serverele Mageia se rezum\u0103 astfel:<\/p>\n<ul>\n<li>Toate aplica\u021biile s\u00eent instalate cu ajutorul pachetelor<\/li>\n<li>Toate pachetele s\u00eent compilate cu ajutorul sistemului de cl\u0103dit<\/li>\n<li>Toate pachetele s\u00eent instalate \u0219i configurate cu utiliz\u00eend puppet<\/li>\n<\/ul>\n<p>Pentru majoritatea \u00eempachetatorilor Mageia motivele s\u00eent evidente de ce proced\u0103m a\u0219a. Acest articol va \u00eencerca s\u0103 explice aceste motive acelora care nu s\u00eent neap\u0103rat \u00eempachetatori.<\/p>\n<h2>Compilarea \u0219i instalarea aplica\u021biilor<\/h2>\n<p>Una din sarcinile cele mai obi\u0219nuite ale administratorului de sistem este instalarea sau actualizarea aplica\u021biilor. Lucru u\u0219or de f\u0103cut c\u00eend distribu\u021bia voastr\u0103 Linux v\u0103 pune la dispozi\u021bie pachetele aplica\u021biilor pe care dori\u021bi s\u0103 le utiliza\u021bi: acestea pot fi instalate cu ajutorul gestionarului de pachete. Totu\u0219i, \u00een multe cazuri aplica\u021biile de care ave\u021bi nevoie nu s\u00eent disponibile sau nu s\u00eent la versiunea pe care dori\u021bi s-o utiliza\u021bi.<\/p>\n<h3>Compilarea manual\u0103<\/h3>\n<p>Mul\u021bi oameni cred c\u0103 solu\u021bia cea mai simpl\u0103 \u00een acest caz este desc\u0103rcarea codului surs\u0103 a aplica\u021biei, respectarea instruc\u021biunilor de compilare \u0219i executarea scriptului de instalare sau a fi\u0219ierului Makefile. Totu\u0219i, c\u00eend face\u021bi asta pute\u021bi \u00eent\u00eelni mai multe probleme:<\/p>\n<ul>\n<li><strong>Instalarea dependen\u021belor de compilare<\/strong><br \/>\nTrebuie s\u0103 ave\u021bi deja instalate \u00een sistem toate dependen\u021bele necesare compil\u0103rii. \u00cen majoritatea cazurilor v\u0103 ve\u021bi dori s\u0103 compila\u021bi aplica\u021biile pe un server de cl\u0103dit (sau de compilare) dedicat pentru a evita s\u0103 instala\u021bi prea multe dependen\u021be de compilare pe ma\u0219ina de destina\u021bie, iar apoi s\u0103 copia\u021bi binarele rezultate pe ma\u0219inile voastre.<\/li>\n<li><strong>Gestionarea dependen\u021belor<\/strong><br \/>\nDac\u0103 utiliza\u021bi arhive tar sau un server NFS pentru a distribui binarele aplica\u021biilor pe ma\u0219inile de destina\u021bie, va trebui s\u0103 g\u0103si\u021bi \u0219i s\u0103 instala\u021bi dependen\u021bele necesare pe fiecare din ma\u0219inile unde vor fi utilizate aplica\u021biile. Apoi va trebui s\u0103 v\u0103 nota\u021bi undeva lista dependen\u021belor, astfel \u00eenc\u00eet s\u0103 \u0219ti\u021bi ce trebuie instalat c\u00eend ve\u021bi dori s\u0103 utiliza\u021bi acele aplica\u021bii pe un calculator nou.<\/li>\n<li><strong>Actualizarea aplica\u021biilor<\/strong><br \/>\nC\u00eend compila\u021bi o aplica\u021bie, este nevoie \u00een mod frecvent s\u0103 trece\u021bi anumite op\u021biuni specifice \u00eentr-un script sau \u00eentr-un fi\u0219ier de configurare. Unele aplica\u021bii pot fi mai dificil de compilat, sau pot necesita anumite opera\u021bii sau configura\u021bii complexe. C\u00eend actualiza\u021bi o aplica\u021bie la o versiune mai recent\u0103, v\u0103 ve\u021bi dori s\u0103 p\u0103stra\u021bi aceea\u0219i configura\u021bie de compilare ca mai \u00eenainte, pentru a evita introducerea de modific\u0103ri nedorite ce pot provoca rupturi. Toate aceste lucruri nu s\u00eent u\u0219or de \u021binut minte, iar dac\u0103 nu le face\u021bi zilnic risca\u021bi s\u0103 le uita\u021bi. Prin urmare, este de preferat s\u0103 salva\u021bi instruc\u021biunile de compilare \u00eentr-un fi\u0219ier pentru a le putea reutiliza data viitoare c\u00eend ve\u021bi avea nevoie s\u0103 actualiza\u021bi aplica\u021bia.<\/li>\n<li><strong>Aplicarea peticelor corective<\/strong><br \/>\nUneori aplica\u021biile necesit\u0103 mici modific\u0103ri pentru a putea fi compilate, executate, sau pentru a avea o func\u021bionalitate nou\u0103. Este posibil s\u0103 aplica\u021bi aceste modific\u0103rile \u00eenainte de lansarea procesului de compilare. Totu\u0219i, aceste modific\u0103ri se pot pierde la actualizarea aplica\u021biei cu o surs\u0103 nou\u0103. Pentru a putea aplica acelea\u0219i modific\u0103ri versiunilor ulterioare, va trebui s\u0103 salva\u021bi acele modific\u0103ri undeva sub forma unui petic corectiv.<\/li>\n<li><strong>\u00centre\u021binerea unui jurnal de modific\u0103ri<\/strong><br \/>\nEste u\u0219or s\u0103 ui\u021bi de ce s-au f\u0103cut anumite modific\u0103ri sau de ce s-a actualizat o aplica\u021bie anume. Mai ales dac\u0103 nu s\u00eente\u021bi singur \u0219i lucra\u021bi \u00een echip\u0103, \u00een acest caz v\u0103 dori\u021bi s\u0103 \u00eentre\u021bine\u021bi un jurnal al modific\u0103rilor aduse aplica\u021biilor pe care le-a\u021bi compilat \u0219i instalat.<\/li>\n<li><strong>Cunoa\u0219terea versiunii aplica\u021biei instalate, dezinstalarea sau actualizarea aplica\u021biei<\/strong><br \/>\nCunoa\u0219terea versiunii aplica\u021biei instalate \u00een momentul de fa\u021b\u0103 poate fi foarte util\u0103. Este de asemenea foarte practic s-o pute\u021bi dezinstala, sau s\u0103 instala\u021bi o versiune diferit\u0103 pentru testare \u0219i depanare, sau s\u0103 reveni\u021bi la o versiune anterioar\u0103 \u00een caz de probleme. Dac\u0103 utiliza\u021bi procedura standard de instalare, majoritatea aplica\u021biilor vor instala fi\u0219iere \u00een multe locuri diferite \u00een sistem. Este dificil, dac\u0103 nu chiar imposibil, s\u0103 \u0219ti\u021bi ce fi\u0219iere s\u00eent instalate, unde anume \u0219i care este versiunea utilizat\u0103. C\u00eend instala\u021bi o nou\u0103 versiune a aplica\u021biei, scripturile de instalare vor suprascrie fi\u0219ierele vechi, dar nu vor \u00eenl\u0103tura \u0219i fi\u0219ierele care nu mai s\u00eent utilizate, fapt care poate crea confuzie sau probleme. Unii utilizatori vor \u00eencerca s\u0103 evite aceste nepl\u0103ceri instal\u00eend fiecare aplica\u021bie \u00een propriul ei director, indic\u00eend num\u0103rul versiunii \u00een numele directorului. Acest lucru poate crea alte probleme: majoritatea aplica\u021biilor nu au fost concepute ca s\u0103 fie instalate \u00een acest fel \u0219i va fi nevoie de opera\u021biuni complexe pentru a le putea face s\u0103 func\u021bioneze. Iar selectarea versiunii care trebuie utilizat\u0103 va necesita folosirea unor leg\u0103turi simbolice complexe sau actualizarea variabilelor de cale. Acest lucru devine \u0219i mai complicat c\u00eend instala\u021bi diferite aplica\u021bii cu dependen\u021be \u00eentre ele. Pentru a evita acest gen de probleme, cea mai bun\u0103 solu\u021bie este s\u0103 utiliza\u021bi c\u00eeteva unelte care v\u0103 permit s\u0103 urm\u0103ri\u021bi ce fi\u0219iere s\u00eent instalate, unde \u0219i \u00een ce versiune.<\/li>\n<\/ul>\n<h3>Utilizarea pachetelor<\/h3>\n<p>Pentru a rezolva toate aceste probleme va trebui s\u0103 folosi\u021bi unelte specifice. Poate v\u0103 dori\u021bi chiar s\u0103 v\u0103 scrie\u021bi propriile scripturi \u0219i unelte pentru a gestiona toate aceste aspecte. \u00cens\u0103 este mult mai recomandat s\u0103 utiliza\u021bi unelte care exist\u0103 deja, dec\u00eet s\u0103 v\u0103 utiliza\u021bi propriile unelte specifice. Cele mai potrivite unelte pentru a rezolva aceste probleme s\u00eent gestionarii de pachete.<\/p>\n<p>Dac\u0103 nu a\u021bi creat pachete p\u00een\u0103 acum va trebui s\u0103 acorda\u021bi pu\u021bin\u0103 aten\u021bie ca s\u0103 \u00eenv\u0103\u021ba\u021bi cum se face. V\u0103 vor economisi destul de mult timp. Utilizarea pachetelor pentru compilarea \u0219i instalarea aplica\u021biilor prezint\u0103 multe avantje:<\/p>\n<ul>\n<li><strong>Instalarea dependen\u021belor de compilare<\/strong><br \/>\nPachetele v\u0103 permit s\u0103 compila\u021bi aplica\u021biile pe o ma\u0219in\u0103 dedicat\u0103, iar pachetele rezultate vor putea fi astfel instalate pe ma\u0219inile de destina\u021bie f\u0103r\u0103 s\u0103 mai fi\u021bi nevoi\u021bi s\u0103 instala\u021bi dependen\u021bele necesare compil\u0103rii. Specifica\u021biile pachetului surs\u0103 v\u0103 permit de asemenea s\u0103 defini\u021bi lista dependen\u021belor de compilare, astfel \u00eenc\u00eet acestea s\u0103 fie instalate automat pe ma\u0219ina de cl\u0103dit \u00een momentul compil\u0103rii pachetului \u0219i eventual s\u0103 le pute\u021bi dezinstala dup\u0103.<\/li>\n<li><strong>Gestionarea automat\u0103 a dependen\u021belor<\/strong><br \/>\nUrm\u0103rirea dependen\u021belor nu este mereu o sarcin\u0103 u\u0219oar\u0103 \u0219i poate fi consumatoare de timp. Din fericire majoritatea sistemelor de gestionare a pachetelor vor analiza fi\u0219ierele incluse \u00een pachet pentru a detecta \u00een mod automat dependen\u021bele aplica\u021biei. \u00cen mod normal bibliotecile perl, python, ruby, PHP, C\/C++ s\u00eent detectate \u00een mod automat \u00een timpul compil\u0103rii. Pentru dependen\u021bele care nu pot fi detectate automat, exist\u0103 posibilitatea de a defini \u00een mod explicit dependen\u021bele direct \u00een pachet. Toate acele dependen\u021be vor putea fi instalate automat de gestionarul de pachete \u00een cursul instal\u0103rii.<\/li>\n<li><strong>Actualizarea aplica\u021biei<\/strong><br \/>\nPachetul surs\u0103 con\u021bine instruc\u021biunile de compilare. C\u00eeteodat\u0103 procesul utilizat pentru compilarea aplica\u021biei poate evolua, \u00eens\u0103 \u00een majoritatea cazurilor acesta r\u0103m\u00eene la fel pentru toate versiunile aplica\u021biei. \u00cen acest caz, actualizarea aplica\u021biei este la fel de simpl\u0103 ca actualizarea num\u0103rului versiunii \u00een sursa pachetului \u0219i tastarea comenzii de lansare a compil\u0103rii. Recompilarea aplica\u021biei cu op\u021biuni diferite este un lucru care poate fi f\u0103cut cu u\u0219urin\u021b\u0103.<\/li>\n<li><strong>Aplicarea peticelor corective<\/strong><br \/>\nPachetele surs\u0103 v\u0103 permit s\u0103 include\u021bi petice corective care vor fi aplicate \u00een cursul compil\u0103rii pachetului. \u00cen acest fel pute\u021bi \u00eentre\u021bine mai u\u0219or lista modific\u0103rilor aduse aplica\u021biei. C\u00eend actualiza\u021bi aplica\u021bia la o versiune mai recent\u0103, acelea\u0219i modific\u0103ri pot fi reaplicate cu u\u0219urin\u021b\u0103.<\/li>\n<li><strong>\u00centre\u021binerea unui jurnal de modific\u0103ri<\/strong><br \/>\nPachetele con\u021bin un jurnal de modific\u0103ri pe care-l pute\u021bi utiliza pentru a explica motivele modific\u0103rilor f\u0103cute, astfel to\u021bi membrii echipei \u0219tiu de ce a\u021bi f\u0103cut o modificare acum 6 luni. Dac\u0103 utiliza\u021bi o unealt\u0103 de gestionare a versiunilor precum git sau subversion pentru gestionarea pachetelor surs\u0103 (lucru recomandat), pute\u021bi utiliza jurnalul de comiteri pe post de jurnal de modific\u0103ri.<\/li>\n<li><strong>Cunoa\u0219terea versiunii aplica\u021biei instalate, dezinstalarea \u0219i actualizarea aplica\u021biei<\/strong><br \/>\nPachetele v\u0103 permit s\u0103 urm\u0103ri\u021bi versiunea aplica\u021biei instalate \u00een sistem. Ele v\u0103 permit de asemenea s\u0103 instala\u021bi, dezinstala\u021bi sau s\u0103 actualiza\u021bi cu u\u0219urin\u021b\u0103 aplica\u021biile sau s\u0103 afla\u021bi care pachet con\u021bine un anume fi\u0219ier.<\/li>\n<\/ul>\n<h2>Construirea pachetelor \u00eentr-un mediu curat \u0219i distribuirea pachetelor<\/h2>\n<h3>De ce ar trebui s\u0103 utiliza\u021bi un sistem de cl\u0103dit<\/h3>\n<p>Gestionarul de pachete este o unealt\u0103 foarte interesant\u0103 pentru gestionarea compil\u0103rii \u0219i instal\u0103rii aplica\u021biilor, \u00eens\u0103 nu esre suficient. Acesta va compila aplica\u021biile utiliz\u00eend uneltele \u0219i bibliotecile disponibile \u00een sistem, dup\u0103 instalarea listei dependen\u021belor de compilare.<\/p>\n<p>Exist\u0103 totu\u0219i c\u00eeteva inconveniente dac\u0103 proceda\u021bi a\u0219a:<\/p>\n<ul>\n<li><strong>Suport multi-distribu\u021bii<\/strong><br \/>\nC\u00eeteodat\u0103, \u00een infrastructur\u0103 se pot \u00eent\u00eelni distribu\u021bii diferite, sau versiuni diferite ale aceleia\u0219i distribu\u021bii. Un pachet construit pentru o distribu\u021bie nu func\u021bioneaz\u0103 neap\u0103rat pe o alt\u0103 distribu\u021bie din cauz\u0103 c\u0103 versiunile unor componente s\u00eent diferite sau incompatibile. Pentru a evita aceste probleme, pachetele trebuiesc compilate cu aceea\u0219i distribu\u021bie pe care vor fi utilizate.<\/li>\n<li><strong>Mediu de compilare curat<\/strong><br \/>\nPachetul surs\u0103 include o list\u0103 cu dependen\u021bele de compilare ce trebuiesc instalate pentru a construi pachetul. Totu\u0219i, c\u00eend construi\u021bi pachetul pe ma\u0219ina proprie sau pe un server de compilare specific, \u00een general exist\u0103\u00a0deja \u0219i alte pachete instalate care poten\u021bial vor putea fi utilizate \u00een timpul compil\u0103rii. Prin urmare este foarte u\u0219or de uitat c\u0103 acele pachete erau deja instalate, s\u0103 uita\u021bi s\u0103 le include\u021bi \u00een lista de dependen\u021be de compilare \u0219i s\u0103 nu v\u0103 da\u021bi seama de aceast\u0103 problem\u0103 pentru simplul fapt c\u0103 pe ma\u0219ina voastr\u0103 compilarea func\u021bioneaz\u0103. S-ar putea ca sistemul vostru s\u0103 aib\u0103 o configura\u021bie specific\u0103 sau actualiz\u0103ri de care a\u021bi uitat c\u0103 le-a\u021bi instalat \u0219i care pot influen\u021ba compilarea pachetului. Problema nu va fi remarcat\u0103 p\u00een\u0103 c\u00eend altcineva va avea nevoie s\u0103 compileze pachetul pe un alt sistem. Dac\u0103 vre\u021bi s\u0103 v\u0103 m\u0103ri\u021bi \u0219ansele de a putea reproduce recompilarea unui pachet pe viitor, va trebui s\u0103 utiliza\u021bi un mediu de compilare curat pentru construirea pachetelor. De obicei acest lucru se face prin crearea, pentru fiecare compilare de pachet, a unui nou chroot minimalist pentru distribu\u021bia selectat\u0103.<\/li>\n<\/ul>\n<p>Odat\u0103 ce pachetul a fost creat, va trebui copiat pe ma\u0219inile pe care va fi instalat. Distribu\u021biile ofer\u0103 \u00een mod normal unelte dedicate pentru acest lucru (apt-get pentru Debian, urpmi pentru Mageia, yum pentru Fedora, etc.). Aceste unelte vor desc\u0103rca \u0219i instala \u00een mod automat pachetul \u0219i dependen\u021bele sale de pe un server ce pune la dispozi\u021bie un depozit de pachete. Pentru a putea utiliza aceste unelte trebuie s\u0103 configura\u021bi un depozit de pachete, care este un director ce con\u021bine toate pachetele disponibile \u0219i ceva metadate.<\/p>\n<p>Toate acestea pot fi efectuate \u0219i manual, totu\u0219i este mult mai indicat s\u0103 configura\u021bi un sistem de cl\u0103dit care va gestiona totul \u00een mod automat. Utilizarea unui sistem de cl\u0103dit are multe avantaje:<\/p>\n<ul>\n<li><strong>Mai pu\u021bin predispus erorilor<\/strong><br \/>\nConstruirea pachetului \u00eentr-un chroot, copierea fi\u0219ierelor rezultate \u00een depozitul corect \u0219i regenerarea metadatelor depozitului nu este prea complicat, dar ia mult timp \u0219i este predispus erorilor dac\u0103 este efectuat manual. Folosirea unui sistem de cl\u0103dit automat economise\u0219te timp \u0219i evit\u0103 multe erori.<\/li>\n<li><strong>Mai u\u0219or<\/strong><br \/>\nDac\u0103 g\u0103si\u021bi dificil\u0103 \u0219i consumatoare de timp sarcina compil\u0103rii \u0219i instal\u0103rii pachetelor \u00eentr-un depozit, voi \u00een\u0219iv\u0103 sau al\u021bi membri ai echipei voastre ve\u021bi fi tenta\u021bi s-o evita\u021bi \u0219i s-o face\u021bi utiliz\u00eend o alt\u0103 solu\u021bie.<\/li>\n<li><strong>Unelte pentru controlul versiunilor \u0219i trasabilitate<br \/>\n<\/strong>Se recomand\u0103 utilizarea uneltelor de controlul versiunilor precum git sau subversion pentru a gestiona modific\u0103rile din pachetele surs\u0103. Un SCM conectat la un sistem de cl\u0103dit va asigura c\u0103 orice pachet disponibil \u00een depozitul de pachete va fi disponibil \u0219i \u00een depozitul de gestiune al surselor, oferidu-v\u0103 astfel trasabilitatea pachetelor.<\/li>\n<li><strong>Impunerea unei politici de \u00eempachetare<\/strong><br \/>\nS\u00eent disponibile c\u00eeteva unelte pentru impunerea unei politici de \u00eempachetare (rpmlint pentru rpm, lintian pentru deb). Posedarea unei politici de \u00eempachetare este util\u0103 pentru producerea de pachete coerente. Sistemul de cl\u0103dit poate fi configurat s\u0103 execute automat teste de verificare a conformit\u0103\u021bii cu politica de \u00eempachetare \u0219i s\u0103 refuze \u00eenc\u0103rcarea pachetelor necorespunz\u0103toare.<\/li>\n<li><strong>Supraveghere<\/strong><br \/>\nSistemul de cl\u0103dit permite supravegherea ultimelor compil\u0103ri. O interfa\u021b\u0103 web ofer\u0103 un raport al ultimei compil\u0103ri \u0219i jurnalele de compilare. O list\u0103 de difuziune poate fi utilizat\u0103 penru a primi notific\u0103ri de compilare. C\u00eend lucra\u021bi \u00een echip\u0103, acest lucru permite tuturor membrilor echipei s\u0103 urm\u0103reasc\u0103 ultimele modific\u0103ri.<\/li>\n<li><strong>Automatizare<\/strong><br \/>\nAnumite pachete specifice pot necesita executarea unor sarcini suplimentare c\u00eend s\u00eent actualizate. Trimiterea unui email, extragerea unor fi\u0219iere pentru a actualiza un sit web sau alte sarcini pot fi scriptate ca s\u0103 poat\u0103 fi efectuate automat c\u00eend un pachet specific este actualizat. Aceasta este metoda utilizat\u0103 pentru a extrage din arborescen\u021ba serverelor alternative fi\u0219ierele instalatorului Mageia c\u00eend un pachet este actualizat.<\/li>\n<\/ul>\n<h3>Cum se instaleaz\u0103 un sistem de cl\u0103dit Mageia?<\/h3>\n<p>Acesta va fi subiectul unui articol viitor.<\/p>\n<h2>Configurarea aplica\u021biilor<\/h2>\n<p>Instalarea aplica\u021biilor este de obicei numai prima parte a muncii efectuate de administratorii de sistem. A doua parte este configurarea aplica\u021biilor. Pachetul va efectua prima parte a configura\u021biei ini\u021biale, \u00eens\u0103 de obicei este nevoie de lucru suplimentar.<\/p>\n<p>Se poate proceda \u00een mai multe feluri:<\/p>\n<ul>\n<li>Editarea manual\u0103 a configur\u0103rii direct pe server<\/li>\n<li>Evitarea efectu\u0103rii oric\u0103rei configur\u0103ri manuale pe servere \u0219i utilizarea unei unelte de gestionarea configur\u0103rilor precum Cfengine, Puppet sau Ansible pentru a face asta \u00een locul vostru.<\/li>\n<\/ul>\n<p>C\u00eend utiliza\u021bi o unealt\u0103 de gestionarea configur\u0103rilor, nu mai actualiza\u021bi configurarea direct pe server, ci scrie\u021bi reguli \u00een depozitul de gestionarea configur\u0103rilor ce vor fi aplicate automat de unealta de gestionarea configur\u0103rilor. Acest lucru nu este la fel de rapid ca editarea configur\u0103rii direct pe server, \u00eens\u0103 are multe avantaje:<\/p>\n<ul>\n<li><strong>Gestiona\u021bi infrastructura asemeni unui proiect aplicativ<\/strong><br \/>\nUneltele de configurare v\u0103 permit s\u0103 gestiona\u021bi infrastructura asemeni oric\u0103rui proiect obi\u0219nuit de dezvoltare de aplica\u021bii. Multe din uneltele disponibile pentru dezvoltatori pot fi utilizate pentru gestionarea versiunilor surselor, propunerea de corect\u0103ri, revizia codului, teste automate, etc.<\/li>\n<li><strong>Lucrul \u00een echip\u0103<\/strong><br \/>\nDac\u0103 lucra\u021bi \u00een echip\u0103, pute\u021bi stoca regulile pentru configurarea serverului \u00eentr-un depozit comun de gestiune a versiunilor surselor, f\u0103c\u00eend astfel posibil\u0103 urm\u0103rirea \u0219i verificarea modific\u0103rilor efectuate pe servere de c\u0103tre to\u021bi membrii echipei.<\/li>\n<li><strong>Documenta\u021bie<\/strong><br \/>\nEste foarte util s\u0103 dispune\u021bi de documenta\u021bie cu privire la aplica\u021biile instalate pe servere \u0219i cum s\u00eent configurate, mai ales c\u00eend mai multe persoane pot lucra cu ele. O problem\u0103 frecvent \u00eent\u00eelnit\u0103 la documenta\u021bie este c\u0103, dac\u0103 cineva a scris-o ini\u021bial, nimeni nu o mai actualizeaz\u0103, iar a\u0219a \u00een scurt timp nu mai este de actualitate. Este foarte u\u0219or s\u0103 faci o modificare \u0219i s\u0103 ui\u021bi s-o documentezi, sau c\u0103 exist\u0103 pe undeva o documenta\u021bie care trebuie actualizat\u0103. Este important s\u0103 ai o documenta\u021bie la zi, iar uneori o documenta\u021bie \u00eenvechit\u0103 cu informa\u021bii false poate fi mai nociv\u0103 dec\u00eet lipsa ei. Depozitul de gestionare a configur\u0103rilor poate fi v\u0103zut ca un fel de documenta\u021bie a infrastructurii, iar dup\u0103 cum a fost utilizat pentru instalarea infrastructurii, este probabil cel mai actualizat dec\u00eet orice alt\u0103 documenta\u021bie. \u00cen programare, dac\u0103 ai cod auto-documentat sau cod care poate fi \u00een\u021beles f\u0103r\u0103 documenta\u021bie este \u00een general mai bine dec\u00eet s\u0103 ai o documenta\u021bie men\u021binut\u0103 separat, iar acest lucru este valabil \u0219i pentru administrarea sistemului.<\/li>\n<li><strong>Testarea mediului \u0219i reproductibilitate<\/strong><br \/>\nUtilizarea unei unelte de configurare permite reproducerea configura\u021biei unui server pe un alt server. Acest lucru este util c\u00eend trebuie \u00eenlocuit sau ad\u0103ugat un server, sau pentru a crea un mediu de test.<\/li>\n<li><strong>Men\u021binerea unei configura\u021bii corecte<\/strong><br \/>\nUnealta de gestionare a configur\u0103rilor se va executa la intervale regulate de timp pentru a verifica corectitudinea configura\u021biei \u0219i \u00een func\u021bie de caz va aplica modific\u0103rile necesare.<\/li>\n<li><strong>Reutilizare<\/strong><br \/>\nCa \u0219i \u00een programare, unealta de gestionare a configur\u0103rilor v\u0103 permite s\u0103 reutiliza\u021bi componentele pe care le-a\u021bi creat. \u00cen mod normal pute\u021bi crea module cu parametri pentru a adapta comportamentul modulului. Uneori pute\u021bi g\u0103si pe Internet module existente, \u00eens\u0103 din p\u0103cate multe dintre ele vor necesita modific\u0103ri importante pentru a le adapta nevoilor proprii. Primelor versiuni de puppet le lipseau func\u021bionalit\u0103\u021bi importante precum clasa parametrat\u0103, prin urmare crearea componentelor reutilizabine era dificil\u0103, \u00eens\u0103 lucrurile au evoluat de atunci.<\/li>\n<\/ul>\n<h3>Ce unealt\u0103 de gestionare a configur\u0103rilor putem utiliza?<\/h3>\n<p>C\u00eend am demarat configurarea serverelor Mageia, la \u00eenceputul proiectului, ne-am decis s\u0103 utiliz\u0103m <a href=\"http:\/\/puppetlabs.com\/\">puppet<\/a>, dup\u0103 ce ne-am uitat la diferitele unelte disponibile. Pe atunci Puppet p\u0103rea cea mai interesant\u0103 unealt\u0103 de gestionare a configur\u0103rilor. \u00cen ultimii ani lucrurile au evoluat mult \u00een acest domeniu \u0219i exist\u0103 \u0219i alte alternative pe care le pute\u021bi testa \u00eenainte de a v\u0103 decide pe care s\u0103-o utiliza\u021bi:<\/p>\n<ul>\n<li><a title=\"ansible\" href=\"http:\/\/ansible.cc\/\">ansible<\/a><\/li>\n<li><a title=\"salt stack\" href=\"http:\/\/saltstack.com\/community\">salt stack<\/a><\/li>\n<\/ul>\n<h3>Modulele puppet pentru Mageia<\/h3>\n<p>Modulele puppet pe care le utiliz\u0103m pentru a configura serverele Mageia s\u00eent disponibile <a href=\"http:\/\/svnweb.mageia.org\/adm\/puppet\/\">\u00eentr-un depozit svn<\/a>.<\/p>\n<h2>Ce trebuie ameliorat<\/h2>\n<p>Procesul actual este bun, \u00eens\u0103 mai s\u00eent unele lucruri care pot fi amelioarte. Dac\u0103 dori\u021bi s\u0103 contribui\u021bi, \u00eens\u0103 nu \u0219ti\u021bi cam ce ar fi util, iat\u0103 c\u00eeteva idei:<\/p>\n<ul>\n<li><strong>Generarea automat\u0103 a pachetelor<\/strong><br \/>\nAnumite limbaje precum Perl, Python sau Ruby ofer\u0103 propriul lor sistem de \u00eempachetare pentru biblioteci. Multe persoane prefer\u0103 aceste pachete \u00een locul pachetelor RPM pentru c\u0103 pachetele din distribu\u021bie nu s\u00eent mereu disponibile \u0219i nici la zi. Avantajul acelor pachete este c\u0103 s\u00eent construite \u00een amonte,\u00a0 deci disponibile imediat. Problema este c\u0103 de obicei nu s\u00eent foarte bine integrate cu restul sistemului \u0219i necesit\u0103 utilizarea a dou\u0103 sisteme de \u00eempachetare diferite, fapt care complic\u0103 lucrurile \u0219i mai mult. \u00cen multe cazuri, oamenii nu s\u00eent \u00eempachetatori experimenta\u021bi, prin urmare utilizeaz\u0103 pachetele specifice limbajului, g\u00eendind c\u0103 este prea complicat s\u0103 le \u00eempacheteze sau c\u0103 nu au timp s\u0103 fac\u0103 acest lucru. Dac\u0103 era mai simpl\u0103 conversia \u00eentre acele pachete \u0219i RPM, am beneficia de o mai bun\u0103 disponibilitate a pachetelor bine integrate cu restul sistemului. Spre norocul nostru, acele pachete specifice ale limbajului con\u021bin de obicei toate informa\u021biile care s\u00eent necesare penru a le \u00eempacheta \u00een RPM (descriere, licen\u021b\u0103, dependen\u021be, etc.), prin urmare crearea unui pachet RPM devine o simpl\u0103 conversie a acelor informa\u021bii \u00een formatul RPM \u0219i poate fi automatizat\u0103. Mul\u021bimit\u0103 efortului lui <a href=\"http:\/\/jquelin.blogspot.fr\/\">J\u00e9r\u00f4me Quelin<\/a> depus pentru <a href=\"https:\/\/github.com\/jquelin\/cpanplus-dist-mageia\">cpan2dist<\/a> este posibil s\u0103 gener\u0103m pachetele RPM Mageia din modulele CPAN \u00een mod automat. Avest lucru ne permite s\u0103 avem la dispozi\u021bie <a href=\"http:\/\/perl.mageia.org\/stats\/\">3300 de pachete Perl<\/a> \u00een distribu\u021bie. Ne trebuiesc unelte similape pentru python, ruby \u0219i alte pachete de limbaje.<\/li>\n<li><strong>Configurarea sistemului de cl\u0103dit<\/strong><br \/>\nUtiliz\u0103m un sistem de cl\u0103dit pentru a ne construi pachetele pentru c\u0103 dispunem deja de un sistem de cl\u0103dit pentru a construi distribu\u021bia Mageia. Deci nu este prea mult de lucru s\u0103-l configur\u0103m pentru a dispune de propriul nostru depozit de pachete. Totu\u0219i, instalarea unui sistem de cl\u0103dit Mageia nu este un lucru u\u0219or, iar persoanele care nu doresc s\u0103 construiasc\u0103 o distribu\u021bie complet\u0103 nu vor s\u0103 petreac\u0103 prea mult timp cu configurarea unui sistem de cl\u0103dit. Prin urmare trebuie s\u0103 amelior\u0103m procesul de configurare al sistemului de cl\u0103dit pentru a-l face mult mai simplu. \u00cen momentul de fa\u021b\u0103 ne lipse\u0219te documenta\u021bia care s\u0103 explice cum se face, utiliz\u00eend modulul nostru puppet. Un articol viitor pe blog va explica cum se face acest lucru.<\/li>\n<li><strong>Suport pentru OBS<\/strong><br \/>\nO alt\u0103 alternativ\u0103 este s\u0103 utiliz\u0103m <a href=\"http:\/\/openbuildservice.org\/\">OBS<\/a> (Open Build Service), care este un sistem de compilare agreabil cu suport pentru multiple distribu\u021bii. Totu\u0219i nu este \u00eenc\u0103 adaptat pentru Mageia. Trebuie s\u0103 corect\u0103m acest lucru ca s\u0103 putem gestiona depozitele Mageia cu OBS.<\/li>\n<li><strong>Suport Mageia \u00een Ansible \u0219i Salt Stack<\/strong><br \/>\nAnsible \u0219i Salt Stack s\u00eent ambele unelte interesante pentru gestionarea configur\u0103rilor. Pentru moment le lispe\u0219te suportul pentru instalarea pachetelor cu urpmi. Actualizare: <a href=\"https:\/\/github.com\/pmakowski\">Philippe Makowski<\/a> lucreaz\u0103 la un <a href=\"https:\/\/github.com\/pmakowski\/ansible\/blob\/devel\/library\/packaging\/urpm\">modul urpmi pentru Ansible<\/a>, dar nu este \u00eenc\u0103 integrat \u00een amonte, iar contribu\u021biile s\u00eent bine venite.<\/li>\n<\/ul>\n<p><em>Not\u0103: Articol original publicat \u00een englez\u0103 de <\/em><a title=\"View all posts by boklm\" href=\"http:\/\/blog.mageia.org\/en\/author\/boklm\/\">boklm<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00cen cadrul proiectului Mageia echipa sysadmin (administratorii de sistem) este responsabil\u0103 de instalarea, configurarea \u0219i mentenan\u021ba \u00eentregii infrastructuri, at\u00eet pentru utilizatori c\u00eet \u0219i pentru contribuitori. Pentru a ajuta publicul s\u0103 \u00een\u021beleag\u0103 mai bine ce face aceast\u0103 echip\u0103,\u00a0 c\u00eet \u0219i s\u0103 &hellip; <a href=\"https:\/\/blog.mageia.org\/ro\/2013\/06\/06\/ei-fac-mageia-echipa-sysadmin-instalarea-si-configurarea-aplicatiilor-pe-serverele-mageia\/\">Continuarea <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[163,207,55],"tags":[],"class_list":["post-1741","post","type-post","status-publish","format-standard","hentry","category-administrare-sistem","category-ei-fac-mageia","category-impachetare"],"_links":{"self":[{"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/posts\/1741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/comments?post=1741"}],"version-history":[{"count":35,"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/posts\/1741\/revisions"}],"predecessor-version":[{"id":2318,"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/posts\/1741\/revisions\/2318"}],"wp:attachment":[{"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/media?parent=1741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/categories?post=1741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mageia.org\/ro\/wp-json\/wp\/v2\/tags?post=1741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}