Mettre à jour le fournisseur de ressources MySQL dans Azure Stack Hub

Important

À partir de la build Azure Stack Hub 2108, les fournisseurs de ressources SQL et MySQL sont proposés aux abonnements auxquels l’accès a été accordé. Si vous souhaitez commencer à utiliser cette fonctionnalité ou si vous devez effectuer une mise à niveau à partir d’une version précédente, ouvrez une demande de support afin que nos ingénieurs du support technique vous guident tout au long du processus de déploiement ou de mise à niveau.

Important

Avant de mettre à jour le fournisseur de ressources, passez en revue les notes de publication pour en savoir plus sur les nouvelles fonctionnalités, les correctifs et les problèmes connus qui pourraient affecter votre déploiement. Les notes de publication spécifient également la version minimale d'Azure Stack Hub requise par le fournisseur de ressources.

Important

La mise à jour du fournisseur de ressources NE met PAS à jour le serveur MySQL Server d’hébergement.

Quand Azure Stack Hub publie une nouvelle build, nous pouvons publier un nouvel adaptateur de fournisseur de ressources MySQL. Même si l’adaptateur existant continue de fonctionner, nous vous recommandons d’effectuer une mise à jour dès que possible vers la build la plus récente.

Versions d’Azure Stack Hub prises en charge Version du fournisseur de ressources MySQL Windows Server sur lequel le service RP s’exécute
2206, 2301, 2306, 2311 MySQL RP version 2.0.13.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0
2108, 2206 MySQL RP version 2.0.6.x Microsoft AzureStack Add-on RP Windows Server 1.2009.0

Mettre à jour le fournisseur de ressources MySQL Server V2

Si vous avez déjà déployé MySQL RP V2 et que vous souhaitez case activée pour les mises à jour, case activée Comment appliquer des mises à jour au fournisseur de ressources.

Si vous souhaitez effectuer une mise à jour de MySQL RP V1 vers MySQL RP V2, veillez d’abord à mettre à jour vers MySQL RP V1.1.93.x, puis appliquez le processus de mise à niveau de la version principale pour mettre à niveau de MySQl RP V1 vers MySQL RP V2.

Effectuer une mise à jour de MySQL RP V1.1.93.x vers MySQL RP V2.0.6.0

Prérequis

  1. Veillez à mettre à jour MySQL RP V1 vers la dernière version 1.1.93.x. Sous Abonnement fournisseur par défaut, recherchez le groupe de ressources RP (format de nommage : system.<region>. mysqladapter). Vérifiez l’étiquette de version et le nom de machine virtuelle MySQL RP dans le groupe de ressources. Si vous utilisez toujours une ancienne version et que vous devez effectuer une mise à jour vers la version 1.1.93.x, ouvrez un cas de support pour obtenir de l’aide.

  2. Ouvrez une demande de support pour obtenir le package MajorVersionUpgrade, puis ajoutez votre abonnement à la liste d’autorisation de la marketplace ASH pour la version v2 future.

  3. Téléchargez Microsoft AzureStack Add-On RP Windows Server 1.2009.0 sur la marketplace.

  4. Vérifiez que votre Hub Azure Stack répond aux conditions préalables d’intégration du centre de données.

    Configuration requise Informations de référence
    La redirection DNS conditionnelle est correctement définie. Intégration au centre de données Azure Stack Hub - DNS
    Les ports d’entrée pour les fournisseurs de ressources sont ouverts. Intégration au centre de données Azure Stack Hub - Ports et protocoles entrants
    Les objets du certificat PKI et SAN sont correctement définis. Prérequis PKI obligatoires pour le déploiement d'Azure Stack Hub
    Prérequis de certificat PaaS pour le déploiement d'Azure Stack Hub
  5. (pour un environnement déconnecté) Installez les modules PowerShell requis, de la même manière qu’avec le processus de mise à jour utilisé pour déployer le fournisseur de ressources MySQL.

  6. Préparez l’URI du connecteur MySQL avec la version requise. Pour plus d’informations, consultez Déployer le fournisseur de ressources MySQL. Par exemple : https://<nom du compte de stockage>.blob.<région>.<FQDN>/<nom du conteneur>/mysql-connector-net-8.0.21.msi

Déclencher MajorVersionUpgrade

Exécutez le script suivant à partir d’une console PowerShell avec élévation de privilèges pour effectuer une mise à niveau vers la version principale.

