Multipass: M谩quinas Virtuales Ubuntu Simplificadas #
Multipass es una herramienta desarrollada por Canonical que permite crear y gestionar m谩quinas virtuales Ubuntu de forma r谩pida y sencilla. Es perfecta para desarrollo, testing y experimentaci贸n.
馃殌 Instalaci贸n #
Instalaci贸n b谩sica #
Descarga Multipass desde la p谩gina oficial y sigue las instrucciones para tu sistema operativo.
Verificar la instalaci贸n #
multipass version
馃搵 Comandos b谩sicos #
Crear una m谩quina virtual #
# VM b谩sica con configuraci贸n por defecto
multipass launch --name labs
# VM con recursos espec铆ficos
multipass launch --name labs --memory 4G --cpus 2 --disk 20G
Crear VM con cloud-init #
multipass launch --name labs --cloud-init cloud-init.yaml --memory 4G --cpus 2
鈿欙笍 Configuraci贸n con Cloud-init #
Archivo cloud-init.yaml
#
#cloud-config
# Actualiza los paquetes del sistema
package_update: true
package_upgrade: true
# Lista de paquetes a instalar
packages:
- git
- docker.io
- python3
- python3-pip
- python3-venv
- curl
- unzip
- awscli
- openssh-client
# Comandos a ejecutar despu茅s de la instalaci贸n de paquetes
runcmd:
- |
# Instalar kubectl
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
mv kubectl /usr/local/bin/
- |
# Instalar minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube
mv minikube /usr/local/bin/
- |
# Instalar tfenv
curl -Lo tfenv.zip https://github.com/tfutils/tfenv/archive/refs/heads/master.zip
unzip tfenv.zip -d /usr/local/
mv /usr/local/tfenv-master /usr/local/tfenv
echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bashrc
ln -s /usr/local/tfenv/bin/tfenv /usr/local/bin/tfenv
- |
# Instalar Terraform usando tfenv
tfenv install latest
tfenv use latest
- |
# Configurar Docker
usermod -aG docker $USER
systemctl enable docker
systemctl start docker
- |
# Generar una clave SSH
mkdir -p ~/.ssh
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ''
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
# Mensaje final cuando todo est谩 completo
final_message: "La instancia de Multipass est谩 configurada y lista para usar."
馃敡 Gesti贸n de m谩quinas virtuales #
Listar VMs #
multipass list
Acceder a una VM #
multipass shell labs
Informaci贸n de una VM #
multipass info labs
Detener una VM #
multipass stop labs
Iniciar una VM #
multipass start labs
Eliminar una VM #
multipass delete labs
multipass purge
鈿欙笍 Modificar configuraci贸n de VMs #
Para modificar los recursos de una VM existente, primero debes detenerla:
# Detener la VM
multipass stop handsome-ling
# Modificar recursos
multipass set local.handsome-ling.cpus=4
multipass set local.handsome-ling.disk=60G
multipass set local.handsome-ling.memory=7G
# Iniciar la VM
multipass start handsome-ling
Nota:
handsome-linges el nombre de la instancia. Reemplaza con el nombre de tu VM.
馃搧 Compartir archivos #
Montar directorios #
# Montar directorio del host en la VM
multipass mount /ruta/local labs:/ruta/en/vm
# Desmontar
multipass umount labs:/ruta/en/vm
Transferir archivos #
# Copiar archivo al VM
multipass transfer archivo.txt labs:~/
# Copiar archivo desde VM
multipass transfer labs:~/archivo.txt ./
馃摳 Snapshots #
Crear snapshot #
multipass snapshot create labs snapshot-inicial
Listar snapshots #
multipass snapshot list labs
Restaurar snapshot #
multipass snapshot restore labs snapshot-inicial
Eliminar snapshot #
multipass snapshot delete labs snapshot-inicial
馃寪 Configuraci贸n de red #
Obtener IP de la VM #
multipass info labs | grep IPv4
Configurar port forwarding #
# Ejemplo para acceder a un servicio web en puerto 8080
multipass exec labs -- sudo ufw allow 8080
馃攳 Soluci贸n de problemas #
Verificar el servicio #
# En Linux/macOS
sudo systemctl status multipass
# En Windows (PowerShell como administrador)
Get-Service -Name multipass
Reiniciar el servicio #
# En Linux/macOS
sudo systemctl restart multipass
# En Windows (PowerShell como administrador)
Restart-Service -Name multipass
Logs de Multipass #
# Ver logs
multipass logs labs
# Logs del sistema
journalctl -u multipass
馃幆 Casos de uso pr谩cticos #
Entorno de desarrollo web #
#cloud-config
packages:
- nodejs
- npm
- nginx
- git
runcmd:
- npm install -g yarn
- systemctl enable nginx
- systemctl start nginx
Entorno Docker #
#cloud-config
packages:
- docker.io
- docker-compose
runcmd:
- usermod -aG docker ubuntu
- systemctl enable docker
- systemctl start docker
Entorno Python #
#cloud-config
packages:
- python3
- python3-pip
- python3-venv
- python3-dev
runcmd:
- pip3 install virtualenv
- pip3 install jupyter
馃摎 Recursos adicionales #
隆Con Multipass puedes crear entornos de desarrollo Ubuntu limpios y configurados en minutos!