- backend
- frontend
- database
Aquí un ejemplo de Vagrantfile
# Vagrantfile para desplegar backend, frontend y base de datos
Vagrant.configure("2") do |config|
# Box base
BOX_NAME = "ubuntu/jammy64"
# Configuración común
config.vm.synced_folder ".", "/vagrant", disabled: true
# Backend
config.vm.define "backend" do |backend|
backend.vm.box = BOX_NAME
backend.vm.hostname = "backend.local"
backend.vm.network "private_network", ip: "192.168.33.10"
backend.vm.provider "virtualbox" do |vb|
vb.name = "vagrant-backend"
vb.memory = 1024
vb.cpus = 2
end
backend.vm.provision "shell", inline: <<-SHELL
echo "Instalando backend..."
sudo apt-get update
sudo apt-get install -y python3 python3-pip
pip3 install flask
SHELL
end
# Frontend
config.vm.define "frontend" do |frontend|
frontend.vm.box = BOX_NAME
frontend.vm.hostname = "frontend.local"
frontend.vm.network "private_network", ip: "192.168.33.11"
frontend.vm.provider "virtualbox" do |vb|
vb.name = "vagrant-frontend"
vb.memory = 1024
vb.cpus = 2
end
frontend.vm.provision "shell", inline: <<-SHELL
echo "Instalando frontend..."
sudo apt-get update
sudo apt-get install -y nginx
SHELL
end
# Base de datos
config.vm.define "database" do |db|
db.vm.box = BOX_NAME
db.vm.hostname = "db.local"
db.vm.network "private_network", ip: "192.168.33.12"
db.vm.provider "virtualbox" do |vb|
vb.name = "vagrant-db"
vb.memory = 1024
vb.cpus = 2
end
db.vm.provision "shell", inline: <<-SHELL
echo "Instalando base de datos..."
sudo apt-get update
sudo apt-get install -y mysql-server
sudo systemctl enable mysql
SHELL
end
end
Luego puedes acceder a cada box con:
vagrant ssh backend
vagrant ssh frontend
vagrant ssh database