Although a number of base Vagrant boxes are available on the Vagrant box repository, there may be times where we need to create our own virtual machine image that Vagrant can use to provision new environments. And while some of this configuration is provider-specific, there are still a number of tasks that all base boxes require in order to work with Vagrant out of the box.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Install Needed Packages
Switch to root:
sudo -i
Install the
linux-headers
package for the appropriate release,build-essential
anddkms
. Note: Please wait several minutes for the dpkg lock to release if you have trouble installing the software.:apt-get install linux-headers-$(uname -r) build-essential dkms -y
- Configure Vagrant Users
Create a new
vagrant
user:useradd vagrant -m -G sudo -s /bin/bash
Set the default password for both
vagrant
androot
users tovagrant
:passwd vagrant
passwd rootEnsure the
vagrant
user can use passwordlesssudo
:visudo
vagrant ALL=(ALL:ALL) NOPASSWD: ALL
Save and exit
visudo
.
- Add the Vagrant Public Key
Switch to the
vagrant
user:su - vagrant
Create an
.ssh
directory:mkdir .ssh
Pull down the public key and add it to the
authorized_keys
file:wget https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
mv vagrant.pub .ssh/authorized_keysSet the permissions for the new directory and file:
sudo chmod 700 .ssh
sudo chmod 600 .ssh/authorized_keys