Virtualūs serveriai (web) programuotojams

Screenshot from 2013-06-23 05:41:53

Draugas prašė patarimo: „Kaip gudriau naudotis kompiuteriu?“ atsakiau išsamiu laišku ir pagalvojau, kad galbūt dar kam nors bus naudinga. Trumpai – tai bus apie virtualizacijas paprasčiausiu, kiekvienam suprantamu būdu nenaudojant jokios papildomos techninės ar mokamos programinės įrangos.

D.U.K

Kodėl virtualios mašinos, o ne programinė įranga tiesiai į sistemą?

Pagrindiniai pliusai:

  • Paprasta manipuliuoti programinės įrangos versijomis. Galima turėti kiekvienam projektui po n serverių ir būti 100% garantuotu, kad su visomis konfigūracijomis viskas veiks taip kaip norite.
  • Galimybė turėti „nepriklausomus“ serverius kiekvienam projektui.
  • Virtualios mašinos yra kieta. Šis yra svarbiausias ir nusveriantis visus kitus, čia beveik kaip sakyti, kad „O aš tai Cloud’e„, tik n kartų kiečiau.

Ko reikia norint pradėti?

Kompiuterio. Teoriškai tinka bet koks kompiuteris, bet priklausomai nuo norimų virtualių mašinų skaičiaus reikia daugiau RAM ir šiek tiek vietos kietajame diske – atvaizdų turėsim daug. Kiekvienai mašinai bus galima nustatyti kiek resursų būtent jai duoti, todėl galėsite balansuoti tarp tai ko reikia ir tai ką galit patempti.
Teisingos operacinės sistemos. Žinoma Linux. Distribucija iš esmės nėra svarbi. Teoriškai, visi veiksmai gali būti atliekami ir OS X operacinėje sistemoje, bet jei kas neveiks – nezyksit, kad neįspėjau.
Būtina bent truputi pažinoti Linux. Auginsim serverių, o ne karvių fermą – neturit iš ko rinktis.

Pradedam

Jei nebėra klausimų – galima pereiti čia. Lokalioms workstations virtualizacijoms aš visada naudoju Virtualbox, nors yra ir krūva kitokių įrankių, bet šis viską atlieka puikiai ir nematau reikalo nuo jo bėgti.
Žodžiu, instaliuojam Virtualbox kaip mokam, o jei nemokam – kaip distribucijos wiki liepia ir iš esmės jau galima sukurti pirmą virtualų serverį. Distribuciją tam galit naudoti vėlgi kokią norit arba kokios reikia. Jei nėra specialių reikalavimų – siūlyčiau Debian arba CentOS, nes jos populiariausios ir greičiausiai būtent jas sutiksit production serveryje.

Bendru atveju rinkitės mažiausią atvaizdą. Pvz. Debian siūlo „Network Install„, jei sugalvosit instaliuoti ką didesnio – įsitikinkit, kad nepasileis grafinė sąsaja ir krūvos nereikalingų paslaugų.

Virtualų kietąjį diską galite kurti didesnį, bet pasirinkite „dynamically allocated“ tipą. Taip jis užims tiek vietos – kiek realiai jame bus užimta.

Kaip instaliuoti atitinkamą programinę įrangą į konkrečią distribucija galima rasti milijonus pamokų – naudokitės tuo. Pvz. visiškai standartiškiausias variantas – LAMP Debian serveryje.

Visur paleiskit ssh paslaugą. Vėliau tai pravers.

Svarbiausi žingsniai

Na nėra jie tiek svarbiausi, bet labiau būtini, tam kad peršoktumėt nuo „va, paleidau Windows XP linux’e“ iki virtualaus serverio. Visų pirma tai – portai.

Screenshot from 2013-06-23 05:11:40Atidarius „Port Forwarding“ surašome tai ką naudosim. Pavyzdyje 80 (standartinis web serverio portas) virtualaus serverio portas atitinka 3080 realų portą, o 22 (ssh) – 3022. Portai neturi sutapti (80 – 3080, 22 – 3022), bet naudokite taip, kad vėliau suprastumėt ką padarėt. Toks nustatymas reikš, kad naršyklėje įėjus į 127.0.0.1:3080 pateksime į serveryje paleistą web serverį.

Screenshot from 2013-06-23 05:11:43
Žinoma, kiekvieną kartą spaudinėti mygtukus būtų nežmoniška, todėl galima viską padaryti vienu prisilietimu – komanda:

VBoxManage modifyvm WebServer –natpf1 „http,tcp,,3080,,80“

Visi ženklai yra būtini. „WebServer“ – tai Jūsų virtualios mašinos pavadinimas, „http“ – pavadinimas kuris atsiras lentelėje – tiesiog, kad būtų paprasčiau orientuotis. Pirmas portas (3080) yra jūsų kompiuterio, antrasis (80) – serverio.

Antras svarbus dalykas – serverio paleidimas be grafinio lango. Tiesiog naudoti komandą:

VBoxManage startvm WebServer –type headless

Kaip ir aną kartą „WebServer“ – tai Jūsų norimo serverio pavadinimas. Išjungti galima prisijungus per ssh arba per Virtualbox grafinę programą.

Pasiekti serverį galima n būtų, nuo integruotos „share folder“ funkcijos iki paleistos FTP paslaugos. Jei dirbate per ssh sąsają – nieko papildomo daryti nereiks, jei ne, tuomet galite pasinaudoti sshfs.

sshfs -p 3022 root@localhost:/var/www /home/aivaras/www

Taip, iš savo home  galėsiu pasiekti visus failus serverio /var/www direktorijoje. Išjungti tai galima komanda:

fusermount -u /home/aivaras/www

Dar vienas svarbus dalykas yra patys atvaizdai. Aš patarčiau išsisaugoti:

  • Švariai įdiegtos sistemos atvaizdą. Visų naudojamų distribucijų.
  • Dažniausiai naudojamos konfigūracijos atvaizdą.
  • Visus atvaizdus kurių gali prireikti. Antrą kartą darydami tą pačią konfigūraciją laiko nesutaupysit.

 

 

5 komentarai

  1. O galima paklausti, o kam visai tai? Nepaprasčiau savo toje distribucijoje ir laikyti visus http servisus? Nes nesugalvoju kodėl tai turėtų veikti greičiau, o vietos tikriausiai irgi daugokai užimtų.

    1. Greičiau neveikia, vietos mažiau neužima.

      Visa esmė yra ta, kad turi atskirus, visiškai tarpusavyje nesusyjusius box’us. Problemos prasideda tada, kai dirbama su keliais labai nuo standartinės konfigūracijos pabėgusiais projektais.

      Kitas dalykas – labai portable. Visą atvaizdą davei kolegai, visą atvaizdą nusinešei į darbą ar parsinešiai atgal – turi ideliai taip pat veikiančią sistemą. Žinai tą bajerį prezentacijose, kai programeris rodo BETA ir kas nors pradeda spjaudytis error’ais, o jis tik sako – pas mane veikė… :D

      Ir galų gale nešiki į savo sistemą.

  2. Senai naudoju virtualkes developmentui. Nuo tos dienos main OS pasidare svaresne, stabilesne, nes nebereikia visu „hacku“ reikalingu paleisti kazkam daryt ant main OS, tai darai virtualkej :) Dar labai geras dalykelis sioje vietoje yra Vagrant.. Jei dar neisbandei – pabandyt, patiks :)

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *