Underhållsåtgärder för MySQL-resursprovider i Azure Stack Hub

Viktigt

Från och med Azure Stack Hub build 2108 erbjuds SQL- och MySQL-resursprovidrar till prenumerationer som har beviljats åtkomst. Om du vill börja använda den här funktionen eller om du behöver uppgradera från en tidigare version öppnar du ett supportärende och våra supporttekniker vägleder dig genom distributions- eller uppgraderingsprocessen.

MySQL-resursprovidern körs på en låst virtuell dator (VM). För att aktivera underhållsåtgärder måste du uppdatera den virtuella datorns säkerhet. Om du vill göra detta med principen om minsta behörighet (POLP) kan du använda JEA-slutpunkten (PowerShell Just Enough Administration) DBAdapterMaintenance. Installationspaketet för resursprovidern innehåller ett skript för den här åtgärden.

Korrigering och uppdatering

MySQL-resursprovidern betjänas inte som en del av Azure Stack Hub eftersom det är en tilläggskomponent. Microsoft tillhandahåller uppdateringar av MySQL-resursprovidern efter behov.

För MySQL RP V1 tillhandahålls ett skript för att tillämpa uppdateringen när en uppdaterad MySQL Server-resursprovider släpps. Det här skriptet skapar en ny virtuell resursproviderdator som migrerar tillståndet för den gamla virtuella providerdatorn till den nya virtuella datorn.

För MySQL RP V2 uppdateras resursprovidrar med samma uppdateringsfunktion som används för att tillämpa Azure Stack Hub-uppdateringar.

Mer information finns i Uppdatera MySQL-resursprovidern.

Uppdatera den virtuella providerdatorn

MySQL RP V1 körs på en virtuell användardator . Du måste tillämpa nödvändiga korrigeringar och uppdateringar när de släpps. Du kan installera ett Windows Update-paket under installationen av eller uppdateringen av resursprovidern.

MySQL RP V2 körs på en hanterad Windows Server som är dold. Du behöver inte korrigera eller uppdatera den virtuella resursproviderns virtuella dator. Den uppdateras automatiskt när du uppdaterar RP:en.

Uppdatera definitionerna för den virtuella datorn Windows Defender

De här anvisningarna gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.

Följ dessa steg för att uppdatera Defender-definitionerna:

  1. Ladda ned uppdateringen av Windows Defender definitioner från Windows Defender Definition.

    På definitionssidan rullar du ned till "Ladda ned och installera definitionerna manuellt". Ladda ned 64-bitarsfilen "Windows Defender Antivirus for Windows 10 and Windows 8.1".

    Du kan också använda den här direktlänken för att ladda ned/köra fpam-fe.exe-filen.

  2. Öppna en PowerShell-session till underhållsslutpunkten för den virtuella datorns underhållsslutpunkt för MySQL-resursprovidern.

  3. Kopiera definitionsuppdateringsfilen till den virtuella resursproviderns virtuella dator med hjälp av underhållsslutpunktssessionen.

  4. Kör kommandot Update-DBAdapterWindowsDefenderDefinitions i PowerShell-underhållssessionen .

  5. När du har installerat definitionerna rekommenderar vi att du tar bort definitionsuppdateringsfilen med kommandot Remove-ItemOnUserDrive ).

PowerShell-skriptexempel för uppdatering av definitioner.

Du kan redigera och köra följande skript för att uppdatera Defender-definitionerna. Ersätt värden i skriptet med värden från din miljö.

# 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

Konfigurera Azure Diagnostics-tillägget för MySQL-resursprovidern

De här anvisningarna gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.

Azure Diagnostics-tillägget installeras som standard på den virtuella datorn för MySQL-resursproviderns nätverkskort. Följande steg visar hur du anpassar tillägget för att samla in driftshändelseloggarna för MySQL-resursprovidern och IIS-loggar för felsöknings- och granskningsändamål.

  1. Logga in på Azure Stack Hubs administratörsportal.

  2. Välj Virtuella datorer i fönstret till vänster, sök efter den virtuella datorn MySQL-resursproviderns nätverkskort och välj den virtuella datorn.

  3. I diagnostikinställningarna för den virtuella datorn går du till fliken Loggar och väljer Anpassad för att anpassa händelseloggar som samlas in.

    Gå till diagnostikinställningar

  4. Lägg till Microsoft-AzureStack-DatabaseAdapter/Operational!* för att samla in händelseloggar för MySQL-resursprovidern.

    Lägga till händelseloggar

  5. Om du vill aktivera insamling av IIS-loggar kontrollerar du IIS-loggar och misslyckade begärandeloggar.

    Lägga till IIS-loggar

  6. Välj slutligen Spara för att spara alla diagnostikinställningar.

