我知道您可以在 Azure 中创建 VHD 图像,但我想做的是创建一个模板化环境。这个环境可能有 2 个 Web 服务器、3 个业务逻辑盒、一些 CentOS 机器和一个 DB 盒。
我知道这是雄心勃勃的,但有人知道这是否可能。最终目标是能够从模板中创建相同的环境,而不必费力地将新盒子联网在一起。
我知道您可以在 Azure 中创建 VHD 图像,但我想做的是创建一个模板化环境。这个环境可能有 2 个 Web 服务器、3 个业务逻辑盒、一些 CentOS 机器和一个 DB 盒。
我知道这是雄心勃勃的,但有人知道这是否可能。最终目标是能够从模板中创建相同的环境,而不必费力地将新盒子联网在一起。
是的,你现在完全可以了,我过去一周左右一直在这样做。
使用 Visual Studio(安装 Azure SDK),您现在可以创建一个Azure Resource Group
项目来管理您的资源。
网上有一些关于 Visual Studio 如何使用 Json 模板的优秀指南,我从Eliot Mansfield 的这个视频和GitHub 上的源代码开始,因为我想确保我以模块化方法开始我自己的资源和任何其他资源客户可能需要。
我正在构建我的项目的一半:
但是我已经可以在我的资源组中部署、、、、、等所有组织key-vaults
、参数化和维护storage accounts
,只需单击几下:virtual networks
vnet gateways
virtual machines
如果有人想从事这样的项目,这里有一些技巧可以为您节省一些时间:
_artifactsLocation
和_artifactsLocationSasToken
参数,则在通过 Visual Studio 部署时,它会询问将Artifact storage account
在Deploy-AzureResourceGroup.ps1
项目文件属性中上传所有模板和设置为内容的任何文件的位置(在解决方案资源管理器中选择文件时按 F4)并替换参数值。但是永远不要在参数文件中手动包含这些参数值,因为部署脚本在尝试用生成的值替换这些参数值时会失败。在变量中构建模板链接,下面是我的一个模板的示例,它使用部署脚本生成的存储帐户位置和 SasToken 参数来访问容器,单击此处了解有关 SasToken 的更多信息。
{
"variables": {
"templates": {
"vm": {
"folder": "nestedtemplates",
"fileName": "vm.json"
},
"deploy": {
"folder": "rg-lab-superadmin",
"fileName": "deploy.sh"
}
},
"templateLinks": {
"vm": "[concat(parameters('_artifactsLocation'), '/', variables('templates').vm.folder, '/', variables('templates').vm.fileName, parameters('_artifactsLocationSasToken'))]",
"deploy": "[concat(parameters('_artifactsLocation'), '/', variables('templates').deploy.folder, '/', variables('templates').deploy.fileName, parameters('_artifactsLocationSasToken'))]"
}
}
}