Entendiendo un poco de #Vagrant

Entendiendo un poco de #Vagrant

Vagrant Logo

Vagrant es un sistema que funciona sobre Virtual Box, es un software que sirve para instalar máquinas virtuales con otros Sistemas Operativos en nuestro equipo.

Pre-requisitos: Hay 2 herramientas que debes tener en tu maquina para que puedas usar esta gran herramienta:

Setup

Primero, necesitamos un archivo llamado "Cheffile" y otro archivo llamado "Vagrantfile" los podemos obtener en Rove.io.

Despues de obtener esos archivos debemos colocarlos en una carpeta donde vamos a tener nuestro entorno de trabajo.

Para crear nuesto entorno con vagrant solo debemos escribir en la terminal:

``` $ curl -L http://rove.io/install | bash ```
Conectandonos a nuestra VM -------------------------- Antes de usar nuestra VM podemos instalar de forma adicional "_VirtualBox Guest Additions Plugin_" con el siguiente comando:
``` $ vagrant plugin install vagrant-vbguest ```
Luego de esto: - Iniciamos nuestra maquina virtual con:
``` $ vagrant up ```
_Esto va a tomar cierto tiempo ya que tiene que descargar el SO y todas las herramientas previas configuradas :)_ - Para conectarnos a la maquina virtual usando SSH
``` $ vagrant ssh ```
- Para detener la maquina virtual
``` $ vagrant halt ```
- Suspenderla:
``` $ vagrant suspend ```
- Para reiniciar (si ya esta corriendo)
``` $ vagrant reload ```
- Para eliminar completamente
``` $ vagrant destroy ```
Yo tengo un repo en [github](https://github.com/abr4xas/vagrant-config) con las configuraciones que yo necesito para las cosas que hago. En ese repo, hay una carpeta llamada `development` y ella sera el contenedor de todos mis trabajos. Configuracion del Vagrantfile ----------------------------- Esta es la configuracion que actualmente tiene mi **Vagrantfile**
``` # encoding: utf-8 # This file originally created at http://rove.io/b12db7f9a4eea1c71e136e4ab8960440 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.ssh.forward_agent = true config.vm.network :forwarded_port, guest: 8000, host: 1234 config.vm.boot_timeout = 300 config.vm.synced_folder "development/", "/home/vagrant/development" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = ["cookbooks"] chef.add_recipe :apt chef.add_recipe 'php' chef.add_recipe 'python' chef.add_recipe 'nodejs' chef.add_recipe 'vim' chef.add_recipe 'git' chef.json = { :git => { :prefix => "/usr/local" } } end # Install dependencies config.vm.provision :shell, :path => "dependencies.sh" end ```
### Lecturas recomendadas - [Vagrant Documentation](https://docs.vagrantup.com/v2/)

I'm Angel, a middle-aged handsome (some times frontend) backend developer.