Notes

Vérifiez que le système d’exploitation de l’ordinateur client sur lequel vous exécutez le script n’est pas antérieur à Windows 10 ou Windows Server 2016, et que l’ordinateur client dispose d’une architecture X64.

Important

Nous vous recommandons fortement d’utiliser Clear-AzureRmContext -Scope CurrentUser et Clear-AzureRmContext -Scope Process pour effacer le cache avant d’exécuter le script de déploiement ou de mise à jour.

# Check Operating System version
$osVersion = [environment]::OSVersion.Version
if ($osVersion.Build -lt 10240)
{
    Write-Host "OS version is too old: $osVersion."
    return
}

$osArch = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
if ($osArch -ne "64-bit")
{
    Write-Host "OS Architecture is not 64 bit."
    return
}

# Check LongPathsEnabled registry key
$regPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem'
$longPathsEnabled = 'LongPathsEnabled'
$property = Get-ItemProperty -Path $regPath -Name $longPathsEnabled -ErrorAction Stop
if ($property.LongPathsEnabled -eq 0)
{
    Write-Host "Detect LongPathsEnabled equals to 0, prepare to set the property."
    Set-ItemProperty -Path $regPath -Name $longPathsEnabled -Value 1 -ErrorAction Stop
    Write-Host "Set the long paths property, please restart the PowerShell."
    return
} 

# Use the NetBIOS name for the Azure Stack Hub domain. 
$domain = "YouDomain" 
# For integrated systems, use the IP address of one of the ERCS VMs
$privilegedEndpoint = "YouDomain-ERCS01"
# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "AzureCloud"
# Point to the directory where the resource provider installation files were extracted.
$tempDir = 'C:\extracted-folder\MajorVersionUpgrade-MySQLRP'
# The service admin account can be Azure Active Directory or Active Directory Federation Services.
$serviceAdmin = "admin@mydomain.onmicrosoft.com"
$AdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass)
# Add the cloudadmin credential that's required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'xxxxxxxx' -AsPlainText -Force
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass)
# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'xxxxxxx' -AsPlainText -Force
# Provide the pfx file path
$PfxFilePath = "C:\tools\mysqlcert\SSL.pfx"
# Local blob uri where stores the required mysql connector
$MySQLConnector = "Provide the MySQL Connector Uri according to Prerequisites step."
# PowerShell modules used by the RP MajorVersionUpgrade are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 
. $tempDir\MajorVersionUpgradeMySQLProvider.ps1 -AzureEnvironment $AzureEnvironment -AzCredential $AdminCreds -CloudAdminCredential $CloudAdminCreds -Privilegedendpoint $privilegedEndpoint -PfxPassword $PfxPass -PfxCert $PfxFilePath -MySQLConnector $MySQLConnector

Notes

L’adresse DNS et l’adresse IP correspondante de MySQL RP V2 sont différentes. Pour obtenir la nouvelle adresse IP publique, vous pouvez demander un compte de secours DRP au support technique et rechercher la ressource MySQLRPVM1130-PublicIP. Vous pouvez également exécuter « nslookup mysqlrp.dbadapter.<fqdn> » à partir d’un ordinateur client qui a déjà réussi le test de point de terminaison pour trouver l’adresse IP publique.

Valider la réussite de la mise à niveau

  1. Le script MajorVersionUpgrade s’est exécuté sans erreurs.
  2. Vérifiez le fournisseur de ressources dans la marketplace et assurez-vous que MySQL RP 2.0 a été installé avec succès.
  3. Les anciens groupes de ressources system.location>.mysqladapter et > dans l’abonnement fournisseur par défaut ne seront pas automatiquement supprimés par le script.
  • Nous vous recommandons de conserver le compte de stockage et le Key Vault dans le groupe de ressources mysqladapter pendant un certain temps. Si, après la mise à niveau, un utilisateur locataire observe une base de données ou des métadonnées de connexion incohérentes, il est possible d’accéder au support pour restaurer les métadonnées à partir du groupe de ressources.
  • Après avoir vérifié que la zone DNS dans le groupe de ressources dbadapter.dns est vide sans enregistrement DNS, il est possible de supprimer le groupe de ressources dbadapter.dns en toute sécurité.
  • [IMPORTANT] N’utilisez pas le script de déploiement V1 pour désinstaller la version V1. Après la mise à niveau et après avoir reçu la confirmation qu’elle a réussi, vous pouvez supprimer manuellement le groupe de ressources de l’abonnement du fournisseur.

