使用Variables实现自动部署,使.json文件更加灵活

时间:2018-03-20 10:37:06

标签: powershell azure

我有一个PowerShell脚本从Azure中的Image创建VM,在此脚本中我存放了.json(VM的参数等)。但是,如果我想创建多个VM,则VM,Vnet等的名称对于每次执行都不能相同(必须位于同一个资源组中)。

所以我的问题:如何在.json文件中插入变量来为每次执行更改VM的名称等?也许我必须重新思考?

PowerShell-Script

2 个答案:

答案 0 :(得分:2)

一个非常基本的方法可能是这样的:

# Grab the file contents
$contents = Get-Content -Path $templateFile

# Update some tokens in the file contents
$contents = $contents.replace("original value", "new value")

# Push the updated contents to a new file
Set-Content -Path $updatedFile -Value $contents

答案 1 :(得分:0)

如果您的值随每个部署而变化,您还可以考虑将 -TemplateParameterObject 参数与New-AzureRmResourceGroupDeployment cmdlet一起使用。这样,您可以在powershell脚本中生成值,而无需先将它们输出到json文件。

有关详细信息,请查看cmdlet specs