Zakaj bi se mučil?
Podjetje Hashicorp, ki stoji za Vagrantom, vzdržuje skladišče številnih Potepuške škatle ki so vnaprej konfigurirane slike navideznega stroja, iz katerih lahko lokalno ustvarite poljubno število VM-jev. Rešuje dva problema:
- Ker se vsi začnejo z isto sliko, se lahko razvijalci znebijo Deluje na mojem stroju izgovor, kjer bi določena aplikacija popolnoma delovala na enem računalniku, ne pa tudi na drugem. Vsi se razvijajo na različnih strojih, vendar tečejo na popolnoma enaki konfiguraciji navideznega stroja.
- Če se želite znebiti starih, vam ni treba ponavljati namestitve navideznih strojev. Vagrant skrbi za celotno namestitev in nastavitev vašega VM. Vse od dodelitve pomnilnika in pomnilnika do ustvarjanja uporabnikov za nastavitev dovoljenj.
V mnogih pogledih je podoben Dockerjevim slikam in rešuje podobne težave, ključna razlika pa je v tem, da uporablja VM-je, namesto da bi jih vsebniki naredili, odločno, težjo in počasnejšo alternativo. Vendar pa imajo navidezni stroji svoje prednosti, kot so boljši mrežni sklad in večja prilagodljivost pri izbiri datotečnega sistema itd., Kar omogoča, da Vagrant zapolni določeno nišo prenosnih VM-jev.
Začnimo torej!
Predpogoji
Prva in najpomembnejša zahteva je namestitev VirtualBox, po kateri bi morali namestiti Vagrant. Če imate VirtualBox že nameščen, le pridobite slednjega. Postopek namestitve se lahko zelo razlikuje, odvisno od operacijskega sistema, ki ga izvaja vaš gostitelj, zato vas prosim, da za to preberete uradne dokumente:
- Pridobite VirtualBox tukaj
- Pripelji Vagranta sem
Če uporabljate Windows, boste potrebovali odjemalca SSH, boste morda želeli namestiti Git Bash, ki v sistemu Windows deluje popolnoma dobro s privzetimi možnostmi namestitve.
1. Potepuške škatle
Vagrant Box je izraz za navidezne stroje, ki jih upravlja Vagrant. Lahko dobite škatle Vagrant, ki vsebujejo samo operacijski sistem, kot so Ubuntu, CentOS itd. Lahko pa vsebujejo vnaprej nastavljen niz LAMP, sklad MEAN ali drugo namestitev programske opreme, ki vam lahko olajša postopek razvoja in testiranja.
Če na primer pišete temo WordPress, lahko dobite polje Vagrant, na katerem že deluje jedro WordPress. S tem VM lahko delite svojo mapo projekta, kjer imate vsebino teme. Preverite, ali nova tema deluje, kot ste pričakovali. Ko končate s temo, samo odstranite polje, tako da ostanejo samo projektne datoteke, za katere zdaj veste, da bi v resničnem svetu delovale dobro.
Ta polja lahko raziščete tukaj. Začeli bomo z navadnim Ubuntu 16.04 LTS škatla. Lahko ga vidite kot ubuntu / xenial64, če obiščete zgornjo povezavo.
Odprite terminal in naredite mapo za preizkuse Vagrant.
$ mkdir vagrant_box$ cd vagrant_box
V tej mapi lahko okolje Vagrant inicializiramo tako, da zaženemo:
$ vagrant init
To postavlja a Vagrantfile znotraj mape, ki je v bistvu skript Ruby, ki opisuje konfiguracijo vašega Vagrant Boxa. Za uporabo te datoteke vam ni treba poznati Rubyja, sintaksa je precej preprosta. V nadaljevanju bomo pokrivali bistvene stvari.
Zdaj lahko zaženete ukaz vagrant up in ker ga izvajate prvič, bo moral sliko Virtual Machine prenesti iz aplikacije.potepuh.com. Odvisno od vaše internetne povezave lahko traja dolgo, ko pa jo prenesete, nato potepuh gor ukazi za podobno vagrant init ubuntu / xenial64 ne bo trajalo tako dolgo, ker je slika zdaj lokalno shranjena v računalniku. Prepričajte se, da ste v istem imeniku (vagrant_box), kjer je bil Vagrantfile postavljen prej.
$ potepuh gorKo se to konča, lahko ssh v polje kot uporabnik potepuh s korenskimi pravicami. Preprosto zaženite naslednje:
$ vagrant sshčestitke! Pravkar ste se prijavili v svoj prvi Vagrant Box. Zdaj, ko smo začeli, se naučimo nekaj osnovnih potepuških ukazov, preden se poglobimo v datoteko Vagrant. Samo vnesite izhod in pritisnite
Pogosti ukaz Vagrant
Če želite ustaviti tekaško polje, zaženite ukaz:
$ vagrant zaustavitevZa ponovni zagon lahko uporabite vagrant up
Če želite, lahko tudi uporabite
$ vagrant začasno ustavi$ vagrant življenjepis
Ti bodo zaustavili VM in ga varno vrnili nazaj. Če spremenite datoteko Vagrantfile in želite, da se spremembe prikažejo, uporabite ukaz:
$ vagrant ponovno naložiNe pozabite zagnati vseh ukazov iz istega imenika, v katerem je datoteka Vagrantfile. Če ustvarite nove imenike drugje in jih zaženete, lahko ustvarite več potepuških polj potepuški init v njih. Upravljali jih boste iz njihovih map. Temeljijo lahko na istem ubuntu / xenial sliko, ki smo jo dobili prej, ali pa lahko vnesete več slike.
Če želite seznam vseh potepuških polj in njihovo stanje (zagnano ali ustavljeno), uporabite ukaz:
$ vagrant globalni statusČe želite odstraniti potepuško polje in vso njegovo zasebno vsebino, iz imenika polja (kjer se nahaja njegova ustrezna datoteka Vagrant) zaženite:
$ vagrant uničiOsnovna slika, ki ste jo prej prenesli, bo še vedno obstajala, če želite kasneje ustvariti nova polja. Če želite videti vse slike, ki so shranjene lokalno, zaženite:
$ vagrant box boxČe želite izbrisati sliko polja, zaženite:
$ vagrant box odstranitePo tem boste morali polje znova prenesti, če bo potrebno.
Pregled datoteke Vagrant
Na prvi pogled se zdi, da je znotraj datoteke Vagrant veliko možnosti. Čeprav je to res lahko res, je zanimivo omeniti, koliko lahko dosežete le z malo prilagajanja.
1. Mapa v skupni rabi
Večina potepuških polj ima vnaprej konfigurirane mape v skupni rabi. Če na primer pregledate datoteko Vagrant, ki smo jo ustvarili prvič, ko smo zagnali potepuški init opazili boste vnos, ki je komentirana vrstica,
# config.vm.synced_folder "… / data", "/ vagrant"Do sinhronizirane mape lahko dostopata tako potepuško polje kot gostiteljska naprava. Prvi argument po konfig.vm.synced_folder označuje pot do mape na gostitelju, drugi argument pa pot, kamor bo ta mapa pritrjena na polje gostujočih gostov. Privzeto je mapa, v kateri ste ustvarili datoteko Vagrant, v skupni rabi z okencem vagrant.
Preverimo to, tako da ssh-ing v našo skitnico.
$ vagrant sshTukaj navedite datotečne sisteme.
$ df -h
Vidite, da obstaja velik datotečni sistem potepuh nameščen na / potepuh pot. Razlog, da je tako velik, je, da je mapa Vagrantfile na mojem gostiteljskem računalniku na particiji, ki je velika 632 GB, in tudi mapa tam lahko zraste do te velikosti. Ker gre za isto mapo, ki je v skupni rabi s škatlo, ponuja noro količino prostora za shranjevanje.
Vsebino lahko pregledate / potepuh in so enaki kot na vašem gostitelju, in sicer ena datoteka Vagrantfile in druga datoteka dnevnika.
Dodate lahko več map v skupni rabi, kjer se prikaže komentar, ki pojasnjuje sintakso mape v skupni rabi.
Tako je,
V tem primeru je mapa z imenom Deljena mapa se doda, kar je en zgornji imenik, torej dvojna pika pred njim. Ta mapa je nameščena / var / www / html na škatli. Tu večina spletnih strežnikov, kot sta apache in nginx, išče spletne vsebine, ki jih želijo streči.
Preprosto lahko vstavite svoje projektne datoteke, html, css in js Deljena mapa kjer na svojem gostiteljskem računalniku delate z grafičnimi urejevalniki besedil, kot sta Atom in VSCode . Prosta škatla bo delovala kot strežnik produkcijskega razreda, ki bo služil tem datotekam.
Zdaj je vprašanje, kako vidimo, da so te datoteke html v obliki spletne strani. Katero ime gostitelja vnesite v brskalnik?
2. Mreženje
Privzeto nudi vagrant nekaj koristnih konfiguracij. Zahteva, ki jo vaš brskalnik pošlje localhostu na vrata 8080, se posreduje na vrata 80 na vašem potepuškem polju. Torej, če imate na svojem potepuškem polju zagnan spletni strežnik, ki posluša na vratih 80 (standardna vrata http), lahko to spletno stran vidite tako, da obiščete http: // localhost: 8080
Po drugi strani se boste morda želeli izogniti vsemu posredovanju vrat localhost, v tem primeru lahko odprete datoteko Vagrant in razkomentirate naslednjo vrstico:
konfig.vm.omrežje "private_network", ip: "192.168.33.10 "Shranite spremembe in jih zaženite potepuško ponovno nalaganje da znova zaženete polje z novo konfiguracijo. Zdaj ima namenski zasebni ip naslov 192.168.33.10, do katerega lahko dostopa samo vaš gostitelj. Tako lahko zdaj odprete brskalnik in vnesete http: // 192.168.33.10 in vidite spletne strani, ki se strežejo na standardnih vratih 80 http.
Zaključek
Kot lahko vidite, vam lahko Vagrant pomaga lokalno zagnati vaše aplikacije, saj bi hkrati delovale v produkciji, z njimi pa lahko uporabljate IDE-je in urejevalnike besedil, ki jih na običajnem strežniku ne bi. Uporaba map v skupni rabi in zasebnega omrežja močno izboljša to sposobnost Vagranta.
Sporočite nam, če imate več vprašanj v zvezi s to vadnico ali če želite katero drugo temo obravnavati.