我正在编写一个PowerShell脚本来使用New-AzureRmResourceGroupDeployment cmdlet创建VM,如下所示。
New-AzureRmResourceGroupDeployment -Name VmDeployment `
-TemplateFile C:\template\template.json `
-TemplateParameterFile C:\template\parameters.json
这用于创建VM。在parameters.json
,有一些参数,如virtualMachineName
,networkInterfaceName
等硬编码。
现在我正在尝试自动化这些脚本,即它们在某个条件满足时从工具运行。
我的要求是,无论何时运行此脚本,都必须增加VMName中的数量。假设VM名称现在是VMName1
,下次运行脚本时必须是VMName2
。类似的VMName3
当脚本下次运行时。由于virtualMachineName
参数是硬编码的,现在不会发生这种情况。无论如何,我可以将virtualMachineName
作为参数传递给脚本本身,而不是从json文件中获取它。
任何指导都非常感谢。谢谢!
你绝对可以做到这一点,幸运的是还有一些方法。
-TemplateParameterFile
而不是-TemplateParameterUri
)。生成的命令看起来像:
New-AzureRmResoruceGroupDeployment -Name VmDeployment `
-TemplateFile C:\template\template.json `
-TemplateParameterFile C:\template\parameters.json `
-virtualMachineName VMName42
New-AzureRmResourceGroupDeployment
。这样做的好处是不修改原始的parameters.json文件,但需要您在某处跟踪版本号(例如,另一个本地文件,命令行参数,环境变量等)。为简单起见,我建议选项1.它已经开箱即用,不需要任何外部脚本。