繁体   English   中英

通过ARM模板DSC(或非DSC)设置计算机描述

[英]Set Computer Description via ARM template DSC (or not DSC)

我已经构建了一个嵌套的ARM模板,该模板可以设置VM,并将其添加到Azure DSC自动化服务器中以进行最终配置。 此设置利用以下Git资源来设置请求服务器:

https://github.com/Azure/azure-quickstart-templates/tree/master/dsc-extension-azure-automation-pullserver

此源使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM