Vagrant como entorno de desarrollo, primeros pasos.

hace 2 semanas mientras trabajaba Debian me notificó que tenía varias actualizaciones pendientes, así que me fuí al gestor de actualizaciones y le dí a actualizar todo, claro error por algún motivo que desconozco se actualizó también el xserver y se fue a la mierda todo, no podía arrancar ni con Gnome2, ni con Mate ni con Cinnamon, solo co xcfe.

Así que aprovechando que desde hacía tiempo que quería formatear el equipo para pasar todo el entorno de trabajo a Vagrant he aprovechado para hacerlo. Con esto lo que he hecho es correr un Mint 17 como equipo de escritorio, y las máquinas virtuales que monto con Vagrant tienen "hashicorp/precise64", aunque Pedro Gonzalez me recomendaba mirar también las máquinas de Cuter-Box que le había comentado Jonhattan , así que me apunto mirarme con más tiempo estas recomendaciones.

Lo primero es instalar virtual box, y luego vagrant, con esto nos vamos a un directorio y escribimos vagrant init que nos genera un archivo llamado Vagrantfile.

La configuración básica del archivo Vagrantfile que tengo es:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://atlas.hashicorp.com/search.
  config.vm.box = "hashicorp/precise64"

  # Disable automatic box update checking. If you disable this, then
  # boxes will only be checked for updates when the user runs
  # `vagrant box outdated`. This is not recommended.
  config.vm.box_check_update = false

  # Create a forwarded port mapping which allows access to a specific port
  # within the machine from a port on the host machine. In the example below,
  # accessing "localhost:8080" will access port 80 on the guest machine.
  config.vm.network "forwarded_port", guest: 80, host: 8080

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  config.vm.network "public_network"

  # Share an additional folder to the guest VM. The first argument is
  # the path on the host to the actual folder. The second argument is
  # the path on the guest to mount the folder. And the optional third
  # argument is a set of non-required options.
  config.vm.synced_folder "project", "/var/www/project"

  # Provider-specific configuration so you can fine-tune various
  # backing providers for Vagrant. These expose provider-specific options.
  # Example for VirtualBox:
  #
  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
end

Una vez levantamos la máquina de vagrant tenemos que meternos en ella, esto lo hacmeos con ssh mediante el siguiente comando vagrant ssh.

Y ahora toca configurar el servidor para poder ejecutar un drupal en la máquina que acabamos de montar. Por ahora estoy montando las máquinas a mano, pero la idea es modificiar el playbook de Carles Climent para poder provisionar máquinas de forma automatizada.

Oskar