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


Операции поддержки для поставщиков ресурсов MySQL в Azure Stack Hub

Важно!

Начиная со сборки Azure Stack Hub 2108 поставщики ресурсов SQL и MySQL предлагаются для подписок, которым предоставлен доступ. Если вы хотите начать использовать эту функцию или вам нужно выполнить обновление с предыдущей версии, отправьте обращение в службу поддержки , и наши специалисты по поддержке проведут процесс развертывания или обновления.

Поставщик ресурсов MySQL выполняется на заблокированной виртуальной машине. Чтобы включить операции обслуживания, вам нужно обновить систему безопасности виртуальной машины. Для этого с помощью принципа минимальных привилегий (POLP) можно использовать конечную точку POWERShell Just Enough Administration (JEA) DBAdapterMaintenance. Пакет установки поставщика ресурсов содержит сценарий для этой операции.

Установка исправлений и обновлений

Поставщик ресурсов MySQL не обслуживается как часть Azure Stack Hub, так как это компонент надстройки. Корпорация Майкрософт при необходимости предоставляет обновления для поставщика ресурсов MySQL.

Для MySQL RP версии 1 при выпуске обновленного поставщика ресурсов MySQL Server предоставляется скрипт для применения обновления. Этот сценарий создает виртуальную машину поставщика ресурсов, перенося в нее состояние старой виртуальной машины поставщика.

Для MySQL RP версии 2 поставщики ресурсов обновляются с помощью той же функции обновления, которая используется для применения обновлений Azure Stack Hub.

Дополнительные сведения см. в статье Обновление поставщика ресурсов MySQL.

Обновление виртуальной машины поставщика

MySQL RP версии 1 выполняется на пользовательской виртуальной машине. При их выпуске необходимо применить необходимые исправления и обновления. Вы можете установить пакет клиентский компонент Центра обновления Windows во время установки или обновления поставщика ресурсов.

MySQL RP версии 2 выполняется на управляемом сервере Windows Server, который скрыт. Вам не нужно исправлять или обновлять виртуальную машину поставщика ресурсов. Он будет обновляться автоматически при обновлении RP.

Обновление определений Защитника Windows

Эти инструкции относятся только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Чтобы обновить определения Защитника, сделайте следующее:

  1. Скачайте обновление определений Защитник Windows из Защитник Windows Definition.

    На странице определений прокрутите список вниз до пункта "Скачать и установить определения вручную". Скачайте 64-разрядный файл "Windows Defender Antivirus for Windows 10 and Windows 8.1" (Антивирусная программа "Защитник Windows" для Windows 10 и Windows 8.1).

    Кроме того, можно использовать эту прямую ссылку, чтобы скачать и установить файл fpam-fe.exe.

  2. Откройте сеанс PowerShell для конечной точки обслуживания виртуальной машины для адаптера поставщика ресурсов MySQL.

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

  4. Во время сеанса обслуживания PowerShell выполните команду Update-DBAdapterWindowsDefenderDefinitions.

  5. После установки определений рекомендуется удалить файл обновления определений с помощью команды Remove-ItemOnUserDrive ).

Пример скрипта PowerShell для обновления определений.

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

# Set credentials for the local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
    ($vmLocalAdminUser, $vmLocalAdminPass)

# Provide the public IP address for the adapter VM.
$databaseRPMachine  = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"

# Download Windows Defender update definitions file from https://www.microsoft.com/en-us/wdsi/definitions.  
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
    -Outfile $localPathToDefenderUpdate  

# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
    -Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
    -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
     -Destination "User:\"

# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
    {Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}

# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
    {Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession

Настройка расширения Диагностики Azure для поставщика ресурсов MySQL

Эти инструкции относятся только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

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

  1. Войдите на портал администратора Azure Stack Hub.

  2. Выберите Виртуальные машины на панели слева, найдите виртуальную машину адаптера поставщика ресурсов MySQL и выберите ее.

  3. В разделе Параметры диагностики на виртуальной машине откройте вкладку Журналы и выберите Настройка, чтобы настроить собираемые журналы событий.

    Перейдите к параметрам диагностика

  4. Добавьте Microsoft-AzureStack-DatabaseAdapter/Operational!* для сбора журналов операционных событий поставщика ресурсов MySQL.

    Добавление журналов событий

  5. Чтобы включить сбор журналов IIS, установите флажки Журналы IIS и Журналы неудачных запросов.

    Добавление журналов IIS

  6. Наконец, нажмите кнопку Сохранить, чтобы сохранить все параметры диагностики.

После настройки сбора журналов событий и журналов IIS для поставщика ресурсов MySQL эти журналы можно найти в системной учетной записи хранения с именем mysqladapterdiagaccount.

См. основные сведения о расширении Диагностики Azure.

Смена секретов

Эти инструкции применяются только к интегрированным системам Azure Stack Hub.

При использовании поставщиков ресурсов SQL и MySQL в интегрированных системах Azure Stack Hub оператор Azure Stack Hub отвечает за смену следующих секретов инфраструктуры поставщика ресурсов, чтобы обеспечить их актуальность:

  • Внешний SSL-сертификат , предоставленный во время развертывания.
  • пароль учетной записи локального администратора виртуальной машины поставщика ресурсов, предоставленный во время развертывания;
  • пароль пользователя диагностики (dbadapterdiag) поставщика ресурсов.
  • (версия >= 1.1.47.0) Key Vault сертификат, созданный во время развертывания.

Примеры PowerShell для смены секретов

Смена всех секретов одновременно

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd `  
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

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

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Измените пароль учетной записи локального администратора виртуальной машины:

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

Смена SSL-сертификата

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Смена сертификата Key Vault

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Параметры SecretRotationMySQLProvider.ps1

Параметр Описание Комментарий
AzureEnvironment Среда Azure учетной записи администратора службы, которая использовалась для развертывания Azure Stack Hub. Требуется только для Microsoft Entra развертываний. Поддерживаемые имена сред: AzureCloud, AzureUSGovernment или, если используется идентификатор Microsoft Entra Для Китая, AzureChinaCloud. Необязательно
AzCredential Учетные данные учетной записи администратора службы Azure Stack Hub. Сценарий завершится ошибкой, если для учетной записи, используемой с AzCredential, требуется многофакторная проверка подлинности (MFA). Обязательный
CloudAdminCredential Учетные данные учетной записи домена администратора облака Azure Stack Hub. Обязательный
PrivilegedEndpoint Привилегированная конечная точка для получения информации о метке Azure Stack (Get-AzureStackStampInformation). Обязательный
DiagnosticsUserPassword Пароль учетной записи для пользователя диагностики. Необязательно
VMLocalCredential Учетная запись локального администратора на виртуальной машине MySQLAdapter. Необязательно
DefaultSSLCertificatePassword Пароль SSL-сертификата (*.pfx) по умолчанию. Необязательно
DependencyFilesLocalPath Локальный путь к файлам зависимостей. Необязательно
KeyVaultPfxPassword Пароль, используемый для создания сертификата Key Vault для адаптера базы данных. Необязательно

Эти инструкции относятся только к MySQL RP версии 2, работающей в интегрированных системах Azure Stack Hub.

Примечание

Смена секретов для поставщиков ресурсов с добавленной стоимостью (RP) в настоящее время поддерживается только через PowerShell.

Как и инфраструктура Azure Stack Hub, поставщики дополнительных ресурсов используют как внутренние, так и внешние секреты. Как оператор, вы отвечаете за:

  • предоставление обновленных внешних секретов, таких как новый сертификат TLS, используемый для защиты конечных точек поставщика ресурсов;

  • Регулярное управление сменой секретов поставщика ресурсов.

Когда срок действия секретов приближается, на портале администрирования создаются следующие оповещения. Смена секретов позволит устранить условия, активирующие следующие оповещения:

  • ожидается истечение срока действия внутреннего сертификата;

  • ожидается истечение срока действия внешнего сертификата.

Предварительные требования

При подготовке к процессу смены:

  1. Если вы еще этого не сделали, установите модуль PowerShell Az для Azure Stack Hub, прежде чем продолжать. Для смены секретов Azure Stack Hub требуется предварительная версия 2.0.2 или более поздняя. Дополнительные сведения см. в разделе Миграция с AzureRM на Azure PowerShell Az в Azure Stack Hub.

  2. Установите Azs.Deployment. Модули Администратор 1.0.0: коллекция PowerShell | Azs.Deployment. Администратор 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Если срок действия внешнего сертификата приближается к сроку действия, ознакомьтесь с требованиями к сертификатам инфраструктуры открытых ключей Azure Stack Hub (PKI) перед получением или продлением сертификата X509, включая сведения о требуемом формате PFX. Также ознакомьтесь с требованиями, указанными в разделе Необязательные сертификаты PaaS для вашего конкретного поставщика дополнительных ресурсов.

Подготовка нового TLS-сертификата для смены внешних сертификатов

Примечание

Если истек срок действия только внутреннего сертификата, этот раздел можно пропустить.

Затем создайте или обновите свой TLS-сертификат для защиты конечных точек поставщика дополнительных ресурсов:

  1. Выполните действия, описанные в разделе Создание запросов на подпись сертификатов (CSR) для обновления сертификата для вашего поставщика ресурсов. Здесь вы используете средство проверки готовности Azure Stack Hub для создания CSR. Обязательно запустите правильный командлет для вашего поставщика ресурсов на шаге "Создание запросов сертификатов для других служб Azure Stack Hub". Например New-AzsDbAdapterCertificateSigningRequest , используется для ЗАПРОСОВ SQL и MySQL. По завершении вы отправляете созданный объект . Файл REQ в центр сертификации (ЦС) для нового сертификата.

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

  3. Наконец, выполните действия, описанные в разделе Проверка сертификатов PKI Azure Stack Hub. Вы снова нужно использовать средство проверки готовности, чтобы выполнить проверочные тесты для вашего нового сертификата.

Смена внутреннего сертификата

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия, чтобы сменить внешние секреты поставщика ресурсов.

  1. Войдите в среду Azure Stack Hub, используя учетные данные оператора. См. статью Подключение к Azure Stack Hub с помощью PowerShell для сценария входа в PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Определите идентификатор продукта поставщика ресурсов. Выполните командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите интересующий вас поставщик ресурсов и запишите значения следующих свойств:

    • "name" – содержит идентификатор продукта поставщика ресурсов во втором сегменте значения;

    Например, у развертывания поставщика ресурсов MySQL может быть идентификатор "microsoft.mysqlrp"продукта .

  3. Invoke-AzsProductRotateSecretsAction Выполните командлет , чтобы сменить внутренний сертификат:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Смена внешнего сертификата

Сначала необходимо заметить значения следующих параметров.

Заполнитель Описание Пример значения
<product-id> Идентификатор продукта последнего развертывания поставщика ресурсов. microsoft.mysqlrp
<installed-version> Версия последнего развертывания поставщика ресурсов. 2.0.0.2
<package-id> Идентификатор пакета создается путем объединения product-id и installed-version. microsoft.mysqlrp.2.0.0.2
<cert-secret-name> Имя, под которым хранится секрет сертификата. SSLCert
<cert-pfx-file-path> Путь к PFX-файлу сертификата. C:\dir\dbadapter-cert-file.pfx
<pfx-password> Пароль, назначенный сертификату . PFX-файл. strong@CertSecret6

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия.

  1. Войдите в среду Azure Stack Hub, используя учетные данные оператора. См. статью Подключение к Azure Stack Hub с помощью PowerShell для сценария входа в PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Получите значение параметра product-id. Выполните командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите интересующий вас поставщик ресурсов и запишите значения следующих свойств:

    • "name" – содержит идентификатор продукта поставщика ресурсов во втором сегменте значения;
    • "properties"."deployment"."version" – содержит номер развернутой версии.

    Например, у развертывания RP MySQL может быть идентификатор "microsoft.mysqlrp"продукта и версия "2.0.0.2".

  3. Создайте идентификатор пакета поставщика ресурсов, объединив идентификатор продукта поставщика ресурсов и версию. Например, при использовании значений, полученных на предыдущем шаге, идентификатор пакета SQL RP имеет значение microsoft.mysqlrp.2.0.0.2.

  4. Используя идентификатор пакета, полученный на предыдущем шаге, выполните Get-AzsProductSecret -PackageId, чтобы получить список типов секретов, используемых поставщиком ресурсов. В возвращенной коллекции value найдите элемент, содержащий значение "Certificate" для свойства "properties"."secretKind". Этот элемент содержит свойства для секрета сертификата RP. Запишите имя, присвоенное этому секрету сертификата, которое определяется последним сегментом свойства "name" сразу над "properties".

    Например, коллекция секретов, возвращаемая для поставщика ресурсов SQL, содержит секрет с "Certificate" именем SSLCert.

  5. Используйте командлет Set-AzsProductSecret для импорта нового сертификата в Key Vault, который будет использоваться в процессе смены. Замените значения заполнителей переменной соответствующим образом перед выполнением скрипта.

    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  6. Наконец, используйте Invoke-AzsProductRotateSecretsAction командлет для смены секретов:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Мониторинг хода смены секретов

Вы можете отслеживать ход смены секретов либо в консоли PowerShell, либо на портале администратора, выбрав поставщика ресурсов в службе Marketplace:

Экран выполнения смены секретов.

Примечание

Время смены секрета может стоить более 10 минут. После этого состояние поставщика ресурсов изменится на "Установлено".

Сбор данных журналов диагностики

Azure Stack Hub предоставляет несколько способов сбора, сохранения и отправки журналов диагностики в служба поддержки Майкрософт. Начиная с версии 1.1.93, поставщик ресурсов MySQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Дополнительные сведения см. в разделе Сбор журналов диагностики.

Начиная с версии 1.1.93, поставщик ресурсов MySQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Если вы используете более раннюю версию, рекомендуется обновить поставщик ресурсов MySQL до последней версии.

Чтобы собрать данные журналов с заблокированной виртуальной машины, используйте конечную точку DBAdapterDiagnostics PowerShell Just Enough Administration (JEA). Она предоставляет следующие команды:

  • Get-AzsDBAdapterLog. Эта команда создает пакет ZIP с журналами диагностики поставщика ресурсов и сохраняет этот файл на пользовательском диске сеанса. Эту команду можно выполнить без параметров, чтобы собрать данные журналов за последние четыре часа.

  • Remove-AzsDBAdapterLog. Эта команда удаляет имеющиеся пакеты журналов на виртуальной машине поставщика ресурсов.

Требования и процесс работы конечной точки

При установке или обновлении поставщика ресурсов создается учетная запись пользователя dbadapterdiag. Она используется для сбора журналов диагностики.

Примечание

Пароль учетной записи dbadapterdiag такой же, как и у локального администратора на виртуальной машине, созданной при развертывании или обновлении поставщика.

Чтобы использовать команды DBAdapterDiagnostics, нужно создать удаленный сеанс PowerShell для виртуальной машины поставщика ресурсов и выполнить команду Get-AzsDBAdapterLog.

Вы можете задать период для сбора журналов с помощью параметров FromDate и ToDate. Если один или оба этих параметра не заданы, используются следующие значения по умолчанию:

  • FromDate — за четыре часа до текущего момента.
  • ToDate — текущий момент времени.

Пример скрипта PowerShell для сбора журналов:

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

# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'
$diagCreds = New-Object System.Management.Automation.PSCredential `
        ($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
        -ConfigurationName DBAdapterDiagnostics -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow

# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage

# Cleanup the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

Известные ограничения поставщика ресурсов сервера MySQL Версии 1

Ограничение:
При сбое сценария развертывания, обновления или смены секретов некоторые журналы не могут быть собраны стандартным механизмом сбора журналов.

Обходной путь.
Помимо использования стандартного механизма сбора журналов, перейдите в папку Журналы в извлеченной папке, где находится скрипт, чтобы найти дополнительные журналы.

Дальнейшие действия

Добавление серверов размещения Сервера MySQL