在 Windows Server Container 中运行 Azure Storage Emulator:使用自定义的 SQL Server Instance
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 Windows Server Container 中运行 Azure Storage Emulator:使用自定义的 SQL Server Instance相关的知识,希望对你有一定的参考价值。
上一章,我们解决了 Azure Storage Emulator 自定义监听地址的问题,这远远不够,因为在我们 DEV/QA 环境有各自的 SQL Server Instance,我们需要将 ASE 的数据库建到各自的 Instance 中。
先来看下 AzureStorageEmulator.exe help init 的结果:
呃,No way to set SQL Server connection string。这么看来,使用 Windows 身份验证是必须的了。不同服务器使用 Windows 身份验证有几种方法,一是使用 NTLM 身份验证,这个比较简单,两台服务器都设置一个相同的帐户,密码也一样,然后在 SQL Server 中给这个帐户一个 login 就行了。然后 ASE 要以这个帐户的身份运行,init 时指定 instance 就满足了所有条件。
有 AD 的话就舒服了,在 AD 上添加一个用户,然后 SQL Server 给这个帐户一个 login,ASE 以这个帐户的身份运行,就一切 OK 了。
但这两种方法都不是我想要的,因为……我要将 ASE 运行在容器中。而在容器中运行 ASE 且使用 Windows 身份验证,只有一种方法,那就是 gMSA。那么,要上 PS 大法了(啥?PhotoShop?no no no,PowerShell):
New-ADServiceAccount -Name AseSvc -DNSHostName ase.contoso.com -PrincipalsAllowedToRetrieveManagedPassword [ASE-HOST$] -KerberosEncryptionType RC4, AES128, AES256
在运行 ASE 的服务器上(ASE-HOST):
Install-WindowsFeature RSAT-AD-PowerShell Install-ADServiceAccount AseSvc Test-AdServiceAccount AseSvc
输出“True”表示 gMSA 已经 ready 了(有关创建 gMSA 的详细信息,见我另一篇博文《在 Windows 容器中使用 gMSA》)。
下面,在 SQL Server 中添加 login:
OK,万事俱备,只欠东风,下一章,我们就要把 ASE 运行在容器中了。
以上是关于在 Windows Server Container 中运行 Azure Storage Emulator:使用自定义的 SQL Server Instance的主要内容,如果未能解决你的问题,请参考以下文章
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting containe
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting containe