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:
- 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.
- 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:
- Få VirtualBox her
- 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 oppNår dette er ferdig, kan du ssh inn i boksen når brukeren vandrer med rotprivilegier. Bare kjør følgende:
$ vagrant sshGratulerer! 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
Vanlig Vagrant-kommando
Hvis du ønsker å stoppe kjøreboksen, kjører du kommandoen:
$ vandrende stoppFor å 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 omlastingHusk å 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 statusSlik fjerner du en vagrantboks og alt privat innhold fra boksens katalog (hvor den respektive Vagrantfile er plassert):
$ vagrant ødeleggeBasisbildet 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 listeFor å slette selve boksbildet, kjør:
$ vandrende boks fjernEtter 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 sshHer 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.