Vagrant: Difference between revisions
From charlesreid1
| Line 35: | Line 35: | ||
</pre> | </pre> | ||
From there you can run the vagrant init command to initialize the virtual machine using Vagrant | From there you can run the vagrant init command to initialize the virtual machine using Vagrant. | ||
'''NOTE:''' The first time you run the vagrant box with <code>vagrant up</code>, vagrant will download the virtual machine image, which could take a long time and will use a lot of bandwidth. | |||
<pre> | <pre> | ||
Revision as of 20:30, 9 December 2019
Vagrant is an open source tool for managing virtual machines.
Related: Ansible
What is it
Think of Vagrant like a command line interface for VirtualBox.
Vagrant has built-in support for Ansible.
Installing
Start by installing VirtualBox, then install Vagrant from http://www.vagrantup.com/
Mac OS X
On OS X, use Homebrew to install both VirtualBox and Vagrant:
# NOTE: These commands will ask you for your system password brew cask install virtualbox brew cask install vagrant brew cask install vagrant-manager
Basic Startup Shutdown Procedure
Start Vagrant Machine
Create a directory for your vagrant virtual boxes:
mkdir myvagrant cd myvagrant
From there you can run the vagrant init command to initialize the virtual machine using Vagrant.
NOTE: The first time you run the vagrant box with vagrant up, vagrant will download the virtual machine image, which could take a long time and will use a lot of bandwidth.
# for ubuntu 16.04: vagrant init ubuntu/xenial64 vagrant up # for ubuntu 18.04: vagrant init ubuntu/bionic64 vagrant up
Connect to Vagrant Machine
Now you can ssh into the new virtual machine using
$ vagrant ssh
To see the SSH details, type:
$ vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/whoami/dev/ansiblebook/ch01/playbooks/.vagrant/machines/default/virtualbox/private_key IdentitiesOnly yes LogLevel FATAL
(this should be run from the host machine.)
If multiple virtual machines, each node should have same values except for SSH key.
Manually Connect to Vagrant Machine
using the key printed from the above command, you can SSH manually using that key:
$ ssh vagrant@127.0.0.1 -p 2222 -i $HOME/dev/ansible/dev/ansiblebook/ch01/playbooks/.vagrant/machines/default/virtualbox/private_key
This will log you in without prompting for a password.
Note that everything vagrant-related is stored in the .vagrant/ directory.
Stop Vagrant Machine
To stop the machine, run vagrant halt:
$ vagrant halt
Using Vagrant with Multiple Machines
See the guide on the Ansible/Full Stack Playbook page.
Resources
Mac OS X Setup Guide: https://sourabhbajaj.com/mac-setup/Vagrant/README.html