Azure Stack 허브에 SQL Server 리소스 공급자 배포Deploy the SQL Server resource provider on Azure Stack Hub

Azure Stack Hub SQL Server 리소스 공급자를 사용 하 여 SQL 데이터베이스를 Azure Stack 허브 서비스로 노출 합니다.Use the Azure Stack Hub SQL Server resource provider to expose SQL databases as an Azure Stack Hub service. SQL 리소스 공급자는 Windows Server 2016 Server Core 가상 컴퓨터 (어댑터 버전 <= 1.1.47.0>) 또는 특수 한 추가 기능 RP Windows Server (어댑터 버전 >= 1.1.93.0)에서 서비스로 실행 됩니다.The SQL resource provider runs as a service on a Windows Server 2016 Server Core virtual machine (for adapter version <= 1.1.47.0>) or a special Add-on RP Windows Server (for adapter version >= 1.1.93.0).

중요

리소스 공급자만 SQL 또는 MySQL을 호스트 하는 서버에 항목을 만들어야 합니다.Only the resource provider should create items on servers that host SQL or MySQL. 리소스 공급자에서 만들지 않은 호스트 서버에 만들어진 항목은 지원 되지 않으며 상태가 일치 하지 않을 수 있습니다.Items created on a host server that aren't created by the resource provider are unsupported, and may result in a mismatched state.

필수 구성 요소Prerequisites

Azure Stack 허브 SQL 리소스 공급자를 배포 하기 전에 준비 해야 하는 몇 가지 필수 구성 요소가 있습니다.There are several prerequisites that need to be in place before you can deploy the Azure Stack Hub SQL resource provider:

  • 다음에 액세스할 수 있는 컴퓨터와 계정이 필요 합니다.You'll need a computer and account that can access:

    • Azure Stack 허브 관리자 포털입니다.the Azure Stack Hub administrator portal.
    • 권한 있는 끝점입니다.the privileged endpoint.
    • Azure Resource Manager 관리자 끝점, https://management.region.<fqdn> 여기서 <fqdn> 은 정규화 된 도메인 이름입니다 (또는 https://management.local.azurestack.external asdk를 사용 하는 경우).the Azure Resource Manager admin endpoint, https://management.region.<fqdn>, where <fqdn> is your fully qualified domain name (or https://management.local.azurestack.external if using the ASDK)
    • Azure Stack 허브가 id 공급자로 Azure Active Directory (AD)를 사용 하도록 배포 된 경우 인터넷입니다.the Internet, if your Azure Stack Hub was deployed to use Azure Active Directory (AD) as your identity provider.
  • 아직 없는 경우 Azure에 Azure Stack 허브를 등록 하 여 Azure Marketplace 항목을 다운로드할 수 있습니다.If you haven't already, register Azure Stack Hub with Azure so you can download Azure Marketplace items.

  • 필요한 Windows Server VM을 Azure Stack Hub Marketplace에 추가 합니다.Add the required Windows Server VM to Azure Stack Hub Marketplace.

    • SQL RP 버전 <= 1.1.47.0의 경우 Windows server 2016 Datacenter-Server Core 이미지를 다운로드 합니다.For SQL RP version <= 1.1.47.0, download the Windows Server 2016 Datacenter - Server Core image.
    • SQL RP 버전 >= 1.1.93.0 Add-On RP Windows Server 이미지를 다운로드 합니다.For SQL RP version >= 1.1.93.0, download the Microsoft AzureStack Add-On RP Windows Server image. 이 Windows Server 버전은 Azure Stack Add-On RP 인프라를 위한 전문적 이며, 테 넌 트 marketplace에는 표시 되지 않습니다.This Windows Server version is specialize for Azure Stack Add-On RP Infrastructure and it is not visible to the tenant marketplace.
  • 아래의 버전 매핑 표에 따라 지원 되는 버전의 SQL 리소스 공급자 이진을 다운로드 합니다.Download the supported version of SQL resource provider binary according to the version mapping table below. 자동 추출기를 실행 하 여 임시 디렉터리에 다운로드 한 콘텐츠를 추출 합니다.Run the self-extractor to extract the downloaded contents to a temporary directory.

    지원 되는 Azure Stack 허브 버전Supported Azure Stack Hub version SQL RP 버전SQL RP version RP 서비스가 실행 되 고 있는 Windows ServerWindows Server that RP service is running on
    2008, 20052008, 2005 SQL RP 버전 1.1.93.1SQL RP version 1.1.93.1 Microsoft AzureStack 추가 기능 RP Windows ServerMicrosoft AzureStack Add-on RP Windows Server
    2005, 2002, 19102005, 2002, 1910 SQL RP 버전 1.1.47.0SQL RP version 1.1.47.0 Windows Server 2016 Datacenter-Server CoreWindows Server 2016 Datacenter - Server Core
    19081908 SQL RP 버전 1.1.33.0SQL RP version 1.1.33.0 Windows Server 2016 Datacenter-Server CoreWindows Server 2016 Datacenter - Server Core
  • 데이터 센터 통합 필수 구성 요소가 충족 되는지 확인 합니다.Ensure datacenter integration prerequisites are met:

    필수 요소Prerequisite 참조Reference
    조건부 DNS 전달이 올바르게 설정 되었습니다.Conditional DNS forwarding is set correctly. Azure Stack 허브 데이터 센터 통합-DNSAzure Stack Hub datacenter integration - DNS
    리소스 공급자에 대 한 인바운드 포트가 열려 있습니다.Inbound ports for resource providers are open. Azure Stack 허브 데이터 센터 통합-포트 및 프로토콜 인바운드Azure Stack Hub datacenter integration - Ports and protocols inbound
    PKI 인증서 주체 및 SAN이 올바르게 설정 되어 있습니다.PKI certificate subject and SAN are set correctly. Azure Stack 허브 배포 필수 PKI 필수 구성 요소Azure Stack Hub deployment mandatory PKI prerequisites
    Azure Stack 허브 배포 PaaS 인증서 필수 구성 요소Azure Stack Hub deployment PaaS certificate prerequisites

