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


Миграция с помощью автоматизированных скриптов Runbook

Область применения: ✔️ виртуальные машины ✔️ ✔️ Linux под управлением Windows На локальных серверах с ✔️ поддержкой Azure Arc

В этой статье описано, как с помощью модулей Runbook миграции можно автоматически перенести все рабочие нагрузки (компьютеры и расписания) из службы "Управление обновлениями службы автоматизации" в Azure Update Manager.

В следующих разделах содержатся сведения о том, как запустить скрипт, что он делает в серверной части, ожидаемом поведении и любых ограничениях, если это применимо. Скрипт может перенести все компьютеры и расписания в одной учетной записи службы автоматизации в один раз. Если у вас несколько учетных записей службы автоматизации, необходимо запустить модуль Runbook для всех учетных записей службы автоматизации.

На высоком уровне необходимо выполнить следующие действия, чтобы перенести компьютеры и расписания из службы "Управление обновлениями службы автоматизации" в Диспетчер обновлений Azure.

Неподдерживаемые сценарии

  • Не будут перенесены сохраненные поисковые запросы, не относящиеся к Azure; их необходимо перенести вручную.

Полный список ограничений и вещей, которые необходимо отметить, см . в основных точках миграции.

Пошаговое руководство

Сведения, упомянутые в каждом из описанных выше шагов, подробно описаны ниже.

Предварительные требования 1. Подключение компьютеров, отличных от Azure, к Arc

Что делать

Модуль Runbook службы автоматизации миграции игнорирует ресурсы, которые не подключены к Arc. Поэтому перед запуском модуля Runbook миграции необходимо подключить все компьютеры, отличные от Azure Arc. Выполните действия, чтобы подключить компьютеры к Azure Arc.

Предварительные требования 2. Создание удостоверений пользователей и назначений ролей с помощью скрипта PowerShell

А. Предварительные требования для запуска скрипта

  • Выполните команду Install-Module -Name Az -Repository PSGallery -Force в PowerShell. Скрипт предварительных требований зависит от Az.Modules. Этот шаг требуется, если Az.Modules не присутствуют или не обновляются.
  • Чтобы запустить этот скрипт предварительных требований, необходимо иметь разрешения Microsoft.Authorization/roleAssignments/write для всех подписок, содержащих ресурсы управления обновлениями службы автоматизации, такие как компьютеры, расписания, рабочая область log analytics и учетная запись службы автоматизации. Узнайте , как назначить роль Azure.
  • У вас должны быть разрешения управления обновлениями.

Снимок экрана, на котором показано, как установить модуль.

B. Выполнение скрипта

Скачайте и запустите скрипт MigrationPrerequisiteScript PowerShell локально. Этот скрипт принимает AutomationAccountResourceId учетной записи службы автоматизации для переноса и автоматизацииAccountAzureEnvironment в качестве входных данных. Допустимые значения для AutomationAccountAzureEnvironment : AzureCloud, AzureUSGovernment и AzureChina, указывающие облако, к которому принадлежит учетная запись службы автоматизации.

Снимок экрана: скачивание и запуск скрипта.

Вы можете получить AutomationAccountResourceId, перейдя в свойства учетной записи>службы автоматизации.

Снимок экрана: получение идентификатора ресурса.

C. Проверка

После запуска скрипта убедитесь, что в учетной записи автоматизации создается управляемое удостоверение пользователя. Назначен пользователь учетной>записи>службы автоматизации.

Снимок экрана: проверка создания управляемого удостоверения пользователя.

D. Внутренние операции с помощью скрипта

  • Обновление Az.Modules для учетной записи службы автоматизации, которая потребуется для выполнения сценариев миграции и переноса.

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

  • Создание удостоверения пользователя в той же подписке и группе ресурсов, что и учетная запись службы автоматизации. Имя удостоверения пользователя будет таким же , как AutomationAccount_aummig_umsi.

  • Присоединение удостоверения пользователя к учетной записи службы автоматизации.

  • Скрипт назначает следующие разрешения управляемому удостоверению пользователя: обязательные разрешения для управления обновлениями.

    1. Для этого скрипт извлекает все компьютеры, подключенные к управлению обновлениями службы автоматизации, в рамках этой учетной записи службы автоматизации, и анализирует идентификаторы подписок, которые необходимо предоставить RBAC идентификатору пользователя.
    2. Скрипт предоставляет RBAC правильному идентификатору пользователя в подписке, к которой принадлежит учетная запись службы автоматизации, чтобы можно было создать здесь конфигурации MRP.
    3. Скрипт назначает необходимые роли для рабочей области и решения Log Analytics.
  • Регистрация необходимых подписок для поставщиков ресурсов Microsoft.Maintenance и Microsoft.EventGrid.

