Azure Stack Hub에 MySQL 리소스 공급자 배포
중요
Azure Stack Hub 빌드 2108부터 SQL 및 MySQL 리소스 공급자는 액세스 권한이 부여된 구독에 제공됩니다. 이 기능 사용을 시작하거나 이전 버전에서 업그레이드해야 하는 경우 지원 사례를 열고 지원 엔지니어가 배포 또는 업그레이드 프로세스를 안내합니다.
MySQL 서버 리소스 공급자를 사용하여 MySQL 데이터베이스를 Azure Stack Hub 서비스로 노출합니다.
MySQL 리소스 공급자는 Windows Server 2016 Server Core 가상 머신에서 서비스로 실행됩니다.
MySQL 리소스 공급자는 특수 추가 기능 RP Windows Server에서 서비스로 실행됩니다.
중요
리소스 공급자만 SQL 또는 MySQL을 호스트하는 서버에 항목을 만들어야 합니다. 리소스 공급자가 만들지 않은 호스트 서버에서 만든 항목은 지원되지 않으며 상태가 일치하지 않을 수 있습니다.
사전 요구 사항
리소스 공급자를 이미 설치한 경우 다음 필수 구성 요소를 완료했을 가능성이 높으며 이 섹션을 건너뛸 수 있습니다. 그렇지 않으면 계속하기 전에 다음 단계를 완료합니다.
Azure Stack Hub instance 등록하지 않은 경우 Azure에 등록합니다. 이 단계는 Azure에서 마켓플레이스에 연결하고 항목을 다운로드할 때 필요합니다.
Azure Stack Hub 관리자 포털의 Marketplace 관리 기능에 익숙하지 않은 경우 Azure에서 마켓플레이스 항목 다운로드를 검토하고 Azure Stack Hub에 게시합니다. 이 문서에서는 Azure에서 Azure Stack Hub 마켓플레이스로 항목을 다운로드하는 프로세스를 안내합니다. 연결된 시나리오와 연결이 끊긴 시나리오를 모두 다룹니다. Azure Stack Hub instance 연결이 끊어지거나 부분적으로 연결된 경우 설치를 준비하기 위해 완료해야 할 추가 필수 구성 요소가 있습니다.
Microsoft Entra 홈 디렉터리를 업데이트합니다. 빌드 1910부터 홈 디렉터리 테넌트에서 새 애플리케이션을 등록해야 합니다. 이 앱을 사용하면 Azure Stack Hub가 Microsoft Entra 테넌트에서 최신 리소스 공급자(예: Event Hubs 등)를 성공적으로 만들고 등록할 수 있습니다. 이는 빌드 1910 이상으로 업그레이드한 후 수행해야 하는 일회성 작업입니다. 이 단계가 완료되지 않으면 마켓플레이스 리소스 공급자 설치가 실패합니다.
- Azure Stack Hub instance 1910 이상으로 업데이트한 후 Azure Stack Hub Tools 리포지토리를 복제/다운로드하기 위한 지침을 따릅니다.
- 그런 다음 업데이트 또는 새 리소스 공급자를 설치한 후 Azure Stack Hub Microsoft Entra 홈 디렉터리를 업데이트하는 지침을 따릅니다.
MySQL 서버 리소스 공급자 필수 구성 요소
액세스할 수 있는 컴퓨터와 계정이 필요합니다.
- Azure Stack Hub 관리자 포털.
- 권한 있는 엔드포인트(MySQL 서버 리소스 공급자 V1을 배포하거나 MySQL 서버 리소스 공급자 V1에서 MySQL 서버 리소스 공급자 V2로 업그레이드하는 경우에만 필요).
- Azure Resource Manager 관리 엔드포인트,
https://adminmanagement.region.<fqdn>
여기서<fqdn>
는 정규화된 도메인 이름입니다. - Azure Stack Hub를 배포하여 id 공급자로 Microsoft Entra ID 사용하는 경우 인터넷
아래 버전 매핑 테이블에 따라 지원되는 MySQL 리소스 공급자 이진 버전을 다운로드합니다. V2 MySQL 리소스 공급자의 경우 Marketplace 항목을 Azure Stack Hub에 다운로드합니다.
지원되는 Azure Stack Hub 버전 MySQL RP 버전 RP 서비스가 실행 중인 Windows Server 2206, 2301, 2306, 2311 MySQL RP 버전 2.0.13.x Microsoft AzureStack 추가 기능 RP Windows Server 1.2009.0 2108, 2206 MySQL RP 버전 2.0.6.x Microsoft AzureStack 추가 기능 RP Windows Server 1.2009.0 필요한 Windows Server VM이 Azure Stack Hub Marketplace에 다운로드되었는지 확인합니다. 필요한 경우 위의 버전 매핑 테이블에 따라 이미지를 수동으로 다운로드합니다.
데이터 센터 통합 필수 구성 요소가 충족되는지 확인:R
필수 조건 참조 조건부 DNS 전달이 올바르게 설정되었습니다. Azure Stack Hub 데이터 센터 통합 - DNS 리소스 공급자에 대한 인바운드 포트가 열려 있습니다. Azure Stack Hub 데이터 센터 통합 - 엔드포인트 게시 PKI 인증서 주체 및 SAN이 올바르게 설정됩니다. Azure Stack Hub 배포 필수 PKI 필수 구성 요소Azure Stack Hub 배포 PaaS 인증서 필수 구성 요소 인증서를 준비합니다. (통합 시스템 설치에만 해당).
- Azure Stack Hub 배포 PKI 요구 사항의 선택적 PaaS 인증서 섹션에 설명된 SQL PaaS PKI 인증서를 제공해야 합니다. SAN(주체 대체 이름)은 CN=*.dbadapter 명명 패턴을 따라야 합니다.<지역.><암호가 보호된 fqdn>.
- MySQL 서버 리소스 공급자 V1을 배포할 때 DependencyFilesLocalPath 매개 변수로 지정된 위치에 .pfx 파일을 배치합니다. ASDK 시스템에 대한 인증서를 제공하지 마세요.
- MySQL Server 리소스 공급자 V2를 배포할 때 다음 설치 단계에 대한 인증서를 준비합니다.
연결이 끊긴 시나리오
연결이 끊긴 시나리오에서 MySQL 서버 리소스 공급자 V2를 배포 하는 경우 Azure Stack Hub에 마켓플레이스 항목 다운로드 지침에 따라 MySQL 서버 리소스 공급자 항목 및 추가 기능 RP Windows Server 항목을 Azure Stack Hub 환경에 다운로드합니다.
연결이 끊긴 시나리오에서 MySQL 서버 리소스 공급자 V1을 배포하는 경우 다음 단계를 완료하여 필요한 PowerShell 모듈을 다운로드하고 리포지토리를 수동으로 등록합니다.
인터넷에 연결된 컴퓨터에 로그인하고 다음 스크립트를 사용하여 PowerShell 모듈을 다운로드합니다.
Import-Module -Name PowerShellGet -ErrorAction Stop Import-Module -Name PackageManagement -ErrorAction Stop # path to save the packages, c:\temp\azs1.6.0 as an example here $Path = "c:\temp\azs1.6.0"
배포하는 리소스 공급자의 버전에 따라 스크립트 중 하나를 실행합니다.
# for resource provider version >= 1.1.93.0 Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.5.0 Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.8.2
# for resource provider version <= 1.1.47.0 Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureRM -Path $Path -Force -RequiredVersion 2.3.0 Save-Package -ProviderName NuGet -Source https://www.powershellgallery.com/api/v2 -Name AzureStack -Path $Path -Force -RequiredVersion 1.6.0
그런 다음 다운로드한 패키지를 USB 디바이스에 복사합니다.
연결이 끊긴 워크스테이션에 로그인하고 USB 디바이스의 패키지를 워크스테이션의 위치로 복사합니다.
이 위치를 로컬 리포지토리로 등록합니다.
# requires -Version 5 # requires -RunAsAdministrator # requires -Module PowerShellGet # requires -Module PackageManagement $SourceLocation = "C:\temp\azs1.6.0" $RepoName = "azs1.6.0" Register-PSRepository -Name $RepoName -SourceLocation $SourceLocation -InstallationPolicy Trusted New-Item -Path $env:ProgramFiles -name "SqlMySqlPsh" -ItemType "Directory"
MySQL 리소스 공급자 V2 배포
V1 버전에서 업그레이드하는 경우 MySQL 서버 리소스 공급자 업데이트 문서를 참조하세요.
설치 시작
아직 로그인하지 않은 경우 Azure Stack Hub 관리자 포털에 로그인하고 왼쪽에서 Marketplace 관리를 선택한 다음 리소스 공급자를 선택합니다.
MySQL 리소스 공급자 및 기타 필수 소프트웨어가 다운로드되면 Marketplace Management는 "설치되지 않음" 상태 있는 "MySQL 서버 리소스 공급자" 패키지를 표시합니다. "다운로드됨" 상태로 표시되는 다른 패키지가 있을 수 있습니다.
설치할 행을 선택합니다. MySQL 서버 리소스 공급자 설치 패키지 페이지에는 위쪽에 파란색 배너가 표시됩니다. 배너를 선택하여 설치를 시작합니다.
필수 구성 요소 설치
그러면 설치 페이지로 이동합니다. 필수 구성 요소 설치를 선택하여 설치 프로세스를 시작합니다.
필수 구성 요소가 설치될 때까지 기다립니다. 다음 단계로 진행하기 전에 필수 구성 요소 설치 옆에 녹색 확인 표시가 표시되어야 합니다.
비밀 준비
아래는 2입니다. 비밀 준비 단계를 선택하고 인증서 추가를 선택하면 인증서 추가 패널이 나타납니다.
인증서 추가에서 찾아보기 단추를 선택합니다(인증서 파일 이름 필드 바로 오른쪽에 있음). 필수 구성 요소를 완료할 때 구매한 .pfx 인증서 파일을 선택합니다.
제공한 암호를 입력하여 SQL Server 리소스 공급자 SSL 인증서에 대한 보안 문자열을 만듭니다. 그런 다음, 추가를 선택합니다.
리소스 공급자 구성 및 설치
인증서 설치가 성공하면 다음 단계를 진행하기 전에 비밀 준비 옆에 녹색 확인 표시가 표시됩니다. 이제 3 리소스 공급자 설치 옆에 있는 구성 + 설치 단추를 선택합니다.
다음으로 MySQL 커넥터용 Azure Stack Hub Blob URI를 제공해야 합니다.
여기에서 MySQL 커넥터의 GPL 라이선스를 검토하고 버전 8.0.21을 로컬 폴더에 다운로드합니다.
기본 운영자 구독을 사용하여 스토리지 계정을 Create 액세스 수준 "Blob" 또는 "Container"를 사용하여 컨테이너를 만듭니다.
로컬 폴더에서 새로 만든 스토리지 컨테이너로 mysql-connector-net-8.0.21.msi 파일을 업로드합니다.
중요
MySQL 커넥터 버전이 8.0.21인지 확인합니다.
Blob URI를 복사합니다.
MySQL RP 구성 페이지로 돌아가기. Blob URI(예: https://< storageAccountName.blob)>를 붙여넣습니다.<지역.><텍스트 상자에 대한 FQDN>/<containerName>/mysql-connector-net-8.0.21.msi)을 클릭하고 확인을 클릭합니다.
다음으로 MySQL 리소스 공급자가 설치 중임을 나타내는 다음 페이지가 표시됩니다.
설치 완료 알림이 표시될 때까지 기다립니다. 이 프로세스는 일반적으로 Azure Stack Hub 유형에 따라 1시간 이상이 걸립니다.
Marketplace 관리, 리소스 공급자 페이지로 돌아가서 MySQL 서버 리소스 공급자 설치가 성공했는지 확인합니다. MySQL 서버 리소스 공급자의 상태 "Installed"가 표시되어야 합니다.
SQL 리소스 공급자 V1 배포
모든 필수 구성 요소를 완료한 후 자체 추출기를 실행하여 다운로드한 설치 패키지를 임시 디렉터리로 추출합니다. Azure Stack Hub Azure Resource Manager 관리자 엔드포인트와 권한 있는 엔드포인트 모두에 액세스할 수 있는 컴퓨터에서DeployMySqlProvider.ps1스크립트를 실행하여 MySQL 리소스 공급자를 배포합니다. DeployMySqlProvider.ps1 스크립트는 Azure Stack Hub 버전에 대해 다운로드한 MySQL 리소스 공급자 설치 파일의 일부로 추출됩니다.
중요
리소스 공급자를 배포하기 전에 릴리스 정보를 검토하여 새 기능, 수정 사항 및 배포에 영향을 줄 수 있는 알려진 문제에 대해 알아봅니다.
MySQL 리소스 공급자를 배포하려면 새 관리자 권한 PowerShell 창(PowerShell ISE 아님)을 열고 MySQL 리소스 공급자 이진 파일을 추출한 디렉터리로 변경합니다.
중요
배포 또는 업데이트 스크립트를 실행하기 전에 Clear-AzureRmContext -Scope CurrentUser 및 Clear-AzureRmContext -Scope Process 를 사용하여 캐시를 지우는 것이 좋습니다.
참고
연결이 끊긴 환경에서 MySQL 서버 리소스 공급자 V1을 배포하는 경우 mysql-connector-net-6.10.5.msi 파일을 로컬 경로에 복사합니다. DependencyFilesLocalPath 매개 변수를 사용하여 경로 이름을 제공합니다.
다음 작업을 완료하는 DeployMySqlProvider.ps1 스크립트를 실행합니다.
- 인증서 및 기타 아티팩트 를 Azure Stack Hub의 스토리지 계정에 업로드합니다.
- 갤러리를 사용하여 MySQL 데이터베이스를 배포할 수 있도록 갤러리 패키지를 게시합니다.
- 호스팅 서버를 배포하기 위한 갤러리 패키지를 게시합니다.
- 다운로드한 Windows Server 2016 핵심 이미지 또는 Microsoft AzureStack 추가 기능 RP Windows Server 이미지를 사용하여 VM을 배포한 다음 MySQL 리소스 공급자를 설치합니다.
- 리소스 공급자 VM에 매핑되는 로컬 DNS 레코드를 등록합니다.
- 운영자 계정에 대한 로컬 Azure Resource Manager 리소스 공급자를 등록합니다.
참고
MySQL 리소스 공급자 배포가 시작되면 system.local.mysqladapter 리소스 그룹이 만들어집니다. 이 리소스 그룹에 필요한 배포를 완료하는 데 최대 75분이 걸릴 수 있습니다. system.local.mysqladapter 리소스 그룹에 다른 리소스를 배치해서는 안 됩니다.
DeployMySqlProvider.ps1 매개 변수
명령줄에서 이러한 매개 변수를 지정할 수 있습니다. 그렇지 않거나 매개 변수 유효성 검사가 실패하는 경우 필요한 매개 변수를 제공하라는 메시지가 표시됩니다.
매개 변수 이름 | Description | 주석 또는 기본값 |
---|---|---|
CloudAdminCredential | 권한 있는 엔드포인트에 액세스하는 데 필요한 클라우드 관리자 자격 증명입니다. | 필수 |
AzCredential | Azure Stack Hub 서비스 관리자 계정에 대한 자격 증명입니다. Azure Stack Hub를 배포하는 데 사용한 것과 동일한 자격 증명을 사용합니다. AzCredential에서 사용하는 계정에 MFA(다단계 인증)가 필요한 경우 스크립트가 실패합니다. | 필수 |
VMLocalCredential | MySQL 리소스 공급자 VM의 로컬 관리자 계정에 대한 자격 증명입니다. | 필수 |
PrivilegedEndpoint | 권한 있는 엔드포인트의 IP 주소 또는 DNS 이름입니다. | 필수 |
AzureEnvironment | Azure Stack Hub 배포에 사용되는 서비스 관리자 계정의 Azure 환경입니다. Microsoft Entra 배포에만 필요합니다. 지원되는 환경 이름은 AzureCloud, AzureUSGovernment 또는 중국 Microsoft Entra ID 사용하는 경우 AzureChinaCloud입니다. | AzureCloud |
DependencyFilesLocalPath | 통합 시스템의 경우에만 인증서 .pfx 파일을 이 디렉터리에 배치해야 합니다. 연결이 끊긴 환경의 경우 이 디렉터리에mysql-connector-net-6.10.5.msi다운로드합니다. 필요에 따라 여기에서 하나의 Windows 업데이트 MSU 패키지를 복사할 수 있습니다. | 선택 사항(통합 시스템 또는 연결이 끊긴 환경에 필수) |
DefaultSSLCertificatePassword | .pfx 인증서의 암호입니다. | 필수 |
MaxRetryCount | 오류가 발생한 경우 각 작업을 다시 시도하려는 횟수입니다. | 2 |
RetryDuration | 다시 시도 사이의 시간 제한 간격(초)입니다. | 120 |
제거 | 리소스 공급자와 관련된 모든 리소스를 제거합니다(다음 참고 사항 참조). | No |
DebugMode | 실패 시 자동 정리를 방지합니다. | No |
AcceptLicense | GPL 라이선스를 수락하라는 프롬프트를 건너뜁니다. https://www.gnu.org/licenses/old-licenses/gpl-2.0.html |
사용자 지정 스크립트를 사용하여 MySQL 리소스 공급자 배포
MySQL 리소스 공급자 버전 1.1.33.0 또는 이전 버전을 배포하는 경우 PowerShell에 특정 버전의 AzureRm.BootStrapper 및 Azure Stack Hub 모듈을 설치해야 합니다.
MySQL 리소스 공급자 버전 1.1.47.0 이상을 배포하는 경우 배포 스크립트는 C:\Program Files\SqlMySqlPsh 경로에 필요한 PowerShell 모듈을 자동으로 다운로드하여 설치합니다.
# 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
참고
연결이 끊긴 시나리오에서는 필요한 PowerShell 모듈을 다운로드하고 리포지토리를 필수 구성 요소로 수동으로 등록해야 합니다.
리소스 공급자를 배포할 때 수동 구성을 제거하려면 다음 스크립트를 사용자 지정할 수 있습니다. Azure Stack Hub 배포에 필요한 대로 기본 계정 정보 및 암호를 변경합니다.
# 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 the credentials for the new resource provider VM local admin account
$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 to the directory folder where you extracted the installation files. Don't provide a certificate on ASDK!
. $tempDir\DeployMySQLProvider.ps1 `
-AzCredential $AdminCreds `
-VMLocalCredential $vmLocalAdminCreds `
-CloudAdminCredential $cloudAdminCreds `
-PrivilegedEndpoint $privilegedEndpoint `
-AzureEnvironment $AzureEnvironment `
-DefaultSSLCertificatePassword $PfxPass `
-DependencyFilesLocalPath $tempDir\cert `
-AcceptLicense
리소스 공급자 설치 스크립트가 완료되면 브라우저를 새로 고쳐 최신 업데이트를 확인하고 현재 PowerShell 세션을 닫습니다.
Azure Stack Hub 포털을 사용하여 V1 배포 확인
- 관리자 포털에 서비스 관리자로 로그인합니다.
- 리소스 그룹을 선택합니다.
- 시스템을 선택합니다.<location.mysqladapter> 리소스 그룹입니다.
- 리소스 그룹 개요에 대한 요약 페이지에는 실패한 배포가 없어야 합니다.
- 마지막으로 관리자 포털에서 가상 머신 을 선택하여 MySQL 리소스 공급자 VM이 성공적으로 만들어지고 실행 중인지 확인합니다.
Microsoft Entra ID 대한 중요한 구성
Azure Stack Hub가 Microsoft Entra ID ID 공급자로 사용하는 경우 MySQL Server 리소스 공급자를 설치한 VM에 아웃바운드 인터넷 연결이 있는지 확인합니다.
MySQL Server 리소스 공급자를 설치한 VM의 IP(예: 방화벽 허용 목록에 IP 추가)를 가져와야 하는 경우 지원 사례를 열고 지원 엔지니어가 MySQL 서버 리소스 공급자 구독을 일시적으로 표시하도록 해야 합니다. 그런 다음 구독에서 VM을 찾고 해당 IP를 가져올 수 있습니다.