Шпаргалка по управлению виртуальными машинами 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 на разных платформах, что делает его отличным выбором для разработчиков, которым нужна надежная виртуализация без сложности традиционных инструментов.

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