SlideShare a Scribd company logo
1 of 31
Download to read offline
Thomas Krille
“Vagrant is a tool for building complete development
environments. [...] Vagrant lowers development
environment setup time [...] and makes the "works
on my machine" excuse a relic of the past.”
Was ist Vagrant?
Quelle: https://www.vagrantup.com/about.html
Orchestrations-Tool für VMs
Provider: VirtualBox, VMware, AWS, libvirt, Docker …
Provisioner: Shell Scripts, Puppet, Ansible, Docker …
Ruby
Plugins
Was ist Vagrant?
2010 von Mitchell Hashimoto
Gründung von HashiCorp 2012
Open Source, MIT License
Linux, Mac OS X, Windows
Was ist Vagrant?
“development environments”
Was ist Vagrant?
isoliert
reproduzierbar
konsistent
Einweg-VMs
Einheitlicher Workflow
Einfache Installation
Warum Vagrant?
Devs
Ops
Designer
QS
...
Warum Vagrant?
Vagrantfile: “Saat” für VMs
Ruby-DSL
data-as-code
ähnlich Dockerfile
Vagrantfile
Demo
Vagrantfile
$ vagrant init ubuntu/trusty64
$ vagrant up
$ vagrant ssh
$ vagrant destroy
Vagrant.configure(2) do |config|
config.vm.box = 'ubuntu/trusty64'
end
Vagrantfile
fertige Templates für VMs
Versioniert, Gebunden an Provider
Standard-Quelle: HashiCorps Atlas box catalog
Selber machen: Packer
Beliebige weitere Quellen (Lokal, Web, ...)
Vagrantfile - Boxes
Technische Einstellungen der VM
Speicher, CPUs, …
Provider spezifische Einstellungen
Vagrant.configure(2) do |config|
...
config.vm.provider :virtualbox do |vb|
vb.memory = 1024
vb.cpus = 2
vb.gui = true
end
...
end
Vagrantfile - Provider Settings
Dateien mit Host teilen
Standard: Projektverzeichnis unter /vagrant
verschiedene Typen: VirtualBox, NFS, RSync, SMB
Vagrant.configure(2) do |config|
...
config.vm.synced_folder 'target/', '/media/wars'
config.vm.synced_folder '.', '/vagrant', :disabled => true
...
end
Vagrantfile - Synced Folders
reproduzierbares Aufsetzen
Mit dabei: Datei kopieren, Shell-Skript, Puppet,
Ansible, Docker, Chef, Salt, CFEngine
Weitere über Plugins
Vagrantfile - Provisioners
Datei kopieren
Vagrant.configure(2) do |config|
...
config.vm.provision :file, :source => 'my_file',
:destination => '/tmp/my_file'
...
end
Vagrantfile - File Provisioner
Shell-Skript ausführen
Vagrant.configure(2) do |config|
...
config.vm.provision :shell,
:path => 'bootstrap.sh'
config.vm.provision :shell,
:inline => 'apt-get install tomcat7'
...
end
Vagrantfile - Shell Provisioner
Puppet-Run starten ohne Master
Vagrant.configure(2) do |config|
...
config.vm.provision :puppet do |puppet|
puppet.manifests_path = 'puppet/manifests'
puppet.module_path = 'puppet/modules'
puppet.options = '--test'
end
...
end
Vagrantfile - Puppet Provisioner (apply)
Management Interface + NAT
Port Forwarding, Private Network, Bridge
DHCP oder Static IP
MAC-Adressen
Mehrere Netzwerke möglich
Vagrantfile - Network
Port Forwarding
Vagrant.configure(2) do |config|
...
config.vm.network :forwarded_port,
:guest => 5432, :host => 5432
config.vm.network :forwarded_port,
:guest => 8080, :host => 8080
...
end
Vagrantfile - Network
Private Network
Vagrant.configure(2) do |config|
...
config.vm.network :private_network, :type => 'dhcp'
config.vm.network :private_network, :ip => '192.168.20.2'
...
end
Vagrantfile - Network
Bridge
Vagrant.configure(2) do |config|
...
config.vm.network :public_network, :bridge => 'eth0',
:ip => '192.168.1.2'
...
end
Vagrantfile - Network
Demo
Vagrantfile
Installation von Docker
docker run
docker pull
docker build
Docker Provisioner
docker run
Vagrant.configure(2) do |config|
...
config.vm.provision :docker do |docker|
docker.run 'osiam',
:image => 'osiamorg/osiam:1.3.2',
:args => '-v /vagrant:/media/vagrant 
-p 8080:8080 
-p 5432:5432'
end
...
end
Docker Provisioner
Demo
Docker Provisioner
Standby: vagrant suspend
Poweroff: vagrant halt
Zerstören: vagrant destroy
VM Beenden
Sicherheit von Vagrant
==
Sicherheit von Provider
aber ...
Security
Vertrauen in Box
Selber machen: Packer
Wie bei Docker Hub, Maven Central, …
Security
vagrant user == root
Passwortloses sudo
Passwort: vagrant
root-Passwort: vagrant
Aber: frische, einzigartige SSH-Keys
Das ist gewollt!
Security
Externe Konfiguration
Multi VM Environments
Ausnutzen von Ruby
Zusätzlicher Storage
-> Lightning Talk am 4. Mai 2015
Advanced Vagrant
• https://www.vagrantup.com/
• https://docs.vagrantup.com/
• Vagrant: Up and Running (O'Reilly Media)
http://shop.oreilly.com/product/0636920026358.do
• Beispiele zum Talk
https://github.com/tkrille/tech-talk-vagrant
Links

More Related Content

What's hot

Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
Jérôme Petazzoni
 

What's hot (20)

Docker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutesDocker 101 - from 0 to Docker in 30 minutes
Docker 101 - from 0 to Docker in 30 minutes
 
[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode[DockerCon 2019] Hardening Docker daemon with Rootless mode
[DockerCon 2019] Hardening Docker daemon with Rootless mode
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
 
Docker open stack boston
Docker open stack bostonDocker open stack boston
Docker open stack boston
 
Perspectives on Docker
Perspectives on DockerPerspectives on Docker
Perspectives on Docker
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)
 
Introduction to Project atomic (CentOS Dojo Bangalore)
Introduction to Project atomic (CentOS Dojo Bangalore)Introduction to Project atomic (CentOS Dojo Bangalore)
Introduction to Project atomic (CentOS Dojo Bangalore)
 
App container rkt
App container rktApp container rkt
App container rkt
 
猿でもわかるコンテナ
猿でもわかるコンテナ猿でもわかるコンテナ
猿でもわかるコンテナ
 
Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)Microservices. Microservices everywhere! (At OSCON 2015)
Microservices. Microservices everywhere! (At OSCON 2015)
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
JOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to ProductionJOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to Production
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @GuidewireIntroduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
 