연결 되지 않은 시나리오에서 필요한 PowerShell 모듈을 다운로드 하 고 수동으로 리포지토리를 등록 하려면 다음 단계를 완료 합니다.In a disconnected scenario, complete the following steps to download the required PowerShell modules and register the repository manually.

  1. 인터넷에 연결 된 컴퓨터에 로그인 하 고 다음 스크립트를 사용 하 여 PowerShell 모듈을 다운로드 합니다.Sign in to a computer with internet connectivity and use the following scripts to download the PowerShell modules.
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"
  1. 배포 하는 리소스 공급자의 버전에 따라 스크립트 중 하나를 실행 합니다.Depending on the version of resource provider that you are deploying, run one of the scripts.
# 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
  1. 그런 다음 다운로드 한 패키지를 USB 장치에 복사 합니다.Then you copy the downloaded packages to a USB device.

  2. 연결 되지 않은 워크스테이션에 로그인 하 고 USB 장치에서 워크스테이션의 위치로 패키지를 복사 합니다.Sign in to the disconnected workstation and copy the packages from the USB device to a location on the workstation.

  3. 이 위치를 로컬 리포지토리로 등록 합니다.Register this location as a local repository.

# 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"

인증서Certificates

통합 시스템 설치에만 해당 합니다.For integrated systems installations only. Azure Stack 허브 배포 pki 요구 사항의 옵션 PaaS 인증서 섹션에서 설명 하는 SQL PaaS pki 인증서를 제공 해야 합니다.You must provide the SQL PaaS PKI certificate described in the optional PaaS certificates section of Azure Stack Hub deployment PKI requirements. DependencyFilesLocalPath 매개 변수로 지정 된 위치에 .pfx 파일을 배치 합니다.Place the .pfx file in the location specified by the DependencyFilesLocalPath parameter. ASDK 시스템에 인증서를 제공 하지 마세요.Don't provide a certificate for ASDK systems.

SQL 리소스 공급자 배포Deploy the SQL resource provider

모든 필수 구성 요소를 완료 한 후에는 Azure Stack 허브 Azure Resource Manager 관리 끝점과 권한 있는 끝점 모두에 액세스할 수 있는 컴퓨터에서 DeploySqlProvider.ps1 스크립트를 실행 하 여 SQL 리소스 공급자를 배포 합니다.After you've completed all of the prerequisites, run the DeploySqlProvider.ps1 script from a computer that can access both the Azure Stack Hub Azure Resource Manager admin endpoint and the privileged endpoint, to deploy the SQL resource provider. Azure Stack 허브 버전에 대해 다운로드 한 SQL 리소스 공급자 이진 파일의 일부로 DeploySqlProvider.ps1 스크립트가 추출 됩니다.The DeploySqlProvider.ps1 script is extracted as part of the SQL resource provider binary that you downloaded for your version of Azure Stack Hub.

중요

리소스 공급자를 배포 하기 전에 릴리스 정보를 검토 하 여 배포에 영향을 줄 수 있는 새로운 기능, 수정 사항 및 알려진 문제에 대해 알아보세요.Before deploying the resource provider, review the release notes to learn about new functionality, fixes, and any known issues that could affect your deployment.

SQL 리소스 공급자를 배포 하려면 PowerShell ISE가 아닌 관리자 권한 powershell 창을 열고 SQL 리소스 공급자 이진 파일의 압축을 푼 디렉터리로 변경 합니다.To deploy the SQL resource provider, open a new elevated PowerShell window (not PowerShell ISE) and change to the directory where you extracted the SQL resource provider binary files.

중요

업데이트 스크립트를 실행 하기 전에 set-azurermcontext-Scope CurrentUserset-azurermcontext 프로세스 를 사용 하 여 캐시를 지우는 것이 좋습니다.We strongly recommend using Clear-AzureRmContext -Scope CurrentUser and Clear-AzureRmContext -Scope Process to clear the cache before running the update script.

다음 작업을 완료 하는 DeploySqlProvider.ps1 스크립트를 실행 합니다.Run the DeploySqlProvider.ps1 script, which completes the following tasks:

  • Azure Stack 허브의 저장소 계정에 인증서 및 기타 아티팩트를 업로드 합니다.Uploads the certificates and other artifacts to a storage account on Azure Stack Hub.
  • 갤러리를 사용 하 여 SQL 데이터베이스를 배포할 수 있도록 갤러리 패키지를 게시 합니다.Publishes gallery packages so you can deploy SQL databases using the gallery.
  • 호스팅 서버를 배포 하기 위한 갤러리 패키지를 게시 합니다.Publishes a gallery package for deploying hosting servers.
  • 다운로드 한 Windows Server 2016 core 이미지 또는 Microsoft AzureStack 추가 기능 RP Windows Server 이미지를 사용 하 여 VM을 배포한 다음 SQL 리소스 공급자를 설치 합니다.Deploys a VM using the Windows Server 2016 core image or Microsoft AzureStack Add-on RP Windows Server image you downloaded, and then installs the SQL resource provider.
  • 리소스 공급자 VM에 매핑되는 로컬 DNS 레코드를 등록 합니다.Registers a local DNS record that maps to your resource provider VM.
  • 운영자 계정에 대 한 로컬 Azure Resource Manager를 사용 하 여 리소스 공급자를 등록 합니다.Registers your resource provider with the local Azure Resource Manager for the operator account.

참고

SQL 리소스 공급자 배포가 시작 되 면 system.xml 어댑터 리소스 그룹이 만들어집니다.When the SQL resource provider deployment starts, the system.local.sqladapter resource group is created. 이 리소스 그룹에 대 한 필수 배포를 완료 하는 데 최대 75 분이 걸릴 수 있습니다.It may take up to 75 minutes to finish the required deployments to this resource group. 다른 리소스를 system.string 어댑터 리소스 그룹에 넣지 않아야 합니다.You should not place any other resources in the system.local.sqladapter resource group.

DeploySqlProvider.ps1 매개 변수DeploySqlProvider.ps1 parameters

명령줄에서 다음 매개 변수를 지정할 수 있습니다.You can specify the following parameters from the command line. 그렇지 않으면 매개 변수 유효성 검사에 실패 하는 경우 필수 매개 변수를 제공 하 라는 메시지가 표시 됩니다.If you don't, or if any parameter validation fails, you're prompted to provide the required parameters.

매개 변수 이름Parameter name DescriptionDescription 설명 또는 기본값Comment or default value
CloudAdminCredentialCloudAdminCredential 권한 있는 끝점에 액세스 하는 데 필요한 클라우드 관리자에 대 한 자격 증명입니다.The credential for the cloud admin, necessary for accessing the privileged endpoint. 필수Required
AzCredentialAzCredential Azure Stack 허브 서비스 관리자 계정에 대 한 자격 증명입니다.The credentials for the Azure Stack Hub service admin account. Azure Stack 허브를 배포 하는 데 사용한 것과 동일한 자격 증명을 사용 합니다.Use the same credentials that you used for deploying Azure Stack Hub. AzCredential와 함께 사용 하는 계정에 MFA (multi-factor authentication)가 필요한 경우 스크립트가 실패 합니다.The script will fail if the account you use with AzCredential requires multi-factor authentication (MFA). 필수Required
VMLocalCredentialVMLocalCredential SQL 리소스 공급자 VM의 로컬 관리자 계정에 대 한 자격 증명입니다.The credentials for the local admin account of the SQL resource provider VM. 필수Required
PrivilegedEndpointPrivilegedEndpoint 권한 있는 끝점의 IP 주소 또는 DNS 이름입니다.The IP address or DNS name of the privileged endpoint. 필수Required
AzureEnvironmentAzureEnvironment Azure Stack Hub를 배포 하는 데 사용 되는 서비스 관리자 계정의 Azure 환경입니다.The Azure environment of the service admin account used for deploying Azure Stack Hub. Azure AD 배포에만 필요 합니다.Required only for Azure AD deployments. 지원 되는 환경 이름은 Azurecloud, azureus정부 또는 중국 Azure AD ( AzureChinaCloud)를 사용 하는 경우입니다.Supported environment names are AzureCloud, AzureUSGovernment, or if using a China Azure AD, AzureChinaCloud. AzureCloudAzureCloud
DependencyFilesLocalPathDependencyFilesLocalPath 통합 시스템의 경우에만 인증서 .pfx 파일을이 디렉터리에 배치 해야 합니다.For integrated systems only, your certificate .pfx file must be placed in this directory. 선택적으로 하나 Windows 업데이트 MSU 패키지를 복사할 수 있습니다.You can optionally copy one Windows Update MSU package here. 선택 사항 (통합 시스템의 경우 필수 )Optional (mandatory for integrated systems)
DefaultSSLCertificatePasswordDefaultSSLCertificatePassword .Pfx 인증서의 암호입니다.The password for the .pfx certificate. 필수Required
MaxRetryCountMaxRetryCount 오류가 있는 경우 각 작업을 다시 시도 하는 횟수입니다.The number of times you want to retry each operation if there's a failure. 22
RetryDurationRetryDuration 재시도 사이의 제한 시간 간격 (초)입니다.The timeout interval between retries, in seconds. 120120
제거Uninstall 리소스 공급자와 관련 된 모든 리소스를 제거 합니다 (다음 참고 참조).Removes the resource provider and all associated resources (see the following notes). 아니요No
DebugModeDebugMode 오류가 발생 해도 자동 정리가 수행 되지 않습니다.Prevents automatic cleanup on failure. 아니요No

사용자 지정 스크립트를 사용 하 여 SQL 리소스 공급자 배포Deploy the SQL resource provider using a custom script

SQL 리소스 공급자 버전 1.1.33.0 또는 이전 버전을 배포 하는 경우 PowerShell에서 AzureRm 및 Azure Stack 허브 모듈의 특정 버전을 설치 해야 합니다.If you're deploying the SQL resource provider version 1.1.33.0 or previous versions, you need to install specific versions of AzureRm.BootStrapper and Azure Stack Hub modules in PowerShell. SQL 리소스 공급자 버전 1.1.47.0 이상을 배포 하는 경우 배포 스크립트는 필요한 PowerShell 모듈을 자동으로 다운로드 하 여 C:\Program Files\SqlMySqlPsh. 경로에 설치 합니다.If you're deploying the SQL resource provider version 1.1.47.0 or later, the deployment script will automatically download and install the necessary PowerShell modules for you to path C:\Program Files\SqlMySqlPsh.

# 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 -RequiredVersion 0.5.0 -Force
Use-AzureRmProfile -Profile 2018-03-01-hybrid -Force
Install-Module -Name AzureStack -RequiredVersion 1.6.0

참고

연결 되지 않은 시나리오에서는 필수 PowerShell 모듈을 다운로드 하 고 필수 구성 요소로 수동으로 리포지토리를 등록 해야 합니다.In disconnected scenario, you need to download the required PowerShell modules and register the repository manually as a prerequisite.

리소스 공급자를 배포할 때 수동 구성을 제거 하려면 다음 스크립트를 사용자 지정할 수 있습니다.To eliminate any manual configuration when deploying the resource provider, you can customize the following script. Azure Stack 허브 배포에 필요한 대로 기본 계정 정보 및 암호를 변경 합니다.Change the default account information and passwords as needed for your Azure Stack Hub deployment.

# 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 values for the <environment name> parameter are AzureCloud, AzureChinaCloud, or AzureUSGovernment depending which Azure subscription you're using.
$AzureEnvironment = "<EnvironmentName>"

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

# 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 local admin account.
$vmLocalAdminPass = ConvertTo-SecureString 'P@ssw0rd1' -AsPlainText -Force
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential ("sqlrpadmin", $vmLocalAdminPass)

# Add the cloudadmin credential that's 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\DeploySQLProvider.ps1 `
    -AzCredential $AdminCreds `
    -VMLocalCredential $vmLocalAdminCreds `
    -CloudAdminCredential $cloudAdminCreds `
    -PrivilegedEndpoint $privilegedEndpoint `
    -AzureEnvironment $AzureEnvironment `
    -DefaultSSLCertificatePassword $PfxPass `
    -DependencyFilesLocalPath $tempDir\cert

리소스 공급자 설치 스크립트가 완료 되 면 브라우저를 새로 고쳐 최신 업데이트를 확인 하 고 현재 PowerShell 세션을 닫을 수 있는지 확인 합니다.When the resource provider installation script finishes, refresh your browser to make sure you can see the latest updates and close the current PowerShell session.

Azure Stack 허브 포털을 사용 하 여 배포 확인Verify the deployment using the Azure Stack Hub portal

  1. 서비스 관리자로 관리자 포털에 로그인 합니다.Sign in to the administrator portal as the service admin.
  2. 리소스 그룹 을 선택합니다.Select Resource Groups.
  3. 시스템을 선택 합니다. <location> sqladapter 리소스 그룹입니다.Select the system.<location>.sqladapter resource group.
  4. 리소스 그룹 개요의 요약 페이지에는 실패 한 배포가 없어야 합니다.On the summary page for Resource group Overview, there should be no failed deployments.
  5. 마지막으로, 관리자 포털에서 Virtual machines 를 선택 하 여 SQL 리소스 공급자 VM이 성공적으로 만들어지고 실행 중인지 확인 합니다.Finally, select Virtual machines in the administrator portal to verify that the SQL resource provider VM was successfully created and is running.

다음 단계Next steps

호스팅 서버 추가Add hosting servers