Поделиться через


Автоматическое восстановление Linux в Azure (ALAR) для исправления виртуальной машины Linux

Область применения: ✔️ виртуальные машины Linux

При следующем выполнении восстановления на виртуальной машине Linux Azure можно автоматизировать задание, поместив скрипты автоматического восстановления Azure (ALAR) для работы. Вам больше не нужно запускать задание вручную. Эти сценарии упрощают процесс восстановления и позволяют даже неопытным пользователям легко восстановить виртуальную машину Linux.

ALAR использует расширение восстановления виртуальной машины, описанное в разделе "Восстановление виртуальной машины Linux" с помощью команд восстановления виртуальной машины Azure.

ALAR охватывает следующие сценарии восстановления:

  • Сценарии без загрузки
    • Некорректный /etc/fstab
      • синтаксическая ошибка
      • отсутствующий диск
    • Поврежденный initrd или отсутствует строка initrd в /boot/grub/grub.cfg
    • Последнее установленное ядро не загружается
    • Повреждена установка или конфигурация GRUB/EFI
    • Проблемы с дисковым пространством и принудительное завершение работы auditd
  • Проблемы с конфигурацией
    • Последовательная консоль и сериал GRUB неправильно настроены или отсутствуют
    • Неправильная настройка Sudo

Использование ALAR

Скрипты ALAR используют расширение az vm repair, команду run и ее параметр --run-id. Значение параметра автоматического --run-id восстановления.linux-alar2 Чтобы исправить виртуальную машину Linux с помощью скрипта ALAR, выполните следующие действия.

Примечание.

Роль участника виртуальной машины не предоставляет достаточно разрешений для выполнения этих скриптовых операций, так как им требуются разрешения на чтение, запись и удаление ресурсов в группе ресурсов, включающую целевую виртуальную машину. Поэтому требуются такие роли, как участник или владелец на уровне группы ресурсов.

  1. Создайте виртуальную машину спасения:

    az vm repair create --verbose --resource-group <RG-NAME> --name <VM-NAME>
    
    • В настоящее время есть три параметра, которые запрашивают значения, если они не заданы в командной строке. Добавление этих параметров и значений в команду для неинтерактивного выполнения
      • --repair-username <RESCUE-USERNAME>
      • --repair-password <RESCUE-PASS>
      • --associate-public-ip
    • Дополнительные параметры, которые можно использовать для управления созданием виртуальной машины восстановления, см. в документации по ремонту виртуальной машины az vm
  2. linux-alar2 Запустите скрипт вместе с параметрами для одного или нескольких действий ALAR на виртуальной машине спасения:

    az vm repair run --verbose --resource-group <RG-NAME> --name <VM-NAME> --run-id linux-alar2 --parameters <action1,action2,...> --run-on-repair
    

    Ознакомьтесь со следующими сведениями о допустимых именах действий.

  3. Переключите копию диска ОС обратно на исходную виртуальную машину и удалите временные ресурсы:

    az vm repair restore --verbose --resource-group <RG-NAME> --name <VM-NAME> 
    

    Примечание.

    Исходные и новые диски не удаляются на restore этапе.

Во всех примерах команд показаны следующие параметры:

  • RG-NAME: имя группы ресурсов, содержащей сломанную виртуальную машину.
  • VM-NAME: имя неисправной виртуальной машины.
  • RESCUE-USERNAME: пользователь, созданный на виртуальной машине восстановления для входа. Это эквивалент пользователя, созданного на новой виртуальной машине в портал Azure.
  • RESCUE-PASS: пароль для RESCUE-USERNAME, заключенный в одинарные кавычки. Например: 'password!234'.
  • action1,action2и т. д.: одно или несколько определенных действий, доступных для применения к сломанной виртуальной машине. Посмотрите ниже для полного списка действий и в ALAR GitHub ReadMe. Вы можете передать одно или несколько действий, которые выполняются последовательно. Для нескольких операций очертите их с помощью запятых без пробелов, например fstab,sudo.

