Vagrant homestead na Windows 10

Prirodno radno okruženje za razvoj web aplikacija je Linux. Moguće je naravno raditi i na MacOS i Win platformama ali s obzirom da su host mašine (serveri) na kojima će se aplikacije vrteti uglavnom Linux platforme logično je da i razvoj bude na istoj.

Zbog nedostatka prostora na radnom stolu a imamo potrebu za više različitih okruženja pribegavamo virtualizaciji. U ovom tekstu ću kroz primer opisati primer postavljanja jednog radnog okruženja sa Windows 10 kao hostom i konfigurisanje VM Ubuntu uz pomoć Vagranta.
Ako me pitate, (he, he, … zvuči poznato ;-), šta tačno dobijemo ovim !?
Dobijamo spajanje dve platforme gde koristimo najbolje od obe. Source aplikacije će biti mapiran preko virtuelnih foldera, tako da izmene i debug radimo na windows a izvršavanje na linux platformi.

Preduslovi

Da bi smo krenuli sa postavljanjem našeg virtuelnog razvojnog okruženja potrebno je da instaliramo par alatki. Neću se posebno zadržavati na njihovom opisu, dovoljno je da skinete i instalirate svaku pojedinačno bez dodatnih podešavanja.

U trenutku pisanja ovog teksta rađeno je sa verzijama Git-bash 2.8.3, Vagrant 1.8.6, Homestead 0.5, VirtualBox 5.0, Bitvise Tunnelier 7.15

Start Git-Bash

Većina operacija koje slede mogu se izvesti i iz Windows command prompta CMD, ali mi ćemo koristiti git-bash da bi ispratili sintaksa u osnovnoj dokumentaciji. Dakle startujemo git-bash kao administrator:

Dodavanje Vagrant virtuelne mašine

Prvo možemo proveriti verziju

$ vagrant version

Zatim ćemo dodati Homestead preko Vagranta. Komanda za to je:

$ vagrant box add laravel/homestead

U zavisnosti od brzine mreže potrajaće neko vreme download i instalacija.

Instalacija Homestead-a

Homestead je već gotovo radno okružnje sa svim potrebnim alatima i bibliotekama na Ubuntu distribuciji. Pre nego izvršimo git clone potrebno je pozicionirati se na root vašeg profila, u mom slučaju to će biti: c:\users\k
Najlakše će te to postići, ako koristite git-bash, komandom: cd ~

# ~ idemo na Windows User Home, %HOMEDRIVE%%HOMEPATH%
# Uobičajeno je C:\Users\{korisnik}
$ cd ~
# Kopira Homestead u: C:\Users\{korisnik}\Homestead
$ git clone https://github.com/laravel/homestead.git Homestead

Kada je Homestead instaliran napravićemo Homestead.yaml konfiguracioni fajl.

# Idemo na Homestead instalacioni folder
$ cd ~/Homestead
# inicijalizujemo Homestead konfiguracioni fajl
$ bash init.sh

Ako nešto pođe po zlu, možete ručno kopirati fajlove iz C:\Users{korisnik}\Homestead\src\stubs u C:\Users{korisnik}.homestead.
Ukoliko budete gledali dokumentaciju možda ćete videti pojedine komande kao što su homestead init, homestead up, homestead edit. Te komande neće biti dostupne ako instalaciju vršite preko git-a.NIje veliki problem ali je vredno pomenuti.

Generisanje SSH-ključeva

Ukoliko ste već korisnik Git-a ovaj korak možete preskočiti. Za generisanje ključeva možete koristiti Bitvise Tunnelier


Nakon što ste generisali ključeve, možete ih snimiti u OpenSSH formatu. pod nazivom homestead_rsa.pub i homestead_rsa.

Konfigurisanje Homestead VM

Konfigurišite Homestead prema vašem okruženju. Moj Homestead.yaml izgleda otprilike ovako:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: C:/Users/K/.ssh/id_rsa.pub

keys:
    - C:/Users/K/.ssh/id_rsa

folders:
    - map: C:/Users/K/Desktop/Work
      to: /home/vagrant/Work

    - map: C:\Users\K\Desktop\Work\laravel
      to: /home/vagrant/Work/laravel

sites:

    - map: laravel.dev
      to: /home/vagrant/Work/laravel/public

Startovanje

U ovom koraku ćete znati da li ste sve dobro odradili. Trenutak istine, startujte:

$ cd ~/Homestead
$ vagrant up

Da bi sajtovi koje ste konfigurisali u Homestead.yaml bili dostupni, potrebno je da ih dodate u c:\windows\system32\drivers\etc\hosts .

127.0.0.1 laravel.dev

Ukoliko ukucate u vašem browseru http://laravel.dev trebalo bi da dobijete početeni ekran aplikacije a ukoliko se to ne desi, proverite iz početka da niste preskočili neki korak. Moguće su različite greške pre svega zbog različitih okruženja. Dodatne informacije možete naći na linkovima: