Подготовка виртуальной машины SLES или openSUSE Leap для Azure
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы Область применения: ✔️ Универсальные масштабируемые наборы
В этой статье предполагается, что вы уже установили операционную систему SUSE или openSUSE Leap Linux на виртуальный жесткий диск. Существует несколько средств для создания VHD-файлов, например решение для виртуализации, такое как Hyper-V. Инструкции см. в разделе Установка роли Hyper-V и настройка виртуальной машины.
Замечания по установке SLES и openSUSE Leap
- Дополнительные сведения о подготовке Linux для Azure см. в разделе Общие замечания по установке Linux.
- Формат VHDX не поддерживается в Azure, поддерживается только фиксированный VHD. Можно преобразовать диск в формат VHD с помощью диспетчера Hyper-V или командлета convert-vhd.
- При установке системы Linux рекомендуется использовать стандартные разделы, а не LVM (как правило, значение по умолчанию во многих дистрибутивах). Это позволит избежать конфликта имен LVM при клонировании виртуальных машин, особенно если диск с OC может быть подключен к другой ВМ в целях устранения неполадок. Для дисков данных можно использовать LVM или RAID.
- Не настраивайте раздел подкачки на диске с ОС. Можно настроить агент Linux для создания файла подкачки на временном диске ресурсов. Дополнительные сведения описаны далее.
- Размер виртуальной памяти всех VHD в Azure должен быть округлен до 1 МБ. При конвертации диска в формате RAW в виртуальный жесткий диск убедитесь, что размер диска RAW в несколько раз превышает 1 МБ. См. дополнительные сведения в примечаниях по установке Linux.
Использование SUSE Studio
SUSE Studio можно с легкостью использовать для создания образов SLES и openSUSE Leap для Azure и Hyper-V, а также для управления этими образами. Этот подход рекомендуется для настройки собственных образов SLES и openSUSE Leap.
Вместо того чтобы создать собственный виртуальный жесткий диск, SUSE публикует образы BYOS (использование собственной подписки) для SLES в каталоге VM Depot.
Подготовка SUSE Linux Enterprise Server для Azure
На центральной панели диспетчера Hyper-V выберите виртуальную машину.
Щелкните Подключение , чтобы открыть окно виртуальной машины.
Зарегистрируйте систему SUSE Linux Enterprise, чтобы позволить ей скачивать обновления и устанавливать пакеты.
Установите в системе последние исправления:
# sudo zypper updateУстановка агента Linux для Azure и cloud-init
# SUSEConnect -p sle-module-public-cloud/15.2/x86_64 (SLES 15 SP2) # sudo zypper refresh # sudo zypper install python-azure-agent # sudo zypper install cloud-initВключение waagent и cloud-init для запуска при загрузке
# sudo chkconfig waagent on # systemctl enable cloud-init-local.service # systemctl enable cloud-init.service # systemctl enable cloud-config.service # systemctl enable cloud-final.service # systemctl daemon-reload # cloud-init cleanОбновление конфигурации waagent и cloud-init
# sed -i 's/Provisioning.UseCloudInit=n/Provisioning.UseCloudInit=y/g' /etc/waagent.conf # sed -i 's/Provisioning.Enabled=y/Provisioning.Enabled=n/g' /etc/waagent.conf # sudo sh -c 'printf "datasource:\n Azure:" > /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg' # sudo sh -c 'printf "reporting:\n logging:\n type: log\n telemetry:\n type: hyperv" > /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg'Измените файл /etc/default/grub так, чтобы обеспечить отправку журналов консоли в последовательный порт, а затем обновите основной файл конфигурации с помощью grub2-mkconfig-o/Boot/grub2/GRUB.cfg
console=ttyS0 earlyprintk=ttyS0Это гарантирует отправку всех сообщений консоли на первый последовательный порт, что может помочь технической поддержке Azure в плане отладки.
Убедитесь в том, что файл/etc/fstab ссылается на диск по его UUID (by-uuid)
Переместите или удалите правила udev, чтобы не создавать статические правила для интерфейса Ethernet. Эти правила приводят к появлению проблем при клонировании виртуальной машины в Microsoft Azure или Hyper-V:
# sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules # sudo rm -f /etc/udev/rules.d/70-persistent-net.rulesРекомендуется отредактировать файл /etc/sysconfig/network/dhcp и изменить параметр
DHCLIENT_SET_HOSTNAMEследующим образом:DHCLIENT_SET_HOSTNAME="no"В "/etc/sudoers" закомментируйте или удалите следующие строки, если они существуют:
Defaults targetpw # ask for the password of the target user i.e. root ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!Убедитесь, что SSH-сервер установлен и настроен для включения во время загрузки. Обычно это сделано по умолчанию.
Настройка подкачки
Не создавайте пространство подкачки на диске ОС.
Ранее агент Linux для Azure мог автоматически настраивать размер области подкачки с использованием локального диска ресурсов, подключенного к виртуальной машине после ее подготовки в Azure. Но теперь эту операцию выполняет cloud-init — вам не нужно использовать агент Linux для форматирования диска ресурсов. Создайте файл подкачки и соответствующим образом измените следующие параметры в файле
/etc/waagent.conf:# sed -i 's/ResourceDisk.Format=y/ResourceDisk.Format=n/g' /etc/waagent.conf # sed -i 's/ResourceDisk.EnableSwap=y/ResourceDisk.EnableSwap=n/g' /etc/waagent.confЕсли вы хотите подключить, отформатировать или создать файл подкачки, вы можете:
Передавать его в конфигурации cloud-init при каждом создании виртуальной машины.
Использовать директиву cloud-init, встроенную в образ, которая будет выполнять эту операцию при каждом создании виртуальной машины:
echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf cat > /etc/cloud/cloud.cfg.d/00-azure-swap.cfg << EOF #cloud-config # Generated by Azure cloud image build disk_setup: ephemeral0: table_type: mbr layout: [66, [33, 82]] overwrite: True fs_setup: - device: ephemeral0.1 filesystem: ext4 - device: ephemeral0.2 filesystem: swap mounts: - ["ephemeral0.1", "/mnt"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Выполните следующие команды, чтобы отменить подготовку виртуальной машины и подготовить ее в Azure:
# sudo rm -rf /var/lib/waagent/ # sudo rm -f /var/log/waagent.log # waagent -force -deprovision+user # rm -f ~/.bash_history # export HISTSIZE=0 # logoutВ диспетчере Hyper-V выберите Действие -> Завершение работы. Виртуальный жесткий диск Linux готов к передаче в Azure.
Подготовка openSUSE 15.2+
На центральной панели диспетчера Hyper-V выберите виртуальную машину.
Щелкните Подключение , чтобы открыть окно виртуальной машины.
В консоли оболочки выполните команду
zypper lr. Если эта команда возвращает результат следующего вида, то репозитории настроены надлежащим образом, и никаких изменений не требуется (обратите внимание, что номера версий могут отличаться):# Псевдоним Имя Активировано Обновить 1 Cloud:Tools_15.2 Cloud:Tools_15.2 Да Да 2 openSUSE_15.2_OSS openSUSE_15.2_OSS Да Да 3 openSUSE_15.2_Updates openSUSE_15.2_Updates Да Да Если команда возвращает сообщение "No repositories defined..." (Репозитории не определены...), используйте следующие команды для добавления этих репозиториев:
# sudo zypper ar -f http://download.opensuse.org/repositories/Cloud:Tools/openSUSE_15.2 Cloud:Tools_15.2 # sudo zypper ar -f https://download.opensuse.org/distribution/15.2/repo/oss openSUSE_15.2_OSS # sudo zypper ar -f http://download.opensuse.org/update/15.2 openSUSE_15.2_UpdatesЧтобы убедиться, что репозитории добавлены, можно еще раз выполнить команду
zypper lr. Если один из соответствующих репозиториев обновлений не включен, включите его, выполнив следующую команду:# sudo zypper mr -e [NUMBER OF REPOSITORY]Обновите ядро до последней доступной версии:
# sudo zypper up kernel-defaultЛибо установите в системе все последние исправления:
# sudo zypper updateУстановите агент Linux для Azure.
# sudo zypper install WALinuxAgentИзмените строку загрузки ядра в конфигурации grub, чтобы включить дополнительные параметры ядра для Azure. Для этого откройте файл /boot/grub/menu.lst в текстовом редакторе и убедитесь, что ядро по умолчанию включает следующие параметры:
console=ttyS0 earlyprintk=ttyS0Это гарантирует отправку всех сообщений консоли на первый последовательный порт, что может помочь технической поддержке Azure в плане отладки. Кроме того, удалите следующие параметры из строки загрузки ядра, если таковые существуют:
libata.atapi_enabled=0 reserve=0x1f0,0x8Рекомендуется отредактировать файл /etc/sysconfig/network/dhcp и изменить параметр
DHCLIENT_SET_HOSTNAMEследующим образом:DHCLIENT_SET_HOSTNAME="no"Внимание! В "/etc/sudoers" закомментируйте или удалите следующие строки, если они существуют:
Defaults targetpw # ask for the password of the target user i.e. root ALL ALL=(ALL) ALL # WARNING! Only use this together with 'Defaults targetpw'!Убедитесь, что SSH-сервер установлен и настроен для включения во время загрузки. Обычно это сделано по умолчанию.
Не создавайте пространство подкачки на диске с ОС.
Агент Linux для Azure может автоматически настраивать пространство подкачки с использованием диска на локальном ресурсе, подключенном к виртуальной машине после подготовки для работы в среде Azure. Следует отметить, что локальный диск ресурсов является временным диском и должен быть очищен при отмене подготовки виртуальной машины. После установки агента Linux для Azure (см. предыдущий шаг) измените следующие параметры в /etc/waagent.conf соответствующим образом:
ResourceDisk.Format=y ResourceDisk.Filesystem=ext4 ResourceDisk.MountPoint=/mnt/resource ResourceDisk.EnableSwap=y ResourceDisk.SwapSizeMB=2048 ## NOTE: set this to whatever you need it to be.Выполните следующие команды, чтобы отменить подготовку виртуальной машины и подготовить ее в Azure:
# sudo waagent -force -deprovision # export HISTSIZE=0 # logoutУбедитесь, что агент Linux для Azure запускается при загрузке:
# sudo systemctl enable waagent.serviceВ диспетчере Hyper-V выберите Действие -> Завершение работы. Виртуальный жесткий диск Linux готов к передаче в Azure.
Дальнейшие действия
Теперь виртуальный жесткий диск SUSE Linux можно использовать для создания новых виртуальных машин Azure. Если вы отправляете VHD-файл в Azure впервые, см. раздел Вариант 1. Передача VHD.