Vagrant Training

Introduction

Vagrant is an open source software used to create and manage virtual development environments. It can be considered a wrapper around virtualization software such as VirtualBox and configuration management software such as Chef, Ansible, and Puppet.

Vagrant allows you to use virtualization and cloud technologies to power faster, efficient, and sharable development environments. It duplicates the development environment to allow users to easily share and combine data on different machines and also takes care of security concerns.

 

What You Will Learn

  • Define single and multiple virtual machine Vagrant environments
  • Provision Vagrant environments in a consistent and repeatable manner with various configuration management tools
  • Control powerful cloud resources from a desktop development environment
  • Use Vagrant to publish and share development environments
  • Start and expand your Vagrant environment with community resources
  • Share resources on a development machine with a virtual Vagrant environment

 

Course Contents

1. An Introduction to Vagrant

  • Why Vagrant?
  • The Tao of Vagrant
  • Alternatives to Vagrant
    • Plain Desktop Virtualization
    • Containers
    • Cloud
  • Vagrant Versions

2. Setting Up Vagrant

  • Installing VirtualBox
  • Installing Vagrant
    • Mac OS X
    • Windows
    • Linux
  • Common Mistakes
    • Improper PATH Configuration
    • Conflicting RubyGems Installation
  • Using Vagrant Without VirtualBox

 

3. Your First Vagrant Machine

  • Up and Running
  • The Vagrantfile
    • V1 versus V2 Configuration
  • Boxes
  • Up
  • Working with the Vagrant Machine
    • State of the Vagrant Machine
    • SSH
    • Shared Filesystem
    • Basic Networking
    • Teardown
      • Suspend
      • Halt
      • Destroy

 

4. Provisioning Your Vagrant VM

  • Why Automated Provisioning?
  • Supported Provisioners
  • Manually Setting Up Apache
  • Automated Provisioner Basics
    • Shell Scripts
    • Chef
    • Puppet
  • Multiple Provisioners
  • “No Provision” Mode
  • In-Depth Provisioner Usage
    • Shell Scripts
      • Inline scripts
      • Run-once scripts
    • Chef Server
    • Puppet
      • Modules
      • Hiera Data
      • Custom Facts
      • Using a Puppet Master

 

5. Networking in Vagrant

  • Forwarded Ports
    • Pros and Cons
    • Basic Usage
    • Collision Detection and Correction
    • TCP versus UDP
  • Host-Only Networking
    • Pros and Cons
    • Basic Usage
    • Guest Operating System Dependency
  • Bridged Networking
    • Pros and Cons
    • Basic Usage
  • Composing Networking Options
  • NAT Requirement As the First Network Interface

 

6. Modeling Multimachine Clusters

  • Running Multiple Virtual Machines
  • Controlling Multiple Machines
  • Communication Between Machines
    • Host-Only Networks
    • Bridged Networks
  • Real Example: MySQL

 

7. Boxes

  • Why Boxes?
  • Box Format
  • Basic Box Management with Vagrant
  • Creating New Boxes from an Existing Environment
  • Creating New Boxes from Scratch
    • Creating the VirtualBox Machine
    • Configuring the Operating System
    • Installing VirtualBox Guest Additions
    • Additional Software
    • Minimizing the Final Box Size
    • Packaging It Up
    • Setting Vagrantfile Defaults

 

7. Extending Vagrant with Plug-Ins

  • Extensible Features
  • Managing Vagrant Plug-Ins
  • Plug-In Development Basics
    • Plug-In Definition
    • Plug-In Components
    • Error Handling
    • Vagrant Internals
  • A Basic Plug-In Development Environment
  • Developing a Custom Command
    • Component
    • Implementation
    • Working with the Virtual Machine
    • Working with Multimachine Environments
    • Parsing Command-Line Options
  • Adding New Configuration Options
    • Component
    • Implementation
    • Accessing the Configuration
    • Configuration Merging
    • Validation
  • Adding a Custom Provisioner
    • Component
    • Implementation
    • Provisioner Configuration
    • Configuring the Machine
  • Modifying Existing Vagrant Behavior
    • Component
    • Implementation
    • Useful Keys in the Action Environment
  • Other Plug-In Components
  • Packaging the Plug-In

Vagrant Environmental Variables

  • VAGRANT_CWD
  • VAGRANT_HOME
  • VAGRANT_LOG
  • VAGRANT_NO_PLUGINS
  • VAGRANT_VAGRANTFILE

Vagrant Configuration Reference

Troubleshooting and Debugging

  • IRC
  • Mailing List/Google Group
  • Professional Support

 

 

 

info@bigdatatraining.in

http://www.bigdatatraining.in/contact/

Call – +91 97899 68765 / 044 – 42645495