首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ARM模板DSC设置计算机描述(或不使用DSC)

通过ARM模板DSC设置计算机描述(或不使用DSC)
EN

Stack Overflow用户
提问于 2017-11-07 11:22:10
回答 1查看 175关注 0票数 0

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

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

这个源使用ARM模板中的DSC扩展来配置VM,用于拉服务器所在的位置、注册键、设置以及要应用的DSC节点配置,这就是我可以配置机器的所有内容。

我的DSC配置的一部分要求更新机器描述:

代码语言:javascript
复制
Registry ChangeDescription
{
    Ensure = "Present"
    Key = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
    ValueName = "srvcomment"
    ValueData = "my-super-awesome-computer-description"
    ValueType = "String"
}

我希望我的ARM模板能够向DSC配置传递一个参数,其中最终用户在ARM部署时输入了计算机描述(我将使用Azure模板部署作为用户使用的“库存”映像)。

Azure模板:https://portal.azure.com/#blade/HubsExtension/Resources/resourceType/Microsoft.Gallery%2Fmyareas%2Fgalleryitems

ARM参数:

代码语言:javascript
复制
"computerDescription": {
  "type": "string",
  "metadata": {
    "description": "The description name of the VM."
  }
},

计算机/虚拟机器/扩展属性:

代码语言:javascript
复制
    {
      "Name": "computerDescription",
      "Value": "[parameters('computerDescription')]",
      "TypeName": "System.String"
    }

DSC:

代码语言:javascript
复制
Registry ChangeDescription
{
    Ensure = "Present"
    Key = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
    ValueName = "srvcomment"
    ValueData = $ComputerDescription
    ValueType = "String"
}

通过Git上的源代码,我知道您可以将参数传递给DSC文件,因为机器就是这样设置的,但是我只能看到它被传递给.ps1脚本,它实际上为DSC设置了机器。因此,我不知道如何将参数传递到节点配置完成设置的下一阶段。

我不一定需要这个设置在DSC点,它可以通过模板,如果我知道如何,或可能在其他地方,有人可能知道?本质上,它只需要设置一次。

有什么想法吗?

编辑4c74356b41问题。

我仍然不确定如何将参数computerDescription用作commandToExecute的字符串。这是我想出的PS脚本,但实际上并不知道如何将该字符串变成PS的变量。

代码语言:javascript
复制
Param ( [string] $psVariable )
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\" -Name "srvcomment" -Value $psVariable -PropertyType String

这就是我的commandToExecute

代码语言:javascript
复制
"commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('asdfcseScriptFolder'), '/', variables('asdfcseScriptFileName'))]"

我不知道在哪里放computerDescription参数.?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 11:31:48

如果您已经使用DSC扩展到机上的Azure自动化,有一个预定义的配置,您可能不想改变。因此,在您的情况下,我想说使用脚本扩展和一个简单的powershell 1衬板来设置这个注册表值要容易得多,您可以很容易地使用arm模板将其参数化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47156652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档