[英]Set Computer Description via ARM template DSC (or not DSC)
我已经构建了一个嵌套的ARM模板,该模板可以设置VM,并将其添加到Azure DSC自动化服务器中以进行最终配置。 此设置利用以下Git资源来设置请求服务器:
此源使用ARM模板中的DSC扩展名来配置VM,以获取拉取服务器所在的位置,注册密钥,设置以及要应用的DSC节点配置,这是我用于配置计算机的所有内容。
我的DSC配置的一部分要求更新机器说明:
Registry ChangeDescription
{
Ensure = "Present"
Key = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
ValueName = "srvcomment"
ValueData = "my-super-awesome-computer-description"
ValueType = "String"
}
我想让我的ARM模板能够将参数传递给DSC配置,在该DSC配置中,最终用户在ARM部署时键入了计算机描述(我将使用Azure模板部署作为人们的“库存”映像)采用)。
Azure模板: https : //portal.azure.com/#blade/HubsExtension/Resources/resourceType/Microsoft.Gallery%2Fmyareas%2Fgalleryitems
ARM参数:
"computerDescription": {
"type": "string",
"metadata": {
"description": "The description name of the VM."
}
},
Microsoft.Compute / virtualMachines / extensions属性:
{
"Name": "computerDescription",
"Value": "[parameters('computerDescription')]",
"TypeName": "System.String"
}
DSC:
Registry ChangeDescription
{
Ensure = "Present"
Key = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
ValueName = "srvcomment"
ValueData = $ComputerDescription
ValueType = "String"
}
按照Git上的源代码,我知道您可以将参数传递给DSC文件,因为这是机器的设置方式,但是我只能看到将其传递给实际上为DSC设置机器的.ps1脚本。 因此,我看不到如何将参数传递到节点配置完成设置的下一个阶段。
我不一定需要在DSC上进行设置,如果我知道如何的话,可以通过模板来完成,或者可能有人知道的其他地方? 本质上,它只需要设置一次。
有什么想法吗?
编辑4c74356b41问题。
我仍然不确定如何将参数computerDescription
用作commandToExecute
的字符串。 这是我想到的PS脚本,但没有真正的主意如何将字符串变成PS的变量。
Param ( [string] $psVariable )
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\" -Name "srvcomment" -Value $psVariable -PropertyType String
这是我有的commandToExecute
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('asdfcseScriptFolder'), '/', variables('asdfcseScriptFileName'))]"
我不确定将computerDescription
参数放在哪里...?
如果您已经在使用DSC扩展将其安装到Azure自动化中,那么您可能不想更改预定义的配置。 因此,在您的情况下,我想说,仅使用脚本扩展名和简单的powershell 1衬里设置此注册表值要容易得多,您可以使用arm模板轻松地将其参数化
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.