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.
-
Accede a la carpeta donde deseas crear el entorno de Vagrant.
-
Inicializa el entorno con:
vagrant init
-
Modifica el fichero "Vagrantfile".
-
Descarga y Arranca el entorno configurado en el fichero "Vagrantfile".
vagrant up
- Detener las máquinas virtuales.
vagrant halt
Comandos | |
---|---|
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.