First steps to docker
First steps to dockerFirst steps to docker
First steps to docker
 
Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨Docker 初探,實驗室中的運貨鯨
Docker 初探,實驗室中的運貨鯨
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
 

Viewers also liked

Bmdsys für slideshow
Bmdsys für slideshowBmdsys für slideshow
Bmdsys für slideshow
heilholz
 
Contextos sec 99
Contextos sec 99Contextos sec 99
Contextos sec 99
Javier Sanchez
 
Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...
Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...
Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...
Tns-Ilres
 

Viewers also liked (20)

Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACI
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Flickr zerbitzuaren oinarrizko ezaugarriak
Flickr zerbitzuaren oinarrizko ezaugarriakFlickr zerbitzuaren oinarrizko ezaugarriak
Flickr zerbitzuaren oinarrizko ezaugarriak
 
Devops ohne root
Devops ohne rootDevops ohne root
Devops ohne root
 
Ensayo TC
Ensayo TCEnsayo TC
Ensayo TC
 
La esperanza 14mar2011
La esperanza 14mar2011La esperanza 14mar2011
La esperanza 14mar2011
 
BJC Abschlussdokumentation
BJC AbschlussdokumentationBJC Abschlussdokumentation
BJC Abschlussdokumentation
 
Bmdsys für slideshow
Bmdsys für slideshowBmdsys für slideshow
Bmdsys für slideshow
 
