我想使用ARM将公钥证书安装到Azure VM规模集中,但在证书的本地路径正确时遇到问题。如何在使用DSC的Azure VM中安装公钥证书
有可能使用PowerShell的DSC扩展VM scalesets安装证书并使用xCertificate
我使用此代码示例的DSC模块:
Configuration Example
{
param
(
[Parameter()]
[string[]]
$NodeName = 'localhost'
)
Import-DscResource -ModuleName xCertificate
Node $AllNodes.NodeName
{
xCertificateImport MyTrustedRoot
{
Thumbprint = 'c81b94933420221a7ac004a90242d8b1d3e5070d'
Location = 'LocalMachine'
Store = 'Root'
Path = '.\Certificate\MyTrustedRoot.cer'
}
}
}
我使用Publish-AzureRmVMDscConfiguration cmdlet来打包并将DSC脚本和公钥证书上载到Azure存储帐户,以便它可以用作ARM部署过程的一部分。
但我无法弄清楚如何解决该证书模板的本地路径,使用 .\Certificate\MyTrustedRoot.cer
或$PSScriptRoot\Certificate\MyTrustedRoot.cer
时,我得到一个错误
我认为这是可能要么解决文件中DSC或使用相对路径,以保持DSC配置简单并与证书一起打包。
更新:Publish-AzureRmVMDscConfiguration将DSC脚本和公钥证书上载并上传到一个azure存储帐户。 VMSS DSC扩展下载压缩文件,在vm上本地解压缩并运行DSC,因此证书以缩放集中的所有虚拟机本地存在。
但由于正在使用的DSC模块的版本号,证书的路径不确定。
它不存在于本地,因为我使用的发布,AzureRmVMDscConfiguration cmdlet中-AddtionalPath PARAM,所以一切都是很好的拉链,上传到Azure存储帐户并下载并通过VMSS DSC扩展解压缩到VM。所以我只需要在本地引用.cer文件。即使使用RDP登录并找到该文件,但路径并不确定。 – mikanyg
我知道我可以使用自定义脚本扩展来代替,但我更喜欢DSC方法,如果我能弄清楚如何确定证书的位置,可以使用相对路径或一些可以传入的环境变量参数到DSC功能。 – mikanyg
放在磁盘上的证书在哪里 - 我很确定Azure DSC扩展提取到一个已知路径... –