Multipass - Gu铆a Completa

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-ling es 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!