Freebsd dev linko22 wiki

Sistem standard de web dezvoltator este o mașină personală cu pachetul, cum ar fi Denver sau AppServ, care include apache + php + mysql, mai multe dosare cu copiile depozit pentru proiecte care îi permit să vizualizeze și script-uri de testare pe masina lor locale. Acest lucru are multe avantaje, de exemplu, în cazul în care acesta este pe un laptop, puteți transporta în jurul și o alerga acasă, dar există și dezavantaje, de exemplu, în cazul în care aveți nevoie pentru a arăta pe cineva propria lor experiență că este necesar de a invita direct la locul de muncă, sau întrebați persoana configurați fișierul hosts pentru a rula gazde virtuale.







A existat o idee, de a crea ceea ce un server cu servicii virtuale, pentru a lucra cu care pe mașina de lucru a dezvoltatorului web nu ar fi necesar să pună nimic.

În cele din urmă, sa decis să folosiți sistemul de închisoare FreeBSD, samba, ca sistem de operare.

Fiecare utilizator primește o închisoare cu propria IP, prin acces ssh, serverul MySQL, apache22 configurat pentru găzduire virtuală în masă cu capacitatea de a specifica gazde virtuale suplimentare, care nu se potrivesc cu modelul de gazdă virtuală standard de, folderele partajate prin intermediul samba, în cazul în care doar prin adăugarea de directorul și script-urilor apare automat subdomeniul celui de-al treilea nivel.

Pentru simplitate, vom folosi o variantă cu trei dezvoltatori.

Scrieți modificările fișierului /etc/rc.conf

Să punem portul de gestionare a închisorii

Adăugați închisoarea autorun, specificând fișierul /etc/rc.conf:

Am partiția / home pe serverul meu. Prin urmare, luăm fișierul exemplelor de configurare ezjail și îl copiem în fișierul de configurare

În ea luăm linia

Și îl aducem la formă

Salvăm fișierul și instalam lumea pentru închisori, pentru aceasta folosim comanda

El urcă pe Internet și scutură de acolo clădirea FreeBSD pentru sistemul actual. Practic, ar fi posibil să profitați de codul sursă FreeBSD, dacă îl puneți, dar este mult mai rapid. În timp ce este pus totul, puteți merge și vă puteți turna un pescăruș / du-te la fum.

Aici, totul a fost stabilit, acum este momentul să creați un manager de închisoare, care va fi deja folosit de dezvoltatorii închisorii.

Esența managerului închisorii este că: fiecare dezvoltator intră în folosirea sa o mașină completă cu drepturi de rădăcină. Este necesar pentru el, sau nu este necesar, depinde deja de dezvoltatorul specific. În consecință, nu vrem ca el să poată sparge nimic acolo, adică, drepturile lui vor fi pline, dar el nu se poate rupe. Totul funcționează așa. Conform documentației, și altele sunt realizate prin utilizarea unui utilitar Jeyla ezjail-admin, cu instalarea lumii pentru a crea un mediu de închisoare coloana vertebrală, și anume, directoarele / bin / boot / lib / libexec / salvare / sbin / sys, care sunt legături simbolice în directorul de la rădăcina Ceyla / basejail / bin / basejail / boot / basejail / lib / basejail / libexec / basejail / salvare / basejail / sbin / basejail / sys, care, la rândul lor, se referă la directorul / home / jails / basejail. Catalog / basejail montat în închisoare de mount_nullfs în numai citire-mode, ceea ce înseamnă că utilizatorul nu poate face nimic cu fișierele de sistem, sau șterge, nu înlocuiesc sau edita. Prin urmare, ca un director montat în directorul / usr, cu excepția directorul / usr / local, în cazul în care utilizatorul poate să scrie și pune diferite porturi.







