Vagrant is an Open
Source tool for building and managing virtualized development environments. In
other words vagrant is used to create Virtual machines. A virtual machine is a
software implementation of a computer, running a complete operating system
stack on a virtualizer. Virtuals configured by Vagrant are hosted on Oracle
virtual Box which is a virtualizer and open source provided by Oracle.
The virtual machine
is generally a full implementation of the Computer with a Disk, memory and CPU.
The machine running the virtualizer is the Host system. The virtual machine
running on the virtualizer is the Guest system. As far as the Guest operating system
is concerned, it is running on real hardware. From the perspective of the Host,
all of the Guest's resources are used by the virtualizer program. A Box, or
base image, is the prepackaged virtual machine that Vagrant will manage.
In other words, vagrant
is used to Create and configure
lightweight, reproducible, and portable development environments. This article will tell you on how to
configure the Vagrant Virtuals and basic usage of them.
1) Installing
vagrant
Vagrant can be
downloaded from here.
Choose the packages based on your Operating system and download them.
2) Once downloaded
as an RPM for *nix based OS, run the yum command for installing the vagrant.
Once installed, run the
[root@vx111a
Downloads]# vagrant -v
Vagrant 1.7.4
We can see the
commands available with vagrant using
[root@vx111a ~]#
vagrant list-commands
Below is a listing of all available Vagrant commands and a brief description of what they do.
Below is a listing of all available Vagrant commands and a brief description of what they do.
box
|
manages boxes installation, removal, etc.
|
connect
|
connect to a remotely shared Vagrant
environment
|
destroy
|
stops and deletes all traces of the vagrant
machine
|
docker-logs
|
outputs the logs from the Docker container
|
docker-run
|
run a one-off command in the context of a
container
|
global-status
|
outputs status Vagrant environments for this
user
|
halt
|
stops the vagrant machine
|
help
|
shows the help for a subcommand
|
init
|
initializes a new Vagrant environment by
creating a Vagrantfile
|
list-commands
|
outputs all available Vagrant subcommands,
even non-primary ones
|
login
|
log in to HashiCorp's Atlas
|
package
|
packages a running vagrant environment into
a box
|
plugin
|
manages plugins install, uninstall, update,
etc.
|
provision
|
provisions the vagrant machine
|
push
|
deploys code in this environment to a
configured destination
|
rdp
|
connects to machine via RDP
|
reload
|
restarts vagrant machine, loads new
Vagrantfile configuration
|
resume
|
resume a suspended vagrant machine
|
rsync
|
syncs rsync synced folders to remote machine
|
rsync-auto
|
syncs rsync synced folders automatically
when files change
|
share
|
share your Vagrant environment with anyone
in the world
|
ssh
|
connects to machine via SSH
|
ssh-config
|
outputs OpenSSH valid configuration to
connect to the machine
|
status
|
outputs status of the vagrant machine
|
suspend
|
suspends the machine
|
up
|
starts and provisions the vagrant
environment
|
version
|
prints current and latest Vagrant version
|
Terminology of Vagrant
Before starting
with the vagrant we need to understand few basic terms of vagrant.
Providers – these
are the components that enable vagrant to use a different virtulization. That
is as said above we will be using the oracle virtual Box while working with
vagrant. Oracle virtual box is one vagrant supported software hypervisor.
Vagrant supports other hypervisors too like Hyper-V. Additional Providers can
also be added by plugin mechanism. For example you can add support for VMWare
products as well as IaaS providers such as AWS
Provisioners –
These allows vagrant to bring machine to a desired state. This can be done by
executing simple shell scripts or a different configuration management tools
such as puppet and Check. Provisioning in Vagrant usually happens after machine
initialization but can be initiated on demand.
boxes – a Box in
vagrant is a package that are bundled with provider specific machine data. That
is considering a CentOs box which contains Centos operatins system and certain
modifications. These boxes are used in creating similar vagrant virtual machines
by importing them.
Vagrant plugins –
Plugin in Vagrant provides extendability via its plugins API. This creates
possibilities to add support for new provisioners, providers and other
utilities
We can use the
command “vagrant plugin list” to see the available plugins.
Shared/Synced
folders – Vagrant allows sharing or syncing of folders from host machine to
guest machine. This allows you to edit your files locally and see the changes
in the guest machine. This is based on the provider for example virtual Box
provides the shared folder mechanism. Vagrant also allows syncing by using
tools such as rsync or network file share using NFS.
Port forwarding –
This is one of the important feature that used with networking in vagrant.
Some providers such
as VirtualBox allow running VMs in NAT network mode. In this mode the VM sits
in its own private address space which is not accessible from the host machine.
In this case port forwarding allows creating forwarding rules that will forward
traffic from local port to the port of the virtual machine.
Hope this helps in
understanding the basic concepts of Vagrant. In the next article we will see
how to set our first vagrant machine.
No comments :
Post a Comment