Vagrant es una herramienta para desarrolladores que facilita la creación de entornos virtuales para desarrollo.
La principal ventaja que encuentro es que si queremos desarrollar una aplicación Web, no tenemos que configurar nada en nuestro ordenador y llenarlo de programas como Apache, Nginx, PHP, MySQL, etcétera. Vagrant tiene "cajas" con sistemas operativos para desarrollar directamente en ellos. Si por ejemplo queremos una máquina virtual con LAMP o Node.js, podemos descargarla y configurarla en un momento para tener todo listo y ponerse a programar.
vagrant -v
vagrant box list
vagrant box add todobusco todobusco.box
vagrant init
vagrant init hashicorp/precise64
vagrant init todobusco
vagrant up
vagrant halt
vagrant reload
vagrant destroy
vagrant ssh
vagrant status
Sistema operativo : config.vm.box = "base"
Redireccionamiento de puertos:
config.vm.network "forwarded_port", guest: 80, host: 8080
Red privada:
config.vm.network "private_network", ip: "192.168.33.10"
Red publica:
config.vm.network "public_network"
Carpetas compartidas |sincronizar directorios:
config.vm.synced_folder ".", "/var/www/html"
Memoria:
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
# # Customize the amount of memory on the VM:
vb.memory = "1024"
end
Instalar y configurar el entorno de desarrollo
config.vm.provision "shell", path: "config.sh"
$ sudo apt-get clean $ sudo dd if=/dev/zero of=/EMPTY bs=1M $ sudo rm -f /EMPTY $ cat /dev/null > ~/.bash_history && history -c && exit
exit $ vagrant halt
vagrant package --output mi_nuevo_proyecto.box
Scotch => https://box.scotch.io
Puppet y Chef =>
Para aprender a configurar rápidamente cualquier tipo de servicios y software en Linux. Es muy simple, los cookbooks de Chef y los manifiestos de Puppet son simplemente la descripción hecha código fuente de cómo se configura un servicio o software. Si podemos leer ese código, vamos a aprender a configurar cosas mucho más rápido que de costumbre.
Vagrant Plugins => https://www.vagrantup.com/docs/plugins/