Getting Started with Vagrant
Manually managing VMs is often a nightmare. This course will teach you how to create VM environments at the push of a button with Vagrant.
What you'll learn
VMs are a powerful tool, but manually setting them up is usually an insurmountable obstacle. In this course, Getting Started with Vagrant, you’ll learn how Vagrant takes the pain out of leveraging VMs. First, you’ll explore defining and running VMs with a Vagrantfile. Next, you’ll discover provisioning software automatically inside the VM. Finally, you’ll learn how to scale this to multi-machine environments. When you’re finished with this course, you’ll have the skills and knowledge of Vagrant needed to create real world dev, test, and integration environments.
Table of contents
- Install Vagrant on macOS 2m
- Install a Pre-release Build of Vagrant on Windows 2m
- vagrant Creates ~/.vagrant.d Directory on First Run 1m
- vagrant init 1m
- What Is a Provider? 2m
- Install VirtualBox on macOS 2m
- Install VirtualBox on Windows 1m
- vagrant up: An Ubuntu 22.04 VM 1m
- vagrant ssh - into the VM 1m
- Ubuntu 12.04 VM via the hashicorp/precise64 Box 4m
- Use Case: Legacy Upstart Jobs in Ubuntu 12.04 2m
- vagrant status - vagrant halt 2m
- vagrant destroy 1m
- Vagrant Manages and Mirrors the VMs State 3m
- Dissecting Vagrant Boxes: Disk Images 2m
- Boxes: OVF and JSON Files 1m
- Vagrant Cloud 2m
- Comparing Box Contents by Provider 1m
- Organizations and Trust 2m
- Using the Parallels Provider on Apple Silicon Macs 5m
- Taking Boxes for Granted 3m
- Creating an Artisinal Windows VM in VirtualBox 3m
- Virtualbox Windows VM to Box with vagrant package --base 1m
- vagrant up: Windows VMs 3m
- Introducing the Vagrantfile 2m
- Where Does the Vagrantfile Come From? 1m
- Ruby for Syntax Highlighting in Vagrantfiles 1m
- git add Vagrantfile and Ignore the .vagrant Folder 3m
- vagrant init --minimal 1m
- Customizing Memory before Creating the VM 2m
- Altering an Existing VM with vagrant reload 3m
- Virtual Machine Settings Drift 2m
- Installing and Running NGINX Inside the VM 1m
- Port Forwarding to Access NGINX from the Host 2m
- Testing the New Port Forwarding Rule 1m
- Blocking Remote Access to a Forwarded Port 3m
- Adding ssh.exe via the OpenSSH.Client Windows Capability 2m
- Using ssh Instead of vagrant ssh 1m
- Fast, Simple SSH with vagrant ssh-config 2m
- Navigating Vagrant's Config Docs 3m
- Catching Mistakes with vagrant validate 3m
- Silence the SSH Banner Message with .hushlogin 2m
- Backup VM Files via the /vagrant Synced Folder 3m
- Recreating the VM with a Completely Different Box 2m
- Installing Vagrant Tab Completions for Zsh and Bash 2m
- Snippets and PowerShell Predictions 4m
- Next up: Provisioning 1m
- Reverse Engineering an NGINX Install Script from .bash_history 3m
- Windows Line Endings (CRLF) Blow up a Bash Script 2m
- .gitattributes to Ensure LF during Checkout 3m
- EditorConfig to Enforce LF When Saving Files 3m
- An Alternative to Synced Folders: vagrant upload 1m
- Adding Shell Provisioners to the Vagrantfile 2m
- vagrant up Runs Provisioners after Recreating a VM 2m
- Don't Forget to Install Your Favorite Tools 2m
- Run Select Scripts On-demand: vagrant provision 2m
- File Provisioners 3m
- Copy and Cleanup Files with a Shell Provisioner 2m
- An Inline Shell Provisioner 1m
- Multiline Scripts with Heredocs 2m
- The Privileged Option 3m
- Refactor to a dotfiles Script 2m
- The Final Test: Fully Recreate the VM from Scratch 2m
- Efficiently Develop Provisioners with Snapshots 2m
- Manually Install Software after Taking a Snapshot 2m
- vagrant snapshot restore 2m
- Reproduce and Suppress the debconf Frontend Dialog 1m
- SSH Tips: Restore Is Faster Than It First Seems 2m
- Exploring Time Sync Issues with Your Snapshot 2m
- Adding a Provisioner to Force Time Sync 2m
- Setting Always Run on the Time Sync Provisioner 2m
- Provisioning with an Ansible Playbook 2m
- Install Ansible 1m
- Snapshot after Installing Ansible 1m
- Modify the Playbook to Install Most 1m
- Modify Playbook to Ensure Most Is the Default Pager 3m
- Idempotent and Declarative 3m
- Popping the Stack of Restores 2m
- The Nuclear Option: Recreating the VM 2m
- Defining a "web" Machine in an Existing Project 2m
- Avoid Orphaning the "default" Machine 2m
- Reassociate the "default" Machine 1m
- Cleaning up the "default" Machine 1m
- Each Machine Can Use a Different Box 2m
- Target One Machine at a Time with vagrant ssh -c 2m
- Target a Subset of Machines with vagrant reload 2m
- Practice Regex Targeting with vagrant status 1m
- Looping to Generate Machine Definitions 1m
- Regex to Bring up a Range of Servers 1m
- Inspecting the Default NAT Networking 2m
- Private Networking with Static IPs 1m
- vagrant reload to Create the Private Network 1m
- The Servers Can Communicate! 1m
- vagrant global status --prune 2m
- Key Resources 3m