Book Image

Hands-On DevOps with Vagrant

By : Alex Braunton
Book Image

Hands-On DevOps with Vagrant

By: Alex Braunton

Overview of this book

Hands-On DevOps with Vagrant teaches you how to use Vagrant as a powerful DevOps tool and gives an overview of how it fits into the DevOps landscape. You will learn how to install VirtualBox and Vagrant in Windows, macOS, and Linux. You will then move on to understanding Vagrant commands, discovering its boxes and Vagrant Cloud. After getting to grips with the basics, the next set of chapters helps you to understand how to configure Vagrant, along with networking. You will explore multimachine, followed by studying how to create multiple environments and the communication between them. In addition to this, you will cover concepts such as Vagrant plugins and file syncing. The last set of chapters provides insights into provisioning shell scripts, also guiding you in how to use Vagrant with configuration management tools such as Chef, Ansible, Docker, Puppet, and Salt. By the end of this book, you will have grasped Vagrant’s features and how to use them for your benefit with the help of tips and tricks.
Table of Contents (21 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

An introduction to Vagrant multi-machine


Using Vagrant's multi-machine feature, you can easily manage multiple Vagrant machines in one Vagrantfile. This can be useful if you wish to model your test environment in a similar way to your production environment. You can easily separate servers such as web servers, file servers, and database servers.

In this section, we will look at using multi-machine in the two following use cases:

  • In the first use case, we will look at managing three Vagrant machines. Here, we will create a basic load balancing setup, where one machine will distribute traffic between two machines that serve up a website.
  • In the second use case, we will be managing two Vagrant machines. We will create a web-based machine that serves a website and another machine, which runs a MySQL database. The web machine will communicate with the database machine to display data on the web page.

Load balancing with Vagrant multi-machine

In this section, we are going to be using nginx to act as...