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 Shell provisioner


We've seen how to use a basic shell provisioner, but depending on your setup and required environment, you may have quite a large, complex provisioner script. This script may require arguments or environment variables, or may be linked to an external resource hosted elsewhere.

In this section, we will look at the many options available when using shell as a Vagrant provisioner. This is often used by beginners but can be very powerful and flexible, especially if you do not want to set up configuration-management tools such as Chef and Ansible.

When using the shell provisioner, there are optional configuration settings available:

  • args: These are arguments that you specify for use by the provisioning script. This can be a string or an array of values.
  • env: This is a list of key-value pairs (hash) as environment variables to the script.
  • binary: Vagrant by default replaces Windows line endings with Unix line endings, unless you change this value to true.
  • privileged: This allows...