Vagrant

Vagrant Tutorial

Vagrant Tutorial
Vagrant er et værktøj til styring af virtuelle maskiner ved hjælp af en simpel kommandolinjegrænseflade. Det skal gøre hele processen pæn og ren uden at have din hovedinstallation forurenet med masser af konfigurationsfiler.Vagrant bruger VirtualBox i backend, hvor de virtuelle maskiner kører, og hvis du åbner VirtualBox efter installation af et par af disse Vagrant Boxes, vil du se, at der er nye VM'er, der ikke var der før. Vagrant box er bare endnu et udtryk for virtuelle maskiner, der håndteres specifikt af dette værktøj, som vi diskuterer.

Hvorfor bekymre sig?

Hashicorp, firmaet bag Vagrant vedligeholder et lager af mange Vagrant kasser som er forudkonfigurerede billeder af virtuelle maskiner, hvorfra du kan generere et vilkårligt antal VM'er lokalt. Det løser to problemer:

  1. Fordi alle starter med det samme billede, kan udviklere slippe af med Det fungerer-på-min-maskine undskyldning, hvor en bestemt app fungerer perfekt på en maskine, men ikke en anden. Alle udvikler sig på forskellige maskiner, men kører på nøjagtig samme konfiguration af virtuel maskine.
  2. Du behøver ikke udføre gentagen installation af virtuelle maskiner, hvis du beslutter at slippe af med gamle. Vagrant tager sig af hele installationen og opsætningen af ​​din VM. Alt fra tildeling af lager og hukommelse til oprettelse af brugere, der konfigurerer tilladelser.

På mange måder ligner det Docker-billeder, og det løser lignende problemer, hvor nøgleforskellen er, at den bruger VM'er i stedet for containere, der gør det, bestemt, tungere og langsommere alternativ. Virtuelle maskiner har dog deres egne fordele som bedre netværksstak og mere fleksibilitet med hensyn til valg af filsystem osv., Hvilket gør det muligt for Vagrant at udfylde en bestemt niche af de bærbare virtuelle computere.

Så lad os komme i gang!

Forudsætninger

Først og fremmest er kravet installation af VirtualBox, hvorefter du skal installere Vagrant. Hvis du allerede har VirtualBox installeret, skal du bare få sidstnævnte. Installationsprocessen kan variere meget afhængigt af, hvilket operativsystem din vært kører, så jeg opfordrer dig til at konsultere de officielle dokumenter om det:

  1. Få VirtualBox her
  2. Få Vagrant her

Derudover, hvis du bruger Windows, har du brug for en SSH-klient, kan du installere Git Bash, som fungerer perfekt på Windows med standardinstallationsindstillingerne.

1.  Vagrant kasser

Vagrant Box er betegnelsen for virtuelle maskiner, der administreres af Vagrant. Du kan få Vagrant-kasser, der kun indeholder operativsystemet som Ubuntu, CentOS osv. Eller de kan indeholde forudkonfigureret LAMP-stak, MEAN-stak eller anden softwareinstallation, der kan gøre din proces med udvikling og test nemmere.

For eksempel, hvis du skriver et WordPress-tema, kan du få en Vagrant-boks med kerne-WordPress, der allerede kører på det. Du kan dele din projektmappe, hvor du har indholdet af dit tema, med denne VM. Kontroller, om det nye tema fungerer som forventet. Når du er færdig med temaet, skal du bare destory boksen og kun efterlade de projektfiler, som du nu ved, ville fungere fint i den virkelige verden.

Du kan udforske disse felter her. Vi skal starte med en almindelig Ubuntu 16.04 LTS kasse. Du kan se det opført som ubuntu / xenial64, hvis du besøger linket ovenfor.

Åbn din terminal, og lav en mappe til dine Vagrant-eksperimenter.

$ mkdir vagrant_box
$ cd vagrant_box

I denne mappe kan vi initialisere vores Vagrant-miljø ved at køre:

$ vagrant init

Dette placerer en Vagrantfil inde i mappen, som i det væsentlige er et Ruby-script, der beskriver konfigurationen af ​​din Vagrant Box. Du behøver ikke at kende Ruby for at bruge denne fil, syntaksen er ret enkel. Vi vil dække det væsentlige, når vi går videre.

Nu kan du køre vagrant up-kommandoen, og fordi du kører den for første gang, bliver den nødt til at downloade Virtual Machine-billedet fra appen.vagrantup.com. Det kan tage lang tid afhængigt af din internetforbindelse, men når den er downloadet, efterfølgende vandrende op kommandoer til lignende vagrant init ubuntu / xenial64 tager ikke så lang tid, fordi billedet nu er gemt lokalt på din computer. Sørg for, at du er i samme bibliotek (vagrant_box) hvor Vagrantfile blev placeret tidligere.

$ vagrant op

Når dette er færdigt, kan du ssh ind i feltet, da brugeren vandrer med rodrettigheder. Kør bare følgende:

$ vagrant ssh

tillykke! Du er lige logget ind i din første Vagrant Box. Nu hvor vi er begyndt, lad os lære et par grundlæggende vagrantkommandoer, inden vi dykker ned i Vagrantfilen. Bare skriv exit og tryk for at afslutte VM-terminalen. Den vandrende boks kører stadig i baggrunden.

Almindelig Vagrant-kommando

Hvis du ønsker at stoppe kørselsfeltet, skal du køre kommandoen:

$ vagrant stop

For at genstarte kan du bruge vagrant op

Hvis du vil, kan du også bruge

$ vagrant suspendere
$ vagrant CV

Disse vil suspendere VM og bringe den sikkert op igen. Hvis du foretager ændringer i Vagrantfile og ønsker, at ændringerne skal vises, skal du bruge kommandoen:

$ vagrant genindlæsning

Husk at køre al kommando fra samme bibliotek, hvor din Vagrantfile er placeret. Du kan oprette flere vandrende kasser, hvis du opretter nye mapper andre steder og kører vagrant init  i dem. Du administrerer dem fra deres respektive mapper. De kan være baseret på det samme ubuntu / xenial billede, vi fik tidligere, eller du kan bringe mere billede.

Brug kommandoen til at liste alle de vandrende felter og deres status (kører eller stoppet):

$ vagrant global status

For at fjerne en vagrant boks og alt dens private indhold køres fra boksens bibliotek (hvor dens respektive Vagrantfil er placeret):

$ vagrant ødelægge

Basisbilledet, som du downloadede tidligere, vil stadig eksistere, hvis du senere vil oprette nye felter. Hvis du ønsker at se alle de billeder, der er gemt lokalt, skal du køre:

$ vagrant boks liste

For at slette selve boksbilledet skal du køre:

$ vagrantkasse fjernes

Herefter skal du downloade boksen igen, hvis behovet for det opstår.

Inspektion af Vagrantfil

Ved første øjekast kan det virke som om der er mange muligheder i en Vagrantfil. Mens det meget vel kan være sandt, er det interessant at bemærke, hvor meget du kan opnå med kun en lille smule tweaking.

1.   Den delte mappe

De fleste vagrantkasser leveres med forudkonfigurerede delte mapper. For eksempel, hvis du inspicerer Vagrantfilen, oprettede vi den allerførste gang, vi løb vagrant init du vil bemærke posten, som er en kommenteret linje,

# config.vm.synced_folder "... / data", "/ vagrant"

Den synkroniserede mappe kan fås via både den vandrende boks og værtsmaskinen. Det første argument efter config.vm.synkroniseret_mappe angiver stien til mappen på værten, og det andet argument angiver stien, hvor mappen vil blive monteret på gæstevagrantfeltet. Som standard deles den mappe, hvor du oprettede Vagrantfilen, også med den vandrende boks.

Lad os verificere dette ved at skyde ind i vores omstrejfende kasse.

$ vagrant ssh

Her skal du liste filsystemerne.

$ df -h

Du kan se, at der er et stort filsystem vandrende monteret på / vagrant sti. Årsagen til, at den er så stor, er, at mappen Vagrantfile på min værtsmaskine er på en partition, der er 632 GB stor, og mappen derovre også kan vokse til den størrelse. Da det er den samme mappe, der deles med feltet, giver den en sindssyg mængde lagerplads.

Du kan inspicere indholdet af / vagrant og de er de samme som du ser på din vært, nemlig en Vagrantfile og en anden logfil.

Du kan tilføje flere delte mapper, hvor kommentaren, der forklarer syntaks for den delte mappe, vises.

Ligesom,

I dette tilfælde en mappe med navnet Delt mappe er ved at blive tilføjet, hvilket er en mappe ovenfor, deraf den dobbelte prik foran den. Denne mappe er monteret på / var / www / html  inde i kassen. Det er her, de fleste webservere som apache og nginx ser efter det webindhold, de vil servere.

Du kan simpelthen have dine projektfiler, din html, css og js i Delt mappe hvor du arbejder på det på din værtsmaskine ved hjælp af grafiske teksteditorer som Atom og VSCode . Den vandrende boks fungerer som serveren til produktionskvalitet, der kan tjene disse filer op.

Nu er spørgsmålet, hvordan ser vi disse html-filer serveres som en webside. Hvilket værtsnavn der skal indtastes i browseren?

2.   Netværk

Som standard giver vagrant nogle nyttige konfigurationer. Den anmodning, der sendes af din browser til localhost på port 8080, videresendes til port 80 i din vandrende boks. Så hvis du har en webserver, der kører på din vandrende boks, der lytter på port 80 (standard http-port), kan du se den webside ved at besøge http: // localhost: 8080

På den anden side vil du måske undgå al videresendelse af localhost-porten, i hvilket tilfælde du kan åbne Vagrantfilen og fjerne kommentar til følgende linje:

config.vm.netværk "privat_netværk", ip: "192.168.33.10 "

Gem de ændringer, du har foretaget, og kør vagrant genindlæsning for at genstarte boksen med ny konfiguration. Nu har den en dedikeret privat ip-adresse 192.168.33.10, som kun din vært har adgang til. Så du kan nu åbne browseren og indtaste http: // 192.168.33.10, og du kan se websiderne serveres i standardport 80 på http.

Konklusion

Som du kan se, kan Vagrant hjælpe dig med at køre dine applikationer lokalt, da de ville køre i produktion på samme tid, som du kan arbejde med dem ved hjælp af IDE'er og teksteditorer, som du ikke ville have på en typisk server. Brug af delte mapper og privat netværk forbedrer i høj grad denne evne til Vagrant.

Fortæl os, hvis du har flere spørgsmål vedrørende denne vejledning, eller hvis der er noget andet emne, som du vil have os til at dække.

OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...
OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...
SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...