Шаг 1. Миграция компьютеров и расписаний

Этот шаг включает использование модуля Runbook службы автоматизации для переноса всех компьютеров и расписаний из учетной записи службы автоматизации в Диспетчер обновлений Azure.

Выполните следующие действия:

  1. Импорт модуля Runbook миграции из коллекции runbook и публикация. Выполните поиск обновления службы автоматизации Azure из коллекции и импортируйте модуль Runbook миграции с именем "Миграция из служба автоматизации Azure управление обновлениями в Диспетчер обновлений Azure" и опубликуйте модуль Runbook.

    Снимок экрана, на котором показано, как выполнить миграцию из службы

    Runbook поддерживает PowerShell 5.1.

    Снимок экрана: модуль Runbook поддерживает PowerShell 5.1 при импорте.

  2. Задайте для модуля Runbook значение True для подробного ведения журнала.

    Снимок экрана: настройка подробных записей журнала.

  3. Запустите модуль Runbook и передайте необходимые параметры, такие как AutomationAccountResourceId, UserManagedServiceIdentityClientId и т. д.

    Снимок экрана: запуск модуля Runbook и передача необходимых параметров.

    1. Вы можете получить automationAccountResourceId из свойств учетной записи>службы автоматизации.

      Снимок экрана: получение идентификатора ресурса учетной записи службы автоматизации.

    2. Вы можете получить идентификатор клиента userManagedServiceIdentityClientId из идентификатора пользователя,>назначенного>пользователем удостоверения>>службы автоматизации.>

      Снимок экрана: получение идентификатора клиента.

    3. Параметр EnablePeriodicAssessmentForMachinesOnboardedToUpdateManagement для TRUE включает периодическое свойство оценки на всех компьютерах, подключенных к управлению обновлениями службы автоматизации.

    4. Установка параметра MigrateUpdateSchedulesAndEnablePeriodicAssessmentonLinkedMachines на TRUE перенесите все расписания обновлений в Диспетчер обновлений службы автоматизации в Диспетчер обновлений Azure, а также включить периодическое свойство оценки в True на всех компьютерах, связанных с этими расписаниями.

    5. Необходимо указать ResourceGroupForMaintenanceConfigurations , где будут созданы все конфигурации обслуживания в Диспетчере обновлений Azure. Если указать новое имя, будет создана группа ресурсов, в которой будут созданы все конфигурации обслуживания. Однако если указать имя, с которым уже существует группа ресурсов, все конфигурации обслуживания будут созданы в существующей группе ресурсов.

  4. Проверьте журналы Runbook Azure, чтобы узнать о состоянии выполнения и миграции для SCS.

    Снимок экрана: журналы runbook.

Операции Runbook в серверной части

Миграция модуля Runbook выполняет следующие задачи:

  • Включает периодическую оценку на всех компьютерах.
  • Все расписания в учетной записи автоматизации переносятся в Диспетчер обновлений Azure, а для каждого из них создается соответствующая конфигурация обслуживания с одинаковыми свойствами.

Сведения о скрипте

Ниже приведено поведение скрипта миграции.

  • Проверьте, присутствует ли группа ресурсов с именем, принятым в качестве входных данных, в подписке учетной записи службы автоматизации или нет. Если нет, создайте группу ресурсов с именем, указанным клиентом. Эта группа ресурсов используется для создания конфигураций MRP для версии 2.

  • Параметр RebootOnly недоступен в Диспетчере обновлений Azure. Расписания с параметром RebootOnly не переносятся.

  • Отфильтруйте suCs, которые находятся в состоянии ошибки, истечения срока действия или подготовкиFailed/disabled, и помечайте их как не перенесенные, и напечатать соответствующие журналы, указывающие, что такие suCs не переносятся.

  • Имя назначения конфигурации — это строка, которая будет находиться в формате AUMMig_AAName_SUCName

  • Узнайте, назначена ли эта динамическая область конфигурации обслуживания или не проверяется на Azure Resource Graph. Если это не назначено, назначьте только имя назначения в формате AUMMig_ AAName_SUCName_SomeGUID.

  • Для расписаний с настроенными задачами предварительной и последующей отправки скрипт создаст веб-перехватчик службы автоматизации для модулей Runbook в задачах предварительной записи и подписках сетки событий для событий предварительного или последующего обслуживания. Дополнительные сведения см. в статье о работе предварительной и публикации в Диспетчере обновлений Azure

  • Резюмируемый набор журналов выводится в поток вывода, чтобы обеспечить общее состояние компьютеров и SCS.

  • Подробные журналы печатаются в подробном потоке.

  • После миграции конфигурация обновления программного обеспечения может иметь одно из следующих четырех состояний миграции:

    • MigrationFailed
    • ЧастичноMigrated
    • NotMigrated
    • Перенесены

