Vagrant

Vagrant Tutorial

Vagrant Tutorial
Vagrant er et verktøy for å administrere virtuelle maskiner ved hjelp av et enkelt kommandolinjegrensesnitt. Det skal gjøre hele prosessen ryddig og ren uten at hovedinstallasjonen din er forurenset med massevis av konfigurasjonsfiler.Vagrant bruker VirtualBox i backend der Virtual Machines kjører, og hvis du åpner VirtualBox etter å ha installert noen av disse Vagrant Boxes, vil du se at det er nye virtuelle maskiner som ikke var der før. Vagrant-boksen er bare et annet begrep for virtuelle maskiner som håndteres spesifikt av dette verktøyet som vi diskuterer.

Hvorfor bry seg?

Hashicorp, selskapet bak Vagrant, har et lager for mange Flotte bokser som er forhåndskonfigurerte virtuelle maskinbilder der du kan generere et hvilket som helst antall virtuelle maskiner lokalt. Det løser to problemer:

  1. Fordi alle begynner med det samme bildet, kan utviklere bli kvitt Det fungerer på min maskin unnskyldning, der en bestemt app ville fungere perfekt på en maskin, men ikke en annen. Alle utvikler seg på forskjellige maskiner, men kjører på nøyaktig samme konfigurasjon av virtuell maskin.
  2. Du trenger ikke å gjøre gjentatt installasjon av virtuelle maskiner hvis du bestemmer deg for å kvitte deg med gamle. Vagrant tar seg av hele installasjonen og oppsettet av VM-en din. Alt fra tildeling av lagring og minne til å opprette brukere som setter opp tillatelser.

På mange måter ligner det på Docker-bilder, og det løser lignende problemer, med hovedforskjellen at den bruker virtuelle maskiner i stedet for at containere gjør det, avgjort, tyngre og langsommere alternativ. Imidlertid kommer virtuelle maskiner med sine egne fordeler som bedre nettverksstabel og mer fleksibilitet når det gjelder valg av filsystem, osv. Slik at Vagrant kan fylle opp en bestemt nisje med bærbare virtuelle maskiner.

Så la oss komme i gang!

Forutsetninger

Først og fremst er kravet installasjonen av VirtualBox, hvoretter du bør installere Vagrant. Hvis du allerede har VirtualBox, er det bare å få sistnevnte. Installasjonsprosessen kan variere mye, avhengig av hvilket operativsystem verten kjører, så jeg ber deg ta kontakt med de offisielle dokumentene for dette:

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

I tillegg, hvis du bruker Windows, trenger du en SSH-klient, vil du kanskje installere Git Bash som fungerer perfekt på Windows med standardinstallasjonsalternativene.

1.  Flotte bokser

Vagrant Box er betegnelsen på virtuelle maskiner som administreres av Vagrant. Du kan få Vagrant-bokser som bare inneholder operativsystemet som Ubuntu, CentOS, etc. Eller de kan inneholde forhåndskonfigurert LAMP-stack, MEAN-stack eller annen programvareinstallasjon som kan gjøre prosessen med utvikling og testing enklere.

For eksempel, hvis du skriver et WordPress-tema, kan du få en Vagrant-boks med WordPress-kjernen som allerede kjører på den. Du kan dele prosjektmappen din der du har innholdet i temaet ditt med denne VM. Sjekk om det nye temaet fungerer som forventet. Når du er ferdig med temaet, bare destory boksen, og bare la igjen prosjektfilene som du nå vet vil fungere bra i den virkelige verden.

Du kan utforske disse boksene her. Vi skal starte med en ren Ubuntu 16.04 LTS-boks. Du kan se den oppført som ubuntu / xenial64, hvis du besøker lenken ovenfor.

Åpne terminalen din og lag en mappe for dine Vagrant-eksperimenter.

$ mkdir vagrant_box
$ cd vagrant_box

I denne mappen kan vi initialisere vårt Vagrant-miljø ved å kjøre:

$ vagrant init

Dette plasserer en Vagrantfil inne i mappen som egentlig er et Ruby-skript som beskriver konfigurasjonen til Vagrant Box. Du trenger ikke å kjenne Ruby for å bruke denne filen, syntaksen er ganske enkel. Vi vil dekke det viktigste når vi går videre.

Nå kan du kjøre vagrant up-kommandoen, og fordi du kjører den for første gang, må den laste ned Virtual Machine-bildet fra appen.vagrantup.com. Det kan ta lang tid, avhengig av internettforbindelsen din, men når den er lastet ned, påfølgende vandrende opp kommandoer for lignende omstreifende init ubuntu / xenial64 tar ikke så lang tid fordi bildet nå er lagret lokalt på datamaskinen din. Forsikre deg om at du er i samme katalog (vagrant_box) der Vagrantfile ble plassert tidligere.

$ vandrende opp

Når dette er ferdig, kan du ssh inn i boksen når brukeren vandrer med rotprivilegier. Bare kjør følgende:

$ vagrant ssh

Gratulerer! Du har nettopp logget inn i din første Vagrant Box. Nå som vi har startet det, la oss lære noen grunnleggende vandrende kommandoer før vi dykker ned i Vagrantfil. Bare skriv exit og trykk for å avslutte VM-terminalen. Den vandrende boksen vil fortsatt kjøre i bakgrunnen.

Vanlig Vagrant-kommando

