Шпаргалка по управлению виртуальными машинами Multipass: руководство для Ubuntu, Windows и macOS

Установка, настройка и основные команды Multipass

Содержимое страницы

Multipass — это легковесный менеджер виртуальных машин, который упрощает создание и управление облачными экземплярами Ubuntu на Linux, Windows и macOS.

Будь вы разработчиком, нуждающимся в изолированных средах, инженером DevOps, тестирующим конфигурации, или человеком, изучающим Linux, Multipass предоставляет простой интерфейс командной строки для быстрого развертывания виртуальных машин Ubuntu.

Multipass VM Manager Ubuntu

Что такое Multipass?

Multipass — это официальный инструмент Canonical для создания и управления виртуальными машинами Ubuntu. Он разработан для простоты, скорости и кроссплатформенности, что делает его отличным выбором для разработчиков, которым нужны согласованные среды Ubuntu на разных операционных системах.

Основные возможности

  • Кроссплатформенность: Работает на Linux, Windows и macOS
  • Легковесность: Минимальные затраты ресурсов по сравнению с традиционными ВМ
  • Поддержка cloud-init: Настройка ВМ с метаданными cloud-init
  • Поддержка снимков: Создание и восстановление снимков ВМ
  • Интеграция сети: Простое сетевое взаимодействие между хостом и ВМ
  • SSH доступ: Встроенное управление SSH-ключами

Самые полезные команды

# Быстрый справочник
multipass launch --name dev --cpus 2 --memory 4G --disk 20G
multipass shell dev
multipass mount ./project dev:/home/ubuntu/project
multipass snapshot dev before-changes
multipass restore dev before-changes
multipass delete dev
multipass purge

Установка

Ubuntu/Linux

# Установка через snap (рекомендуется)
sudo snap install multipass

# Или установка через apt
sudo apt update
sudo apt install multipass

Windows

  1. Скачайте установщик для Windows с multipass.run
  2. Запустите установщик от имени администратора
  3. Multipass будет использовать Hyper-V по умолчанию (Windows 10 Pro/Enterprise) или переключится на VirtualBox

macOS

# Установка через Homebrew
brew install --cask multipass

# Или скачайте с multipass.run

Базовое использование

Создание первой ВМ

# Создать ВМ с настройками по умолчанию
multipass launch

# Создать ВМ с конкретным именем
multipass launch --name my-vm

# Создать ВМ с конкретной версией Ubuntu
multipass launch 22.04 --name ubuntu-22

# Создать ВМ с пользовательскими ресурсами
multipass launch --name dev-vm --cpus 2 --memory 4G --disk 20G

Управление ВМ

# Список всех ВМ
multipass list

# Запуск ВМ
multipass start my-vm

# Остановка ВМ
multipass stop my-vm

# Удаление ВМ
multipass delete my-vm
multipass purge  # Удаление всех удаленных ВМ

Доступ к ВМ

# Открыть оболочку в ВМ
multipass shell my-vm

# Выполнить команду в ВМ
multipass exec my-vm -- ls -la

# Копирование файлов в/из ВМ
multipass transfer file.txt my-vm:/home/ubuntu/
multipass transfer my-vm:/home/ubuntu/file.txt ./

После входа в Multipass ВМ у вас будет доступ к полной оболочке Ubuntu. Для эффективной работы с командной строкой обратитесь к нашему Bash Cheat Sheet с основными командами и сокращениями.

Multipass Instances

Шпаргалка Multipass

Команды управления ВМ

# Создание и запуск
multipass launch                    # Создать ВМ по умолчанию
multipass launch --name vm1        # Создать именованную ВМ
multipass launch 20.04 --name old  # Конкретная версия Ubuntu

# Распределение ресурсов
multipass launch --cpus 2 --memory 4G --disk 20G --name dev

# Управление ВМ
multipass start vm1                # Запуск ВМ
multipass stop vm1                 # Остановка ВМ
multipass restart vm1               # Перезапуск ВМ
multipass suspend vm1              # Приостановка ВМ

# Информация
multipass list                     # Список всех ВМ
multipass info vm1                 # Детали ВМ
multipass get local.privileged-mounts  # Проверка настроек монтирования

Операции с файлами

# Передача файлов
multipass transfer file.txt vm1:/home/ubuntu/
multipass transfer vm1:/home/ubuntu/file.txt ./
multipass transfer --recursive ./folder vm1:/home/ubuntu/

# Монтирование каталога хоста
multipass mount /host/path vm1:/vm/path
multipass umount vm1:/vm/path

Настройка сети

# Информация о сети
multipass info vm1 | grep IPv4