Dar vom merge mai departe. În articolul curent, dezvoltatorii 3, dar ce dacă sunt mai multe? Aceasta este prima, pot pune orice port. Portul poate fi configurat în mod normal, este posibil înșelător, nu ar fi de dorit să înțelegem de ce sa întâmplat. De asemenea, ei vor avea dreptul să ștergă porturile, dependențele și așa mai departe. Să nu mai vorbim că atunci când faceți upgrade, va trebui să intrați în fiecare închisoare și să actualizați porturile.

Luați în considerare o soluție evidentă care părea rezonabilă pentru mine.

Mai întâi, creați o închisoare de gestionare.

Acesta va fi localizat pe calea /home/jails/hq.local Creați un director și subdirectoarele aferente

În cazul nostru, acesta va fi montat în închisoare în directorul / usr / local

Toate punctele de montare sunt definite de fișierele /etc/fstab.JAILNAME

În cazul nostru, acesta va fi /etc/fstab.hq_local

Conținutul său implicit

Pentru cazul nostru, dezvoltatorii nu au putut face nimic cu porturile instalate, cu excepția modului de a lucra în mod direct cu ele, trebuie să adăugați la acest fișier încă un punct de montare

Ie pentru Ceyla de control, vom monta modul de citire-scriere, instala sau actualiza porturi, iar în cazul dezvoltatorilor, vom monta în modul numai citire, cu excepția director, etc, în cazul în care dezvoltatorii ar putea face au nevoie de modificări la fișierele de configurare servicii.

De asemenea, trebuie să lucrăm cu porturile. Pentru a face acest lucru, ștergeți linkurile simbolice cu porturile din închisoare și creați un dosar din acesta, care va monta pur și simplu folderul cu porturile din închisoare.

De asemenea, scrieți acest lucru în /etc/fstab.hq_local

Rulați închisoarea direct

Și uită-te la listele Jail, pe care le are JID.

În regulă, suntem într-o închisoare.

Pentru a vă asigura că toate porturile instalate pot fi utilizate de alte jail-uri, trebuie să creați mai multe simboluri.

Ie de fapt, toate directoarele principale, cu excepția pentru etc, se vor referi la directorul pe care l-am montat pentru Jails. În toate închisorile conținutul va fi același.

Pentru a instala portul, folosesc o copie locală a porturilor și a Distfiles cache locale, care nu ar balansați aceleași porturi care deja și așa că am, atunci când am creat un sistem de bază. Pentru a face acest lucru, trebuie să corectați un fișier, /etc/make.conf, să comentați linia DISTDIR

Și, în consecință, domeniul acestui set de porturi de care avem nevoie.

Ele sunt create în același mod ca închisoarea de gestionare, cu excepția faptului că toate directoarele sunt montate în modul "numai pentru citire", iar directorul cu porturi nu este deloc utilizat.

În directorul / baselocaljail am un director var unde am pus fișierul extensions.ini. În consecință, în timp ce actualizăm acest fișier în închisoarea de management, acesta va fi același peste tot.

Mai departe. Când instalați orice port suplimentar, este necesar ca în fiecare închisoare să ruleze /etc/rc.d/ldcondig

De exemplu, puteți scrie un script simplu pentru acest lucru:

Același lucru este valabil și pentru Apache

Desigur, unele programe au pus script-uri de pornire, precum și fișiere de configurare de-a lungul căii / usr / local / etc, acestea trebuie deja urmărite manual.

Acest sistem funcționează în birou, ale cărui computere utilizează un server DNS local, unde dezvoltatorii sunt înregistrați pentru test. Creați, de exemplu, în zona de birouri locală. Și domenii de nivel 2, pentru dezvoltatorii de închisoare, de exemplu user001.local user002.local user003.local.

Mai întâi, creați chiar zona .locală

Pe serverul meu, setările și zonele sunt în directorul / etc / namedb

Luați standardul cofig named.conf și adăugați linia de acolo:

Și, în consecință, zonele în sine:

Conținutul fișierului /etc/namedb/master/local.zone







Trimiteți-le prietenilor: