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

Vagrant provisioning with a file


The Vagrant file option gives you an easy way to copy a file from your host machine onto the Vagrant machine during the startup process.

This can be a great way of uploading a configuration file that would otherwise need to be created by the software or possibly required before the software can start working. An example of this would be an .env file that holds environment variables, such as database-connection details or special keys.

There are two options available – you can copy/upload a single file or an entire directory from your host machine to the guest Vagrant machine.

 

 

When using this option, we set the provision option to file in our Vagrantfile, for example:

config.vm.provision "file"

Single file

Uploading a file from the host machine to the guest machine is quick and easy. We just need to set the provision type as file, the source as the file on our host, and the destination as:

Vagrant.configure("2") do |config|
     config.vm.provision "file", source...