# Перенаправление портов (Windows/macOS)
multipass set local.port-forwarding=true
multipass restart vm1

Снимки и резервные копии

# Создание снимка
multipass snapshot vm1 snapshot1

# Восстановление снимка
multipass restore vm1 snapshot1

# Список снимков
multipass list --all

Расширенная настройка

Интеграция с cloud-init Создайте файл cloud-config.yaml:

#cloud-config
package_update: true
package_upgrade: true
packages:
  - docker.io
  - git
  - curl

users:
  - name: developer
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...

runcmd:
  - systemctl enable docker
  - systemctl start docker

Запуск ВМ с cloud-init:

multipass launch --cloud-init cloud-config.yaml --name configured-vm

Пользовательские образы

# Список доступных образов
multipass find

# Использование конкретного образа
multipass launch daily:22.04 --name daily-vm

Интеграция с инструментами разработки

Интеграция с Docker Multipass отлично работает с Docker для контейнеризированной разработки. Вы можете запускать Docker внутри Multipass ВМ или использовать Multipass для создания изолированных сред для разработки с Docker.

Среды разработки Для разработки на Python вы можете настраивать изолированные среды, аналогичные Python виртуальным средам, но с полной изоляцией ОС. Для пользователей VS Code, Multipass ВМ могут использоваться как удаленные среды разработки, дополняя Dev Containers в VS Code для сценариев, требующих полной изоляции ОС.

Хостинг приложений Multipass идеален для тестирования самонастраиваемых приложений, таких как Gitea или Ollama в изолированных средах. Для оркестрации контейнеров вы можете запускать кластеры Kubernetes внутри Multipass ВМ и использовать наш Kubernetes Cheatsheet для управления вашими контейнеризированными нагрузками.

Устранение неполадок

Распространенные проблемы

# Проверка состояния Multipass
multipass get local.driver

# Сброс Multipass
multipass purge
sudo snap restart multipass

# Проверка логов ВМ
multipass logs vm1

Оптимизация производительности

# Включение привилегированного монтирования для лучшей производительности
multipass set local.privileged-mounts=true

# Настройка лимитов памяти
multipass set local.memory=8G

Сравнение с альтернативами

Multipass vs Docker

  • Multipass: Полные ВМ, лучше для тестирования на уровне ОС, более затратные по ресурсам
  • Docker: Контейнеры, более эффективные, лучше для развертывания приложений

Multipass vs VirtualBox/VMware

  • Multipass: Ориентирован на командную строку, поддержка cloud-init, проще автоматизация
  • VirtualBox/VMware: Управление через GUI, больше опций настройки, лучше для настольного использования

Multipass vs Proxmox

  • Multipass: Легковесный, фокусируется на одной ВМ, отлично подходит для сред разработки
  • Proxmox: Полный стек виртуализации, лучше для производственных сред, продвинутые функции вроде кластеризации и высокой доступности

Multipass vs Vagrant

  • Multipass: Ubuntu-ориентированный, проще настройка, лучше для сценариев с одной ВМ
  • Vagrant: Поддержка нескольких провайдеров, сложное обеспечение, лучше для настроек с несколькими ВМ

Лучшие практики

  1. Управление ресурсами: Распределяйте соответствующее количество CPU и памяти в зависимости от нагрузки
  2. Стратегия снимков: Создавайте снимки перед значительными изменениями
  3. Безопасность сети: Используйте правильные правила брандмауэра для открытых сервисов
  4. Стратегия резервного копирования: Регулярно создавайте резервные копии важных данных ВМ
  5. Очистка: Удаляйте неиспользуемые ВМ для освобождения дискового пространства

Когда использовать Multipass

Выбирайте Multipass, когда:

  • Вам нужны полные ВМ Ubuntu для разработки
  • Вы хотите простое управление ВМ через командную строку
  • Вы работаете на разных операционных системах
  • Вам нужна поддержка конфигурации cloud-init
  • Вы хотите тестировать самонастраиваемые приложения в изоляции

Рассмотрите альтернативы, когда:

  • Вам нужна максимальная производительность (используйте Docker-контейнеры)
  • Вам нужны сложные настройки с несколькими ВМ (используйте Vagrant)
  • Вам нужно управление через GUI (используйте VirtualBox/VMware)

Multipass преуспевает в предоставлении простых, согласованных сред разработки Ubuntu на разных платформах, что делает его отличным выбором для разработчиков, которым нужна надежная виртуализация без сложности традиционных инструментов.

Полезные ссылки

Подписаться

Получайте новые материалы про системы, инфраструктуру и AI engineering.