När händelseloggarna och IIS-loggsamlingen har konfigurerats för MySQL-resursprovidern finns loggarna i ett systemlagringskonto med namnet mysqladapterdiagaccount.

Mer information om tillägget Azure Diagnostics finns i Vad är Azure Diagnostics tillägget.

Rotering av hemligheter

De här anvisningarna gäller endast för Azure Stack Hub Integrated Systems.

När du använder SQL- och MySQL-resursprovidrar med Azure Stack Hub-integrerade system ansvarar Azure Stack Hub-operatören för att rotera följande infrastrukturhemligheter för resursprovidern för att säkerställa att de inte upphör att gälla:

  • Externt SSL-certifikat som tillhandahålls under distributionen.
  • Lösenordet för det lokala administratörskontot för den virtuella resursprovidern som angavs under distributionen.
  • Lösenord för diagnostikanvändare för resursprovider (dbadapterdiag).
  • (version >= 1.1.47.0) Key Vault certifikat som genererades under distributionen.

PowerShell-exempel för att rotera hemligheter

Ändra alla hemligheter på samma gång:

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

Ändra lösenordet för diagnostikanvändare:

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

Ändra lösenordet för det lokala administratörskontot för den virtuella datorn:

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

Rotera SSL-certifikatet

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

Rotera Key Vault-certifikatet

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

SecretRotationMySQLProvider.ps1 parametrar

Parameter Beskrivning Kommentar
AzureEnvironment Azure-miljön för tjänstadministratörskontot som används för att distribuera Azure Stack Hub. Krävs endast för Microsoft Entra distributioner. Miljönamn som stöds är AzureCloud, AzureUSGovernment eller om du använder ett China Microsoft Entra-ID, AzureChinaCloud. Valfritt
AzCredential Autentiseringsuppgifter för tjänstadministratörskonto i Azure Stack Hub. Skriptet misslyckas om kontot som du använder med AzCredential kräver multifaktorautentisering (MFA). Obligatorisk
CloudAdminCredential Autentiseringsuppgifter för azure Stack Hub-molnadministratörsdomänkonto. Obligatorisk
PrivilegedEndpoint Privilegierad slutpunkt för åtkomst till Get-AzureStackStampInformation. Obligatorisk
DiagnosticsUserPassword Lösenord för diagnostikanvändarkonto. Valfritt
VMLocalCredential Det lokala administratörskontot på den virtuella datorn MySQLAdapter. Valfritt
DefaultSSLCertificatePassword Standardlösenord för SSL-certifikat (*.pfx). Valfritt
DependencyFilesLocalPath Lokal sökväg för beroendefiler. Valfritt
KeyVaultPfxPassword Lösenordet som används för att generera Key Vault certifikat för databaskort. Valfritt

De här anvisningarna gäller endast MySQL RP V2 som körs på Azure Stack Hub Integrated Systems.

Anteckning

Hemlig rotation för resursproviders för mervärde (RPs) stöds för närvarande endast via PowerShell.

Precis som Azure Stack Hub-infrastrukturen använder resursprovidrar för mervärde både interna och externa hemligheter. Som operatör ansvarar du för:

  • Tillhandahålla uppdaterade externa hemligheter, till exempel ett nytt TLS-certifikat som används för att skydda resursproviderns slutpunkter.

  • Hantera regelbundet rotering av resursproviderhemligheter.

När hemligheter snart upphör att gälla genereras följande aviseringar i administratörsportalen. Om du slutför roteringen av hemligheter kan du lösa dessa aviseringar:

  • Internt certifikat upphör snart att gälla

  • Externt certifikat upphör snart att gälla

Förutsättningar

Som förberedelse för rotationsprocessen:

  1. Om du inte redan har gjort det installerar du PowerShell Az-modulen för Azure Stack Hub innan du fortsätter. Version 2.0.2-förhandsversion eller senare krävs för azure Stack Hub-rotering av hemligheter. Mer information finns i Migrera från AzureRM till Azure PowerShell Az i Azure Stack Hub.

  2. Installera Azs.Deployment. Admin 1.0.0-moduler: PowerShell-galleriet | Azs.Deployment. Admin 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Om det externa certifikatet snart upphör att gälla läser du Certifikatkrav för Azure Stack Hub PKI (Public Key Infrastructure) för viktig nödvändig information innan du hämtar/förnyar ditt X509-certifikat, inklusive information om det nödvändiga PFX-formatet. Granska även kraven som anges i avsnittet Valfria PaaS-certifikat för din specifika värdetilläggsresursprovider.

Förbereda ett nytt TLS-certifikat för extern certifikatrotation

Anteckning

Om endast det interna certifikatet snart upphör att gälla kan du hoppa över det här avsnittet.

Skapa eller förnya sedan ditt TLS-certifikat för att skydda slutpunkterna för resursprovidern value-add:

  1. Slutför stegen i Generera certifikatsigneringsbegäranden (CSR) för certifikatförnyelse för resursprovidern. Här använder du verktyget Azure Stack Hub Readiness Checker för att skapa CSR. Se till att köra rätt cmdlet för resursprovidern i steget "Generera certifikatbegäranden för andra Azure Stack Hub-tjänster". Används till exempel New-AzsDbAdapterCertificateSigningRequest för SQL- och MySQL RPs. När du är klar skickar du den genererade . REQ-fil till certifikatutfärdare (CA) för det nya certifikatet.

  2. När du har fått certifikatfilen från certifikatutfärdare slutför du stegen i Förbereda certifikat för distribution eller rotation. Du använder verktyget Beredskapskontroll igen för att bearbeta filen som returneras från certifikatfärdaren.

  3. Slutför slutligen stegen i Verifiera Azure Stack Hub PKI-certifikat. Du använder verktyget Beredskapskontroll en gång till för att utföra valideringstester på det nya certifikatet.

Rotera det interna certifikatet

Öppna en upphöjd PowerShell-konsol och utför följande steg för att rotera resursproviderns externa hemligheter:

  1. Logga in i Azure Stack Hub-miljön med dina autentiseringsuppgifter för operatören. Se Ansluta till Azure Stack Hub med PowerShell för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.

  2. Fastställa resursproviderns produkt-ID. Kör cmdleten Get-AzsProductDeployment för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade "value" samlingen innehåller ett -element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:

    • "name" – innehåller resursproviderns produkt-ID i det andra segmentet av värdet.

    Till exempel kan MySQL RP-distributionen ha produkt-ID "microsoft.mysqlrp":t .

  3. Kör cmdleten Invoke-AzsProductRotateSecretsAction för att rotera det interna certifikatet:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Rotera det externa certifikatet

Du måste först anteckna värdena för följande parametrar.

Platshållare Description Exempelvärde
<product-id> Produkt-ID för den senaste distributionen av resursprovidern. microsoft.mysqlrp
<installed-version> Versionen av den senaste distributionen av resursprovidern. 2.0.0.2
<package-id> Paket-ID:t skapas genom att produkt-ID:t och den installerade versionen sammanfogas. microsoft.mysqlrp.2.0.0.2
<cert-secret-name> Namnet under vilket certifikathemligheten lagras. SSLCert
<cert-pfx-file-path> Sökvägen till PFX-certifikatfilen. C:\dir\dbadapter-cert-file.pfx
<pfx-password> Lösenordet som tilldelats certifikatet . PFX-fil. strong@CertSecret6