Действия ALAR

fstab

Это действие удаляет строки в файле /etc/fstab , которые не нужны для загрузки системы. Во-первых, копия исходного файла создается для ссылки. При запуске ОС администратор может изменить fstab, чтобы исправить ошибки, которые не позволили перезагрузке системы раньше.

Дополнительные сведения о проблемах с неправильно сформированным файлом /etc/fstab см. в разделе "Устранение неполадок с виртуальной машиной Linux" из-за ошибок fstab.

efifix

Это действие можно использовать для переустановки необходимого программного обеспечения для загрузки с виртуальной машины 2-го поколения. Файл grub.cfg также повторно создается.

grubfix

Это действие можно использовать для переустановки GRUB и повторного создания файла grub.cfg .

initrd

Это действие можно использовать для исправления инициализации или инициализации, поврежденной или неправильно созданной.

Чтобы правильно создать initrd или initramfs, добавьте модули hv_vmbusи hv_netvschv_storvsc образ.

Проблемы запуска, связанные с initrd, могут отображаться в виде следующих зарегистрированных симптомов.

Отсутствие синхронизации VFS Не найдена рабочая инициализация

В обоих случаях перед записью ошибок регистрируется следующая информация.

Сбой распаковки

Backports

Это действие изменяет ядро по умолчанию, заменив ядро по умолчанию или сломанное ядро на ранее установленную версию.

Дополнительные сведения о сообщениях, которые могут быть зарегистрированы в последовательной консоли для событий запуска, связанных с ядром, см. в статье "Как восстановить виртуальную машину Linux Azure из проблем с загрузкой, связанных с ядром".

serialconsole

Это действие исправляет неправильную или неправильно сформированную конфигурацию последовательной консоли для ядра Linux или GRUB. Мы рекомендуем выполнить это действие в следующих случаях:

  • Меню GRUB не отображается при запуске виртуальной машины.
  • Сведения, связанные с операционной системой, не записываются в последовательную консоль.

sudo

Действие sudo сбрасывает разрешения на файл /etc/sudoers и все файлы в /etc/sudoers.d, устанавливая необходимые режимы 0440, а также проверяет соответствие другим рекомендациям по лучшей практике. Базовая проверка выполняется для обнаружения и отчета о повторяющихся записях пользователей и перемещения только файла /etc/sudoers.d/waagent , если он найден конфликтующим с другими файлами.

аудит

Если виртуальная машина завершает работу сразу после запуска из-за конфигурации управляющей программы аудита, используйте это действие. Это действие изменяет конфигурацию управляющей программы аудита (в файле /etc/audit/auditd.conf ), изменив HALT значение, настроенное для любых action параметров SYSLOG, что не заставляет систему завершить работу. В среде диспетчера логических томов (LVM), если логический том, содержащий журналы аудита, заполнен и в группе томов есть доступное пространство, логический том может быть расширен на 10% текущего размера. Однако если вы не используете среду LVM или нет свободного места, изменится только auditd файл конфигурации.

Внимание

Это действие изменяет состояние безопасности виртуальной машины, изменив конфигурацию управляющей программы аудита, чтобы устранить проблему завершения работы виртуальной машины. После запуска и доступности виртуальной машины необходимо оценить конфигурацию и, возможно, вернуть ее к исходному состоянию. Для этого создается резервная копия файла auditd.conf в файле /etc/audit с помощью действия ALAR.

Ограничение

Классические виртуальные машины не поддерживаются.

Следующие шаги

Если вы испытываете ошибку или хотите запросить улучшение средства ALAR, опубликуйте комментарий на GitHub.

Вы также можете найти последние сведения о средстве ALAR на GitHub.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.

Отказ от ответственности за контакт с третьими лицами

Корпорация Майкрософт предоставляет контактные данные сторонних производителей в целях получения дополнительных сведений по данной теме. Эти контактные данные могут изменяться без уведомления. Корпорация Майкрософт не гарантирует точность контактных данных сторонних производителей.