Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
Ubuntu теперь публикует официальные виртуальные жесткие диски Azure (VHD) для скачивания на веб-странице "Облачные образы Ubuntu". Если вам нужно создать собственный специализированный образ Ubuntu для Azure, а не использовать следующую процедуру вручную, начните с этих известных рабочих виртуальных жестких жестких устройств, как это необходимо. Последние выпуски образов можно найти в следующих расположениях:
- Ubuntu 20.04/Focal: focal-server-cloudimg-amd64-azure.vhd.tar.gz
- Ubuntu 22.04/Jammy: jammy-server-cloudimg-amd64-azure.vhd.tar.gz
- Ubuntu 24.04/Noble: noble-server-cloudimg-amd64-azure.vhd.tar.gz
Необходимые компоненты
В этой статье предполагается, что вы уже установили операционную систему Ubuntu Linux на VHD. Существует несколько средств для создания VHD-файлов. Примером является решение виртуализации, например Hyper-V. Инструкции см. в разделе "Установка роли Hyper-V" и настройка виртуальной машины .
Замечания по установке Ubuntu
- Дополнительные советы по подготовке Linux для Azure см . в общих заметках о установке Linux.
- Формат VHDX не поддерживается в Azure, только фиксированный виртуальный жесткий диск. Диск можно преобразовать в формат VHD с помощью диспетчера Hyper-V или командлета
Convert-VHD. - При установке системы Linux рекомендуется использовать стандартные секции, а не диспетчер логических томов (LVM), который часто используется по умолчанию для многих установок. Эти стандартные секции избежать конфликтов имен LVM с клонируемыми виртуальными машинами, особенно если диск ОС когда-либо должен быть подключен к другой виртуальной машине для устранения неполадок. LVM или RAID также можно использовать на дисках данных.
- Не настраивайте секцию буфера или файл подкачки на диске ОС. Агент подготовки можно настроить
cloud-initдля создания файла подкачки или секции подкачки на временном диске ресурса. Дополнительные сведения об этом процессе см. в следующих шагах. - Размер виртуальной памяти всех виртуальных жестких дисков в Azure должен быть округлен до 1 МБ. При преобразовании из необработанного диска в VHD необходимо убедиться, что размер необработанного диска составляет 1 МБ перед преобразованием. Дополнительные сведения см . в заметках о установке Linux.
Создание вручную
Примечание.
Прежде чем пытаться создать собственный пользовательский образ Ubuntu для Azure, рассмотрите возможность использования предварительно созданных и проверенных образов на веб-странице "Облачные образы Ubuntu".
В центральной области диспетчера Hyper-V выберите виртуальную машину.
Выберите "Подключиться" , чтобы открыть окно виртуальной машины.
Замените текущие репозитории в образе репозиторием Azure для Ubuntu.
Перед изменением
/etc/apt/sources.listрекомендуется создать резервную копию:sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo sed -i 's#http://archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo sed -i 's#http://[a-z][a-z]\.archive\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo sed -i 's#http://security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo sed -i 's#http://[a-z][a-z]\.security\.ubuntu\.com/ubuntu#http://azure\.archive\.ubuntu\.com/ubuntu#g' /etc/apt/sources.list sudo apt-get updateОбразы Ubuntu для Azure теперь используют специализированное ядро Azure. Обновите ОС до последней версии ядра Azure и установите средства Linux Azure (включая зависимости Hyper-V):
sudo apt update sudo apt install linux-azure linux-image-azure linux-headers-azure linux-tools-common linux-cloud-tools-common linux-tools-azure linux-cloud-tools-azure sudo apt full-upgrade sudo rebootИзмените загрузочную строку ядра для GRUB, чтобы включить дополнительные параметры ядра для Azure. Чтобы выполнить этот шаг, откройте
/etc/default/grubв текстовом редакторе, найдите переменнуюGRUB_CMDLINE_LINUX_DEFAULT(или добавьте ее при необходимости) и измените ее, чтобы включить следующие параметры:GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 quiet splash"Сохраните и закройте файл, а затем выполните команду
sudo update-grub. Этот шаг гарантирует, что все сообщения консоли отправляются на первый последовательный порт, который может помочь технической поддержке Azure с проблемами отладки.Убедитесь, что SSH-сервер установлен и настроен для включения во время загрузки. Обычно этот параметр задан по умолчанию.
Установите
cloud-init(агент подготовки) и агент Azure Linux (обработчик гостевых расширений).Cloud-initиспользуетсяnetplanдля настройки конфигурации системной сети (во время подготовки и каждой последующей загрузки) иgdiskсекционирования дисков ресурсов.sudo apt update sudo apt install cloud-init gdisk netplan.io walinuxagent && systemctl stop walinuxagentПримечание.
Пакет
walinuxagentможет удалитьNetworkManagerиNetworkManager-gnomeпакеты, если они установлены.Удалите
cloud-initконфигурации по умолчанию и оставшиесяnetplanартефакты, которые могут конфликтовать сcloud-initподготовкой в Azure:sudo rm -f /etc/cloud/cloud.cfg.d/50-curtin-networking.cfg /etc/cloud/cloud.cfg.d/curtin-preserve-sources.cfg /etc/cloud/cloud.cfg.d/99-installer.cfg /etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfg sudo rm -f /etc/cloud/ds-identify.cfg sudo rm -f /etc/netplan/*.yamlНастройте
cloud-initподготовку системы с помощью источника данных Azure:sudo tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg <<EOF datasource_list: [ Azure ] EOF sudo tee /etc/cloud/cloud.cfg.d/90-azure.cfg <<EOF system_info: package_mirrors: - arches: [i386, amd64] failsafe: primary: http://archive.ubuntu.com/ubuntu security: http://security.ubuntu.com/ubuntu search: primary: - http://azure.archive.ubuntu.com/ubuntu/ security: [] - arches: [armhf, armel, default] failsafe: primary: http://ports.ubuntu.com/ubuntu-ports security: http://ports.ubuntu.com/ubuntu-ports EOF sudo tee /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg <<EOF reporting: logging: type: log telemetry: type: hyperv EOFНастройте агент Azure Linux для выполнения
cloud-initподготовки. Дополнительные сведения об этих параметрах см. в проекте WALinuxAgent.sudo sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf sudo sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf sudo sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confsudo tee -a /etc/waagent.conf <<EOF # For Azure Linux agent version >= 2.2.45, this is the option to configure, # enable, or disable the provisioning behavior of the Linux agent. # Accepted values are auto (default), waagent, cloud-init, or disabled. # A value of auto means that the agent will rely on cloud-init to handle # provisioning if it is installed and enabled, which in this case it will. Provisioning.Agent=auto EOFОчистка
cloud-initи артефакты среды выполнения агента Linux Для Azure:sudo cloud-init clean --logs --seed sudo rm -rf /var/lib/cloud/ sudo systemctl stop walinuxagent.service sudo rm -rf /var/lib/waagent/ sudo rm -f /var/log/waagent.logОтмените подготовку виртуальной машины и подготовьте ее к подготовке в Azure.
Примечание.
Команда
sudo waagent -force -deprovision+userобобщает образ, пытаясь очистить систему и сделать его подходящим для повторной подготовки. Команда+userтакже удаляет последнюю подготовленную учетную запись пользователя и связанные с ней данные.sudo waagent -force -deprovision+user sudo rm -f ~/.bash_historyПредупреждение
Отмена подготовки с помощью предыдущей команды не гарантирует, что образ очищается от всех конфиденциальных данных и подходит для распространения.
В диспетчере Hyper-V выберите Действие>Завершение работы.
Azure принимает виртуальные жесткие диски только фиксированного размера. Если диск ОС виртуальной машины не является виртуальным жестким диском фиксированного размера, используйте
Convert-VHDкомандлет PowerShell и укажите-VHDType Fixedэтот параметр. Дополнительные сведения см. в документации поConvert-VHDconvert-VHD.Чтобы перенести виртуальную машину 2-го поколения в Azure, выполните следующие действия:
Измените каталог на
boot EFIкаталог:cd /boot/efi/EFIСкопируйте каталог в
ubuntuновый каталог с именемboot:sudo cp -r ubuntu/ bootИзмените каталог на только что созданный каталог загрузки:
cd bootПереименуйте
shimx64.efiфайл:sudo mv shimx64.efi bootx64.efiПереименуйте файл
grub.cfgвbootx64.cfg:sudo mv grub.cfg bootx64.cfg
Связанный контент
Теперь вы готовы использовать виртуальный жесткий диск Ubuntu Linux для создания новых виртуальных машин в Azure. Если вы отправляете VHD-файл в Azure впервые, см. раздел Вариант 1. Передача VHD.