Effectuer une mise à jour de MySQL RP V1 version antérieure vers MySQL RP V1.1.93.x

La mise à jour du fournisseur de ressources MySQL V1 est cumulative. Vous pouvez effectuer directement la mise à jour vers la version 1.1.93.x.

Pour mettre à jour le fournisseur de ressources vers la version 1.1.93.x, utilisez le script UpdateMySQLProvider.ps1. Vous devez utiliser votre compte de service avec des droits d’administrateur local et être propriétaire de l’abonnement. Ce script de mise à jour est inclus avec le téléchargement du fournisseur de ressources.

Pour mettre à jour le fournisseur de ressources, vous utilisez le script UpdateMySQLProvider.ps1. Vous devez utiliser votre compte de service avec des droits d’administrateur local et être propriétaire de l’abonnement. Le script de mise à jour est inclus avec le téléchargement du fournisseur de ressources.

Le processus de mise à jour est similaire au processus utilisé pour déployer le fournisseur de ressources. Le script de mise à jour utilise les mêmes arguments que le script DeployMySqlProvider.ps1. Vous devrez fournir les informations de certificat.

Processus du script de mise à jour

Le script UpdateMySQLProvider.ps1 crée une machine virtuelle avec la dernière image du système d’exploitation, déploie le dernier code de fournisseur de ressources et migre les paramètres de l’ancien fournisseur de ressources vers le nouveau.

Remarque

Nous vous conseillons de télécharger l’image de Microsoft AzureStack Add-on RP Windows Server 1.2009.0 à partir de la Gestion de la Place de marché. Si vous devez installer une mise à jour, vous pouvez placer un seul package MSU dans le chemin de dépendance local. Le script échoue s’il existe plusieurs fichiers MSU à cet emplacement.

Une fois que le script UpdateMySQLProvider.ps1 a créé une machine virtuelle, il migre les paramètres suivants depuis la machine virtuelle de l’ancien fournisseur de ressources :

  • les informations de base de données
  • les informations sur le serveur d’hébergement
  • l’enregistrement DNS requis

Important

Nous vous recommandons fortement d’utiliser Clear-AzureRmContext -Scope CurrentUser et Clear-AzureRmContext -Scope Process pour effacer le cache avant d’exécuter le script de déploiement ou de mise à jour.

Paramètres du script de mise à jour

Spécifiez les paramètres suivants à partir de la ligne de commande quand vous exécutez le script PowerShell UpdateMySQLProvider.ps1. Si vous ne le faites pas, ou si la validation d’un paramètre échoue, vous êtes invité à fournir les paramètres requis.

Nom du paramètre Description Commentaire ou valeur par défaut
CloudAdminCredential Informations d’identification de l’administrateur du cloud, nécessaires pour accéder au point de terminaison privilégié. Obligatoire
AzCredential Informations d'identification du compte administrateur de service Azure Stack Hub. Utilisez les mêmes informations d'identification que celles utilisées pour le déploiement d'Azure Stack Hub. Le script échoue si le compte que vous utilisez avec AzCredential nécessite l’authentification multifacteur (MFA). Obligatoire
VMLocalCredential Informations d’identification du compte d’administrateur local de la machine virtuelle du fournisseur de ressources MySQL. Obligatoire
PrivilegedEndpoint Adresse IP ou nom DNS du point de terminaison privilégié. Obligatoire
AzureEnvironment Environnement Azure du compte administrateur de service utilisé pour déployer Azure Stack Hub. Obligatoire uniquement pour les déploiements Microsoft Entra. Les noms d’environnement pris en charge sont AzureCloud, AzureUSGovernment ou, si vous utilisez un Microsoft Entra ID Chine, AzureChinaCloud. AzureCloud
DependencyFilesLocalPath Votre fichier de certificat .pfx doit également être placé dans ce répertoire. Facultatif (obligatoire pour les nœuds multiples)
DefaultSSLCertificatePassword Mot de passe pour le certificat .pfx. Obligatoire
MaxRetryCount Nombre de fois où vous souhaitez réessayer chaque opération en cas d’échec. 2
RetryDuration Délai d’attente entre les tentatives, en secondes. 120
Désinstaller Supprimez le fournisseur de ressources et toutes les ressources associées (voir les remarques ci-dessous). Non
DebugMode Empêche le nettoyage automatique en cas d’échec. Non
AcceptLicense Ignore l’invite à accepter la licence GPL. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

