Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы ✔️ Универсальные масштабируемые наборы
Из этой статьи вы узнаете, как подготовить виртуальную машину Red Hat Enterprise Linux (RHEL) для использования в Azure. Версии RHEL, описанные в этой статье, — 7.x, 8.X., 9.x. Гипервизоры для подготовки, описанные в этой статье, являются Hyper-V, виртуальные машины на основе ядра (KVM), VMware и Kickstart.
Дополнительные сведения о требованиях к участию в программе Cloud Access Red Hat смотрите на веб-сайте Red Hat Cloud Access и использовании RHEL на Azure. Способы автоматизации создания образов RHEL см. в разделе Конструктор образов Azure.
Предварительные условия
Примечание.
В этом документе предполагается, что вы уже развернули RHEL7 и имеете полную лицензию. Загруженные образы, которые достигли или превысили срок службы (EOL), поддерживаются на основе разумных деловых усилий. Дополнительные сведения см. в циклах жизненного цикла продуктов Red Hat.
Замечания по установке RHEL
- Azure не поддерживает формат VHDX. Azure поддерживает только фиксированные VHD. Диспетчер узлов Hyper-V можно использовать для преобразования диска в формат VHD, или использовать командлет
convert-vhd. Если вы используете VirtualBox, при создании диска выберите фиксированный размер вместо динамически выделяемого (по умолчанию). - Azure поддерживает виртуальные машины 1-го поколения (загрузка BIOS) и 2-го поколения (загрузка UEFI).
- Максимальный допустимый размер VHD составляет 1023 ГБ.
- Модуль ядра vfat должен быть включен в ядро.
- Диспетчер логических томов (LVM) поддерживается и может использоваться на диске ОС или на дисках данных в виртуальных машинах Azure. Как правило, рекомендуется использовать стандартные секции на диске ОС, а не LVM. Это позволяет избежать конфликта имен LVM при клонировании виртуальных машин, особенно если вам нужно подключить диск с операционной системой к другой идентичной виртуальной машине для устранения неполадок. Дополнительные сведения см. в документации по LVM и RAID .
- Требуется поддержка ядра для подключения файловых систем UDF. При первой загрузке в Azure подключенный носитель с форматом UDF передает конфигурацию подготовки виртуальной машине Linux. Агент Azure Linux должен иметь возможность подключать файловую систему UDF для считывания конфигурации и подготовки виртуальной машины. Без этого шага подготовка завершается ошибкой.
- Не настраивайте раздел swap на диске операционной системы. Дополнительные сведения см. в следующих шагах.
- Размер всех VHD в Azure должен быть кратен 1 МБ. При преобразовании из RAW диска в VHD необходимо убедиться, что размер RAW диска кратно 1 МБ перед преобразованием. Дополнительные сведения см. в следующих шагах. См. также заметки о установке Linux.
Примечание.
Cloud-init >= 21.2 отменяет требование использования UDF. Однако без активированного модуля UDF невозможно монтировать предоставленный CD-ROM, что препятствует применению пользовательских данных. Обходным решением является применение пользовательских данных, используя их усмотрение. В отличие от настроечных данных, пользовательские данные не шифруются. Дополнительные сведения см. в разделе "Форматы данных пользователей".
- RHEL 7 с помощью диспетчера Hyper-V
- RHEL 8/9/10 с помощью диспетчера Hyper-V
- RHEL 7 с помощью KVM
- RHEL 8/9/10 с помощью KVM
- RHEL 7 с помощью VMware
- RHEL 8/9/10 с помощью VMware
- RHEL 7 с помощью Kickstart
- RHEL 8/9/10 с помощью Kickstart
В диспетчере Hyper-V выберите виртуальную машину.
Выберите Подключение, чтобы открыть окно консоли для виртуальной машины.
Создайте или измените файл
/etc/sysconfig/network, добавив следующий текст:NETWORKING=yes HOSTNAME=localhost.localdomainСоздайте или измените файл
/etc/sysconfig/network-scripts/ifcfg-eth0, добавив следующий текст:DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no PERSISTENT_DHCLIENT=yes NM_CONTROLLED=yesПримечание.
При использовании ускоренной сетевой передачи подготовленный искусственный интерфейс должен быть настроен так, чтобы не подлежать управлению с помощью правила udev. Это действие предотвращает
NetworkManagerназначение того же IP-адреса ему, что и основной интерфейс.Чтобы применить его, выполните указанные действия.
sudo tee <<EOF /etc/udev/rules.d/68-azure-sriov-nm-unmanaged.rules > /dev/null # Accelerated Networking on Azure exposes a new SRIOV interface to the VM. # This interface is transparently bonded to the synthetic interface, # so NetworkManager should just ignore any SRIOV interfaces. SUBSYSTEM=="net", DRIVERS=="hv_pci", ACTION!="remove", ENV{NM_UNMANAGED}="1" EOFУбедитесь, что сетевая служба начинается во время загрузки:
sudo systemctl enable networkЗарегистрируйте подписку Red Hat, чтобы включить установку пакетов из репозитория RHEL:
sudo subscription-manager register --auto-attach --username=XXX --password=XXXИзмените загрузочную строку ядра в конфигурации grub, чтобы включить дополнительные параметры ядра для Azure. Для этого откройте
/etc/default/grubтекстовый редактор и изменитеGRUB_CMDLINE_LINUXпараметр. Рассмотрим пример.GRUB_TIMEOUT=10 GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 net.ifnames=0 nvme_core.io_timeout=240" GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"Эти изменения отключают новое соглашение об именовании сетевых интерфейсов, обеспечивают отправку всех сообщений консоли на первый последовательный порт и активируют возможность взаимодействия с консолью, что может помочь службе поддержки Aure в устранении проблем отладки.
rhgb quiet crashkernel=autoГрафические и тихие загрузки не полезны в облачной среде, где требуется отправлять все журналы в последовательный порт. Можно оставить параметр
crashkernelнастроенным, если вы хотите. Этот параметр уменьшает объем доступной памяти на виртуальной машине на 128 МБ или более, что может быть проблемой для небольших размеров виртуальных машин.После завершения редактирования
/etc/default/grubвыполните следующую команду, чтобы перестроить конфигурацию grub:sudo grub2-mkconfig -o /boot/grub2/grub.cfgПримечание.
Если вы загружаете виртуальную машину с поддержкой UEFI, выполните команду для обновления загрузчика grub с помощью команды
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg.Убедитесь, что SSH-сервер установлен и настроен для включения во время загрузки (что обычно задано по умолчанию). Измените файл
/etc/ssh/sshd_config, добавив в него следующую строку:ClientAliveInterval 180Пакет
WALinuxAgent-<version>WALinuxAgent доступен из репозитория Extras.sudo subscription-manager repos --enable=rhel-7-server-extras-rpmsУстановите агент
cloud-initAzure Linux и другие необходимые служебные программы:sudo yum install -y WALinuxAgent cloud-init cloud-utils-growpart gdisk hyperv-daemons sudo systemctl enable waagent.service sudo systemctl enable cloud-init.serviceНастройте
cloud-initдля обработки предоставления ресурсов.Настройка
waagentдляcloud-init:sudo sed -i 's/Provisioning.Agent=auto/Provisioning.Agent=auto/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.confПримечание.
Установите
Provisioning.Agent=disabledна конфигурации/etc/waagent.conf, если вы переносите определенную виртуальную машину и не хотите создавать обобщенный образ.Настройте подключения:
sudo echo "Adding mounts and disk_setup to init stage" sudo sed -i '/ - mounts/d' /etc/cloud/cloud.cfg sudo sed -i '/ - disk_setup/d' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - mounts' /etc/cloud/cloud.cfg sudo sed -i '/cloud_init_modules/a\\ - disk_setup' /etc/cloud/cloud.cfgНастройте источник данных Azure:
sudo echo "Allow only Azure datasource, disable fetching network setting via IMDS" sudo tee /etc/cloud/cloud.cfg.d/91-azure_datasource.cfg <<EOF datasource_list: [ Azure ] datasource: Azure: apply_network_config: False EOFПри настройке удалите существующий файл буфера:
if [[ -f /mnt/resource/swapfile ]]; then echo "Removing swapfile" #RHEL uses a swapfile by default swapoff /mnt/resource/swapfile rm /mnt/resource/swapfile -f fiНастройка
cloud-initведения журнала:sudo echo "Add console log file" sudo tee <<EOF /etc/cloud/cloud.cfg.d/05_logging.cfg > /dev/null # This tells cloud-init to redirect its stdout and stderr to # 'tee -a /var/log/cloud-init-output.log' so the user can see output # there without needing to look on the console. output: {all: '| tee -a /var/log/cloud-init-output.log'} EOF
Конфигурация обмена
Не создавайте пространство подкачки на диске ОС.
Ранее агент Linux Azure использовался для автоматической настройки пространства буфера на локальном диске ресурсов, подключенном к виртуальной машине после подготовки виртуальной машины в Azure,
cloud-initобрабатывает это действие. Запрещено использовать агент Linux для форматирования диска ресурсов для создания файла подкачки. Измените следующие параметры в/etc/waagent.confсоответствующим образом.ResourceDisk.Format=n ResourceDisk.EnableSwap=nЕсли вы хотите подключить, отформатировать и создать буфер, можно:
Передайте этот код в качестве конфигурации каждый раз, когда вы создаете виртуальную
cloud-initмашину с помощью пользовательских данных. Мы рекомендуем этот метод.Используйте директиву
cloud-init, встроенную в образ, которая выполняет этот шаг при каждом создании виртуальной машины.sudo echo 'DefaultEnvironment="CLOUD_CFG=/etc/cloud/cloud.cfg.d/00-azure-swap.cfg"' >> /etc/systemd/system.conf sudo tee /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/resource"] - ["ephemeral0.2", "none", "swap", "sw,nofail,x-systemd.requires=cloud-init.service,x-systemd.device-timeout=2", "0", "0"] EOF
Настройте
cloud-initтелеметрию для помощи в устранении неполадок с настройкой:sudo tee -a /etc/cloud/cloud.cfg.d/10-azure-kvp.cfg <<EOF # This config enables cloud-init to report provisioning telemetry to aid with troubleshooting Reporting: logging: type: log telemetry: type: hyperv EOFЧтобы отменить регистрацию подписки, выполните следующую команду:
sudo subscription-manager unregisterДепровизируйте виртуальную машину и подготовьте ее к провизии в Azure.
Внимание
Если вы переносите определенную виртуальную машину и не хотите создавать обобщенный образ, пропустите этап депровизирования. При выполнении команды
waagent -force -deprovision+userисходный компьютер не используется. Этот шаг предназначен только для создания обобщенного образа.sudo rm -f /var/log/waagent.log sudo cloud-init clean --logs --seed sudo waagent -force -deprovision+user sudo rm -f ~/.bash_history sudo export HISTSIZE=0В диспетчере Hyper-V выберите Действие>Завершение работы. Ваш виртуальный жесткий диск Linux готов к загрузке в Azure.