Hvis du ønsker å stoppe kjøreboksen, kjører du kommandoen:

$ vandrende stopp

For å starte på nytt kan du bruke vandrende opp

Hvis du vil, kan du også bruke

$ vagrant suspendere
$ vandrende CV

Disse vil suspendere VM og bringe den tilbake trygt. Hvis du gjør endringer i Vagrantfile og vil at endringene skal vises, bruker du kommandoen:

$ omstrekkelig omlasting

Husk å kjøre all kommandoen fra samme katalog der Vagrantfile ligger. Du kan opprette flere vandrende bokser hvis du oppretter nye kataloger andre steder og kjører vandrende init  i dem. Du vil administrere dem fra deres respektive mapper. De kan være basert på det samme ubuntu / xenial bilde vi fikk tidligere, eller du kan hente inn mer bilde.

For å liste opp alle de vandrende boksene og statusen deres (kjører eller stoppes), bruk kommandoen:

$ vagrant global status

Slik fjerner du en vagrantboks og alt privat innhold fra boksens katalog (hvor den respektive Vagrantfile er plassert):

$ vagrant ødelegge

Basisbildet du lastet ned tidligere vil fortsatt eksistere hvis du ønsker å opprette nye bokser senere. Hvis du ønsker å se alle bildene som er lagret lokalt, kan du kjøre:

$ vagrant boks liste

For å slette selve boksbildet, kjør:

$ vandrende boks fjern

Etter dette må du laste ned boksen igjen, hvis behovet for det skulle oppstå.

Inspisere Vagrantfil

Ved første øyekast kan det virke som om det er mange alternativer i en Vagrantfil. Selv om det veldig godt kan være sant, er det interessant å merke seg hvor mye du kan oppnå med bare litt finjustering.

1.   Den delte mappen

De fleste vandrende bokser kommer med delte mapper forhåndskonfigurert. For eksempel, hvis du inspiserer Vagrantfile opprettet vi den aller første gangen vi løp vandrende init vil du legge merke til oppføringen, som er en kommentert linje,

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

Den synkroniserte mappen er tilgjengelig både fra den vandrende boksen og vertsmaskinen. Det første argumentet etter config.vm.synkronisert_mappe indikerer banen til mappen på verten, og det andre argumentet indikerer banen der mappen vil bli montert på gjestenes vandrende boks. Som standard deles også mappen der du opprettet Vagrantfile med den vandrende boksen.

La oss bekrefte dette ved å skyve inn i vår omstreifende boks.

$ vagrant ssh

Her lister du filsystemene.

$ df -h

Du kan se at det er et stort filsystem vandrende montert på / vandrende sti. Grunnen til at den er så stor, er at Vagrantfile-mappen på vertsmaskinen min er på en partisjon som er 632 GB stor, og mappen der borte også kan vokse til den størrelsen. Siden det er den samme mappen som deles med boksen, gir den vanvittig mye lagringsplass.

Du kan inspisere innholdet i / vandrende og de er de samme som du ser på verten din, nemlig en Vagrantfile og en annen loggfil.

Du kan legge til mer delt mappe der kommentaren som forklarer syntaksen for den delte mappen vises.

Som så,

I dette tilfellet en mappe med navnet Delt mappe blir lagt til, som er en katalog ovenfor, derav den dobbelte prikken før den. Denne mappen er montert på / var / www / html  på innsiden av boksen. Det er her de fleste webservere som apache og nginx ser etter webinnholdet de vil servere.

Du kan ganske enkelt ha prosjektfilene, html, css og js i Delt mappe hvor du jobber med den på vertsmaskinen din ved hjelp av grafiske tekstredigerere som Atom og VSCode . Den vandrende boksen vil fungere som en produksjonsgradsserver som serverer disse filene.

Nå er spørsmålet hvordan vi ser at disse html-filene blir servert som en webside. Hvilket vertsnavn du skal oppgi i nettleseren?

2.   Nettverk

Som standard gir vagrant noen nyttige konfigurasjoner. Forespørselen sendt av nettleseren din til localhost på port 8080 blir videresendt til port 80 i din vandrende boks. Så hvis du har en webserver som kjører på din vandrende boks som lytter på port 80 (standard http-port), kan du se den nettsiden ved å gå til http: // localhost: 8080

På den annen side vil du kanskje unngå all videresending av localhost-porten. I så fall kan du åpne Vagrantfile og fjerne kommentaren til følgende linje:

config.vm.nettverk "private_network", ip: "192.168.33.10 "

Lagre endringene du har gjort og kjør omstrekkelig omlasting for å starte boksen på nytt med ny konfigurasjon. Nå har den en dedikert privat ip-adresse 192.168.33.10 som bare verten din har tilgang til. Så du kan nå åpne nettleseren og skrive inn http: // 192.168.33.10, og du kan se websidene blir vist på standardport 80 på http.

Konklusjon

Som du kan se, kan Vagrant hjelpe deg med å kjøre applikasjonene dine lokalt, da de ville kjøre i produksjon samtidig som du kan jobbe med dem ved hjelp av IDEer og tekstredigerere som du ikke ville ha på en typisk server. Bruk av delte mapper og privat nettverk forbedrer denne evnen til Vagrant sterkt.

Gi oss beskjed hvis du har flere spørsmål angående denne opplæringen, eller hvis det er noe annet tema du vil at vi skal dekke.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...