Exemple de script de mise à jour

Si vous mettez à jour le fournisseur de ressources MySQL vers la version 1.1.33.0 ou une version antérieure, vous devez installer des versions spécifiques des modules Azure Stack Hub et AzureRm.Bootstrapper dans PowerShell.

Si vous mettez à jour le fournisseur de ressources MySQL vers la version 1.1.47.0 ou ultérieure, vous pouvez ignorer cette étape. Le script de déploiement télécharge et installe automatiquement les modules PowerShell nécessaires sous C:\Program Files\SqlMySqlPsh.

Remarque

Si le dossier C:\Program Files\SqlMySqlPsh existe déjà avec le module PowerShell téléchargé, il est recommandé de nettoyer ce dossier avant d’exécuter le script de mise à jour. Cela permet de s’assurer que la version appropriée du module PowerShell est téléchargée et utilisée.

# Run the following scripts when updating to version 1.1.33.0 only.
# Install the AzureRM.Bootstrapper module, set the profile and install the AzureStack module.
# Note that this might not be the most currently available version of Azure Stack Hub PowerShell.
Install-Module -Name AzureRm.BootStrapper -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

Remarque

Dans un scénario déconnecté, vous devez télécharger les modules PowerShell requis et inscrire manuellement le référentiel en tant que condition préalable. Pour plus d’informations, voir Déployer un fournisseur de ressources MySQL

Voici un exemple d’utilisation du script UpdateMySQLProvider.ps1 que vous pouvez exécuter à partir d’une console PowerShell avec privilèges élevés. Veillez à changer les informations des variables et les mots de passe selon vos besoins :

# Use the NetBIOS name for the Azure Stack Hub domain. On the Azure Stack Hub SDK, the default is AzureStack but could have been changed at install time.
$domain = "AzureStack" 

# For integrated systems, use the IP address of one of the ERCS VMs.
$privilegedEndpoint = "AzS-ERCS01" 

# Provide the Azure environment used for deploying Azure Stack Hub. Required only for Azure AD deployments. Supported environment names are AzureCloud, AzureUSGovernment, or AzureChinaCloud. 
$AzureEnvironment = "<EnvironmentName>"

# Point to the directory where the resource provider installation files were extracted. 
$tempDir = 'C:\TEMP\MYSQLRP' 

# The service admin account (can be Azure Active Directory or Active Directory Federation Services).
$serviceAdmin = "admin@mydomain.onmicrosoft.com" 
$AdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$AdminCreds = New-Object System.Management.Automation.PSCredential ($serviceAdmin, $AdminPass) 
 
# Set credentials for the new resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("mysqlrpadmin", $vmLocalAdminPass) 
 
# And the cloudadmin credential required for privileged endpoint access.
$CloudAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 
$CloudAdminCreds = New-Object System.Management.Automation.PSCredential ("$domain\cloudadmin", $CloudAdminPass) 

# Change the following as appropriate.
$PfxPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force 

# For version 1.1.47.0 or later, the PowerShell modules used by the RP deployment are placed in C:\Program Files\SqlMySqlPsh
# The deployment script adds this path to the system $env:PSModulePath to ensure correct modules are used.
$rpModulePath = Join-Path -Path $env:ProgramFiles -ChildPath 'SqlMySqlPsh'
$env:PSModulePath = $env:PSModulePath + ";" + $rpModulePath 

# Change directory to the folder where you extracted the installation files.
# Then adjust the endpoints.
.$tempDir\UpdateMySQLProvider.ps1 -AzCredential $AdminCreds -VMLocalCredential $vmLocalAdminCreds -CloudAdminCredential $cloudAdminCreds -PrivilegedEndpoint $privilegedEndpoint -AzureEnvironment $AzureEnvironment -DefaultSSLCertificatePassword $PfxPass -DependencyFilesLocalPath $tempDir\cert -AcceptLicense

Une fois l’exécution du script de mise à jour du fournisseur de ressources terminée, fermez la session PowerShell active.

Étapes suivantes

Tenir à jour le fournisseur de ressources MySQL