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

Docker-specific configuration in Vagrant


When it comes to the Docker-specific options in the Vagrantfile, there are none that are required. If do not enter any options, then Vagrant will simply attempt to install Docker—unless you already have it installed.

Images

If you want Docker to use specific images, then you can pass in an array of image names. In your Vagrantfile, an example would be as follows:

Vagrant.configure("2") do |config|
     config.vm.provision "docker", images: ["nginx"]
 end

This would attempt to pull down the nginx image. There are other options that can be used to handle images: build_image and  pull_images; we will cover these in the following sections.

build_image

As well as running and pulling down images, you can actually build an image before it is then used as part of provisioning and its process. The build is done on the Vagrant guest machine and must be available for Docker to access. It runs the docker build command, so all you have to do is pass in the location...