В приведенной ниже таблице показаны сценарии, связанные с каждым состоянием миграции.

MigrationFailed ЧастичноMigrated NotMigrated Перенесены
Не удалось создать конфигурацию обслуживания для конфигурации обновления программного обеспечения. Ненулевое число компьютеров, в которых не удалось применить параметры исправления. Не удалось получить конфигурацию обновления программного обеспечения из API из-за некоторых ошибок клиента или сервера, например внутренней ошибки службы.
Ненулевое число компьютеров с неисправными назначениями конфигурации. Конфигурация обновления программного обеспечения имеет параметр перезагрузки только в качестве перезагрузки. Это не поддерживается сегодня в Диспетчере обновлений Azure.
Ненулевое число динамических запросов не удалось устранить, которое не удалось выполнить запрос к Azure Resource Graph.
Ненулевое число сбоев назначения конфигурации динамической области. Конфигурация обновления программного обеспечения не имеет состояния подготовки в базе данных.
Конфигурация обновления программного обеспечения сохраняет поисковые запросы. Конфигурация обновления программного обеспечения находится в состоянии ошибки в базе данных.
Конфигурация обновления программного обеспечения выполняет задачи предварительной или post, которые не были успешно перенесены. Расписание, связанное с конфигурацией обновления программного обеспечения, уже истекло во время миграции.
Расписание, связанное с конфигурацией обновления программного обеспечения, отключено.
Необработанное исключение при переносе конфигурации обновления программного обеспечения. Ноль компьютеров, на которых не удалось применить параметры исправления.

And

Ноль компьютеров с неудачными назначениями конфигурации.

And

Не удалось разрешить не удалось выполнить запрос к Azure Resource Graph, но не удалось выполнить динамические запросы.

And

Сбои назначения динамической области.

And

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

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

Вы также можете выполнить поиск по имени расписания обновления, чтобы получить журналы, относящиеся к нему для отладки.

Снимок экрана: просмотр журналов, относящихся к отладке.

Шаг 2. Отключение подключения из решения управления обновлениями службы автоматизации

Выполните следующие действия:

  1. Импортируйте модуль Runbook миграции из коллекции runbook. Выполните поиск обновления службы автоматизации Azure из коллекции и импортируйте модуль Runbook миграции с именем Deboard из служба автоматизации Azure Update Management и опубликуйте модуль Runbook.

    Снимок экрана: импорт модуля Runbook миграции deaboard.

    Runbook поддерживает PowerShell 5.1.

    Снимок экрана: модуль Runbook поддерживает PowerShell 5.1 при переборе.

  2. Задайте для модуля Runbook значение True для подробного ведения журнала.

    Снимок экрана, на котором показан параметр подробных записей журнала при дебординге.

  3. Запустите модуль Runbook и передайте такие параметры, как AccountResourceId, UserManagedServiceIdentityClientId и т. д.

    Снимок экрана: запуск модуля Runbook и передача параметров во время отмены подключения.

    Вы можете получить automationAccountResourceId из свойств учетной записи>службы автоматизации.

    Снимок экрана, на котором показано, как получить идентификатор ресурса при переборе.

    Вы можете получить идентификатор клиента userManagedServiceIdentityClientId из идентификатора пользователя,>назначенного>пользователем удостоверения>>службы автоматизации.>

    Снимок экрана, на котором показано, как получить идентификатор клиента при переборе.

  4. Проверьте журналы runbook Azure для состояния деboarding компьютеров и расписаний.

    Снимок экрана, на котором показано, как журналы Runbook во время деboarding.

Отмена операций скрипта в серверной части

  • Отключите все базовые расписания для всех конфигураций обновлений программного обеспечения, присутствующих в этой учетной записи службы автоматизации. Это делается для обеспечения того, чтобы runbook patch-MicrosoftOMSComputers не активировался для SCS, которые были частично перенесены на версию 2.
  • Удалите решение обновлений из связанной рабочей области Log Analytics для учетной записи службы автоматизации, отложенной из службы "Управление обновлениями службы автоматизации" в версии 1.
  • В выходной поток также выводится сводный журнал всех SCS, отключенных и состояние удаления решения обновлений из связанной рабочей области log analytics.
  • Подробные журналы печатаются в подробных потоках.

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