- A Cloud Guru
Creating a Multi-Machine Vagrant Environment
By using a "Vagrantfile within a Vagrantfile" structure, we can create code that allows Vagrant to provision an environment comprised of multiple machines. This lets us create Vagrant environments that closely mimic production, separating out databases, services, applications, and more as needed. In this hands-on lab, we use the LXC provider to create two different machines and establish that the machines can communicate.
Table of Contents
Create Two Machines
Move into the
websitedirectory and initialize a Vagrantfile:
cd website vagrant init
Update the Vagrantfile so two containers are created:
vim Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "fgrehm/trusty64-lxc" config.vm.provider "lxc" config.vm.define "web" do |web| end config.vm.define "db" do |db| end end
Configure the Private Network
Still editing your Vagrantfile, add a private network to each guest:
Vagrant.configure("2") do |config| config.vm.box = "fgrehm/trusty64-lxc" config.vm.provider "lxc" config.vm.define "web" do |web| web.vm.network "private_network", ip: "192.168.2.110", lxc__bridge_name: "brdg" end config.vm.define "db" do |db| db.vm.network "private_network", ip: "192.168.2.111", lxc__bridge_name: "brdg" end end
Save and exit the file.
Test the Environment
Deploy the environment:
Log in to the
vagrant ssh web
View the IP of the guest:
What's a lab?
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.