Botto S LemaTrabajo final 1º 3
Botto S LemaTrabajo final 1º 3 Botto S LemaTrabajo final 1º 3
Botto S LemaTrabajo final 1º 3
 
Contextos sec 99
Contextos sec 99Contextos sec 99
Contextos sec 99
 
Carnavales 2011
Carnavales 2011Carnavales 2011
Carnavales 2011
 
Sistemas de información
Sistemas de informaciónSistemas de información
Sistemas de información
 
USO BASICO DE EXCEL2010
USO BASICO DE EXCEL2010USO BASICO DE EXCEL2010
USO BASICO DE EXCEL2010
 
Poesía, lenguaje de los sentidos
Poesía, lenguaje de los sentidosPoesía, lenguaje de los sentidos
Poesía, lenguaje de los sentidos
 
Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...
Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...
Polit monitor lëtzebuerg_-_rtl_luxemburger_wort_september_2013_volet_4_perspe...
 
RidersON
RidersONRidersON
RidersON
 
Intervention Fabien Raimbaud - Structuration touristique - INTERPATT 2012
Intervention Fabien Raimbaud - Structuration touristique - INTERPATT 2012Intervention Fabien Raimbaud - Structuration touristique - INTERPATT 2012
Intervention Fabien Raimbaud - Structuration touristique - INTERPATT 2012
 
Presentacionelcaminohaci
Presentacionelcaminohaci Presentacionelcaminohaci
Presentacionelcaminohaci
 
Manual iniciacion
Manual iniciacionManual iniciacion
Manual iniciacion
 
La statistique du chômage au sens du BIT en Suisse
La statistique du chômage au sens du BIT en SuisseLa statistique du chômage au sens du BIT en Suisse
La statistique du chômage au sens du BIT en Suisse
 

Similar to Tech Talk - Vagrant

Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Carlos Sanchez
 
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Acquia
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
Hendrik Ebbers
 

Similar to Tech Talk - Vagrant (20)

Intro to vagrant
Intro to vagrantIntro to vagrant
Intro to vagrant
 
Vagrant - Version control your dev environment
Vagrant - Version control your dev environmentVagrant - Version control your dev environment
Vagrant - Version control your dev environment
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
Postgres the hardway
Postgres the hardwayPostgres the hardway
Postgres the hardway
 
Open stack and_vagrant-os-meetup-2015
Open stack and_vagrant-os-meetup-2015Open stack and_vagrant-os-meetup-2015
Open stack and_vagrant-os-meetup-2015
 
Vagrant
Vagrant Vagrant
Vagrant
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Minicurso de Vagrant
Minicurso de VagrantMinicurso de Vagrant
Minicurso de Vagrant
 
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
Harmonious Development: Standardizing The Deployment Process via Vagrant and ...
 
Create Development and Production Environments with Vagrant
Create Development and Production Environments with VagrantCreate Development and Production Environments with Vagrant
Create Development and Production Environments with Vagrant
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Create your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and PackerCreate your very own Development Environment with Vagrant and Packer
Create your very own Development Environment with Vagrant and Packer
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))
 
Virtualization with Vagrant (ua.pycon 2011)
Virtualization with Vagrant (ua.pycon 2011)Virtualization with Vagrant (ua.pycon 2011)
Virtualization with Vagrant (ua.pycon 2011)
 
Software Defined Datacenter
Software Defined DatacenterSoftware Defined Datacenter
Software Defined Datacenter
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
 
Vagrant
VagrantVagrant
Vagrant
 
Vagrant Up in 5 Easy Steps
Vagrant Up in 5 Easy StepsVagrant Up in 5 Easy Steps
Vagrant Up in 5 Easy Steps
 
Vagrant-Binding JUG Dortmund
Vagrant-Binding JUG DortmundVagrant-Binding JUG Dortmund
Vagrant-Binding JUG Dortmund
 
Vagrant - Team Development made easy
Vagrant - Team Development made easyVagrant - Team Development made easy
Vagrant - Team Development made easy
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 

Tech Talk - Vagrant