Azure Resource Manager模板为不同环境创建资源

时间:2019-08-08 23:46:34

标签: powershell azure-devops azure-resource-manager

我正在尝试创建一个ARM模板,以便可以将我的所有资源创建在一个天蓝色的订阅中,而又在另一个新的订阅中。例如,如果我在测试环境中有东西,我想在其他环境中创建新资源,以便以后能够部署代码。但是,我对Azure,powershell和ARM模板非常陌生,因此正在寻找有关从何处开始以及如何实现此目标的指南。

  1. 我已经阅读过powershell。
  2. 我知道如何将资源从一个资源组转移到另一个甚至不同的Azure订阅。

4 个答案:

答案 0 :(得分:1)

因此,通常您将创建一个ARM模板来执行此操作。当您需要更改某些内容时,可以在其中添加\删除资源,然后将其部署到其他环境中。这类似于您跨环境升级应用程序的方式。首先,将其部署到开发人员,对其进行测试。然后,将其部署到测试中并进行更严格的测试,也许是性能测试。然后将其部署到生产中。

如果您要查找示例,请here's the official examples repoofficial docs might help as well

答案 1 :(得分:1)

Azure资源管理器模板是自动将资源部署到ARM的首选方法。了解如何使用资源管理器模板和Azure PowerShell部署资源,您可以参考此官方document

要部署到订阅,请使用New-AzDeployment

New-AzDeployment -Location <location> -TemplateFile <path-to-template>

如果要使用Azure Devops部署Azure资源管理器模板,则可以引用这些模板(blogblog)。关于devops的概念之一就是自动化,如果您不想每次通过门户手动创建环境时,这都是一个很好的尝试。

答案 2 :(得分:0)

您可以查看Azure Citadel自定进度的ARM template lab

答案 3 :(得分:0)

如果您真的想从ARM模板开始,则需要对模板azuredeploy.json中的所有值进行参数化,并使用需要在环境(例如名称)之间进行更改的参数来构建参数文件azuredeploy.parameters.json。 ,位置,sku /大小等。

尽管如果您只是刚入门,我还是建议直接使用Azure CLI。它简单,易于重复,您可以通过几个命令来部署整个解决方案。这将创建资源组,具有DB的SQL Logical Server和具有Web App的App Service Plan。

开发

az group create --name "rg-d-01" --location "australiaeast"
az appservice plan create --name "asp-d-01" --resource-group "rg-d-01" --location "australiaeast" --sku "S1"
az webapp create --name "awa-d-01" --plan "asp-d-01" --resource-group "rg-d-01"
az sql server create --name "sql-d-01" --resource-group "rg-d-01" --location "australiaeast"
az sql db create --server "sql-d-01" --resource-group "rg-d-01" --name "sqldb-d-01" --service-objective S0

测试

az group create --name "rg-t-01" --location "australiaeast"
az appservice plan create --name "asp-t-01" --resource-group "rg-t-01" --location "australiaeast" --sku "S1"
az webapp create --name "awa-t-01" --plan "awhp-t-01" --resource-group "rg-t-01"
az sql server create --name "sql-t-01" --resource-group "rg-t-01" --location "australiaeast"
az sql db create --server "sql-t-01" --resource-group "rg-t-01" --name "sqldb-t-01" --service-objective S0

产品

az group create --name "rg-p-01" --location "australiaeast"
az appservice plan create --name "asp-p-01" --resource-group "rg-p-01" --location "australiaeast" --sku "S1"
az webapp create --name "awa-p-01" --plan "awhp-p-01" --resource-group "rg-p-01"
az sql server create --name "sql-p-01" --resource-group "rg-p-01" --location "australiaeast"
az sql db create --server "sql-p-01" --resource-group "rg-p-01" --name "sqldb-p-01" --service-objective S0