Saltar a contenido

Vagrant.

Página oficial: https://www.vagrantup.com/

Nube de boxes: https://app.vagrantup.com/boxes

Instalación en Ubuntu.

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant

Creación de escenario en Vagrant.

En Vagrant las máquinas virtuales se crean a partir de "boxes" (cajas).

Las cajas son imágenes configurables de máquinas virtuales optimizadas que podemos ejecutar en VirtualBox, VMWare, Hyper-V, etc.

  1. Accede a la carpeta donde deseas crear el entorno de Vagrant.

  2. Inicializa el entorno con:

vagrant init
  1. Modifica el fichero "Vagrantfile".

  2. Descarga y Arranca el entorno configurado en el fichero "Vagrantfile".

vagrant up
  1. Detener las máquinas virtuales.
vagrant halt

Comandos
Significado
vagrant init Inicializa un entorno Vagrant y genera el fichero VagrantFile.
vagrant up Levanta las máquinas según VagrantFile.
vagrant halt Detiene las máquinas.
vagrant reload Reinicia la máquina vagrant y carga la nueva configuración de Vagrantfile.
vagrant destroy Destruye todas las máquinas
vagrant ssh <boxname> Acceso por ssh a una MV.
vagrant box list Listado de cajas.

Redes.

Por defecto y de forma imperativa, las Máquinas se crearán con una interfaz NAT en el primer adaptador.

Redes Privadas.

Redes virtuales sin salida a Internet para interconectar máquinas virtuales.

#Asignado por DHCP
config.vm.network "private_network", type: "dhcp"

#Asignado Estáticamente.
config.vm.network "private_network", ip: "192.168.55.10"

Redes Públicas.

Interconecta con la red real de la máquina anfitriona (Red Bridge de VirtualBox).

#Asignado por DHCP
config.vm.network  "public_network", bridge: "eth0"

#Asignado Estáticamente
config.vm.network "public_network", ip: "192.168.0.17"

Snapshots.

Vagran snapshot: Permite generar Instantáneas que nos pueden servir de copias de seguridad en ciertos casos.

# se genera la captura.
vagrant snapshot save UbuntuServer_291023

# se comprueba que se ha creado.
vagrant snapshot list

# Después de realizar algún cambio se restaura.
vagrant snapshot restore UbuntuServer_291023

Ejemplo VagrantFile Clase.

#Usuarios vagrant/vagrant
  config.vm.define "Server" do |servidor|
    servidor.vm.box = "ubuntu/focal64"
    servidor.vm.hostname = "Servidor"
    servidor.vm.network "private_network", ip: "192.168.56.100"
    servidor.vm.provider :virtualbox do |parametros|
      parametros.name = "Servidor_Vagrant"
      parametros.gui = false
      parametros.cpus = 1
      parametros.memory = 2048
    end
  end
  config.vm.define "Client" do |cliente|
    cliente.vm.box = "Caden/windows-10-pro-en-22h2-19045.3208"
    cliente.vm.box_version = "1.0.0"
    cliente.vm.hostname = "Cliente"
    cliente.vm.network "private_network", ip: "192.168.56.101"
    cliente.vm.provider :virtualbox do |param|
      param.name = "Windows10_Cliente_Vagrant"
      param.check_guest_additions = true
      param.gui = true
      param.cpus = 2
      param.memory = 4096
    end
  end
  • Recordad que se crea siempre una interfaz NAT por defecto que usaremos para navegar.

Vídeo Resumen.