Öppna en upphöjd PowerShell-konsol och utför följande steg:

  1. Logga in i Azure Stack Hub-miljön med dina autentiseringsuppgifter för operatören. Se Ansluta till Azure Stack Hub med PowerShell för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.

  2. Hämta parametervärdet product-id. Kör cmdleten Get-AzsProductDeployment för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade "value" samlingen innehåller ett -element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:

    • "name" – innehåller resursproviderns produkt-ID i det andra segmentet av värdet.
    • "properties"."deployment"."version" – innehåller det för tillfället distribuerade versionsnumret.

    Till exempel kan MySQL RP-distributionen ha produkt-ID "microsoft.mysqlrp":t och versionen "2.0.0.2".

  3. Skapa resursproviderns paket-ID genom att sammanfoga resursproviderns produkt-ID och version. Om du till exempel använder värdena som härleddes i föregående steg är microsoft.mysqlrp.2.0.0.2SQL RP-paket-ID:t .

  4. Använd paket-ID:t som härleddes i föregående steg och kör Get-AzsProductSecret -PackageId för att hämta listan över hemliga typer som används av resursprovidern. Leta reda på elementet som innehåller värdet "Certificate" för för "properties"."secretKind" egenskapen i den returnerade value samlingen. Det här elementet innehåller egenskaper för RP:s certifikathemlighet. Anteckna namnet som tilldelats den här certifikathemligheten, som identifieras av det sista segmentet i "name" egenskapen, precis ovanför "properties".

    Till exempel innehåller den hemlighetssamling som returneras för SQL RP en "Certificate" hemlighet med namnet SSLCert.

  5. Använd cmdleten Set-AzsProductSecret för att importera det nya certifikatet till Key Vault, som ska användas av rotationsprocessen. Ersätt platshållarvärdena för variabeln i enlighet med detta innan du kör skriptet.

    $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. Använd slutligen cmdleten Invoke-AzsProductRotateSecretsAction för att rotera hemligheterna:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Övervaka förloppet för hemlig rotation

Du kan övervaka förloppet för hemlig rotation i PowerShell-konsolen eller i administratörsportalen genom att välja resursprovidern i Marketplace-tjänsten:

Skärmbild av hemlig rotation som pågår.

Anteckning

Den hemliga rotationstiden kan kosta mer än 10 minuter. När det är klart ändras statusen för resursprovidern till "Installerad".

Samla in diagnostikloggar

Azure Stack Hub har flera sätt att samla in, spara och skicka diagnostikloggar till Microsoft Support. Från och med version 1.1.93 stöder MySQL-resursprovider standardsättet att samla in loggar från din Azure Stack Hub-miljö. Mer information finns i Insamling av diagnostikloggar.

Från och med version 1.1.93 stöder MySQL-resursprovider standardsättet att samla in loggar från din Azure Stack Hub-miljö. Om du använder en äldre version rekommenderar vi att du uppdaterar MySQL-resursprovidern till den senaste versionen.

Om du vill samla in loggar från den låsta virtuella datorn använder du JEA-slutpunkten (PowerShell Just Enough Administration) DBAdapterDiagnostics. Den här slutpunkten innehåller följande kommandon:

  • Get-AzsDBAdapterLog. Det här kommandot skapar ett zip-paket med resursproviderns diagnostikloggar och sparar filen på sessionens användarenhet. Du kan köra det här kommandot utan några parametrar och de senaste fyra timmarnas loggar samlas in.

  • Remove-AzsDBAdapterLog. Det här kommandot tar bort befintliga loggpaket på den virtuella resursproviderns virtuella dator.

Krav och processer för slutpunkter

När en resursprovider installeras eller uppdateras skapas användarkontot dbadapterdiag. Du använder det här kontot för att samla in diagnostikloggar.

Anteckning

Lösenordet för dbadapterdiag-kontot är samma som lösenordet som används för den lokala administratören på den virtuella dator som skapas under en providerdistribution eller -uppdatering.

Om du vill använda DBAdapterDiagnostics-kommandona skapar du en PowerShell-fjärrsession till den virtuella resursproviderns virtuella dator och kör kommandot Get-AzsDBAdapterLog .

Du anger tidsintervallet för logginsamling med hjälp av parametrarna FromDate och ToDate . Om du inte anger en eller båda parametrarna används följande standardvärden:

  • FromDate är fyra timmar före den aktuella tiden.
  • ToDate är den aktuella tiden.

PowerShell-skriptexempel för insamling av loggar:

Följande skript visar hur du samlar in diagnostikloggar från den virtuella resursproviderns virtuella dator.

# 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

Kända begränsningar för MySQL Server-resursprovider version 1

Begränsning:
När distributions-, uppgraderings- eller hemlighetsrotationsskriptet misslyckades kan vissa loggar inte samlas in av standardmekanismen för logginsamling.

Lösning:
Förutom att använda standardmekanismen för logginsamling går du till mappen Loggar i den extraherade mappen där skriptet finns för att hitta fler loggar.

Nästa steg

Lägga till MySQL Server-värdservrar