zoukankan      html  css  js  c++  java
  • 手把手教你创建Azure ARM Template

    Azure的ARM模式在中国已经落地了。在ARM模式中,通过ARM的Template批量的创建各种资源是与ASM模式的最大的区别之一。目前Azure ARM的Template数量已经越来越多,更多的客户会选择采用Template的模式进行资源的部署:

    在前面的文章中已经介绍了如何通过已有的Template修改成你所需要的模板,请参考:

    http://www.cnblogs.com/hengwei/p/5634380.html

    本文将一步一步的创建一个最简单的存储账户的ARM Template,并部署到Azure China中。

    一 准备工具

    1 下载安装工具:Visual Studio Code

    首先下载Visual Studio Code:

    https://code.visualstudio.com/

    这个软件是Visual Studio的简化版,是免费的。并且可以支持Windows、MAC和Linux。

    2 安装ARM的插件:

    打开Visual Studio Code,在最左边点中"Extensions",在搜索框中输入azure后搜索:

    其中"Azure Resource Manager Tools"和"armsnippet"就是Azure ARM Template的插件。点击安装。

    点击Enable,重启Visual Studio Code。

    3 配置Visual Studio Code

    从链接:

    https://raw.githubusercontent.com/Azure/azure-xplat-arm-tooling/master/VSCode/armsnippets.json

    复制内容,在Visual Studio Code中打开:

    File->Preferences->User Snippets:

    输入json,点击JSON:

    在{ }中复制刚刚拷贝的内容:

    Ctrl-S保存后关闭Visual Studio Code。

    二 准备要创建的资源

    本文将编写最简单的创建存储的JSON文件。如果客户要创建一个存储账户,需要准备如下信息:

    1 StorageAccountName: hwsa10

    2 StorageAccountType: Standard_LRS

    3 Resource Group: 采用一个已经存在的hwarm

     

    三 编写JSON模板

    1 编写AzureDeploy.json文件

    打开Visual Studio Code,新建一个文件,在右下角,点击Plain Text输入json:

    2 在编辑区域输入"arm":

    此时会有提示"Microsoft Azure Resouce Manager(ARM) JSON Template structure",按回车:

    将会出现:

    {

    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",

    "contentVersion": "1.0.0.0",

    "parameters": { },

    "variables": { },

    "resources": [ ],

    "outputs": { }

    }

    ARM模板的标准的几个参数。

    3 编辑parameter

    在parameter中输入相关参数,在输入了""后,Visual Studio Code出现提示:

    这几项是Parameter可以输入的参数,其中"type"是必选项。在输入过程中,每次输入"",都会出现提示:

    把前面准备的"storageAccountName"和"storageAccountType"输入到Parameter中。

    "parameters": {

    "storageAccountName":{"type":"string"},

    "storageAccountType":{

    "type": "string",

    "defaultValue": "Standard_LRS",

    "allowedValues": [

    "Standard_LRS",

    "Standard_GRS",

    "Premium_LRS"

    ]

    }

    },

    输入resource内容:

    输入""后,出现提示,其中apiVersion、location、propertises、type、name是必选项:

    同样,每次输入""都会有提示:

    输入完的结果:

    {

    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",

    "contentVersion": "1.0.0.0",

    "parameters": {

    "storageAccountName":{"type":"string"},

    "storageAccountType":{

    "type": "string",

    "defaultValue": "Standard_LRS",

    "allowedValues": [

    "Standard_LRS",

    "Standard_GRS",

    "Premium_LRS"

    ]

    }

    },

    "variables": { },

    "resources": [

    {

    "type": "Microsoft.Storage/storageAccounts",

    "name": "[parameters('storageAccountName')]",

    "apiVersion": "2015-06-15",

    "location": "[resourceGroup().location]",

    "properties": {

    "accountType": "[parameters('storageAccountType')]"

    }

     

    }

    ],

    "outputs": { }

    }

    四 编辑parameter文件

    根据已有的parameter文件,将前面定义的两个参数填好:

    {

    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",

    "contentVersion": "1.0.0.0",

    "parameters": {

    "storageAccountName": {

    "value": "hwsa01"

    },

    "storageAccountType": {

    "value": "Standard_LRS"

    }

    }

    }

    至此,两个文件都编辑完成。

    然后通过PowerShell可以将此Template发布到Azure上,创建StorageAccount。

    PS C:Usershengz> New-AzureRmResourceGroupDeployment -Name hwarmtemplate -ResourceGroupName hwarm -Mode Incremental -TemplateFile D:AzureDeploy.json -TemplateParameterFile D:DeployParameterFile.json

     

     

    DeploymentName : hwarmtemplate

    ResourceGroupName : hwarm

    ProvisioningState : Succeeded

    Timestamp : 2016/9/9 13:29:53

    Mode : Incremental

    TemplateLink :

    Parameters :

    Name Type Value

    =============== ========================= ==========

    storageAccountName String hwsa10

    storageAccountType String Standard_LRS

     

    Outputs :

    DeploymentDebugLogLevel :

     

  • 相关阅读:
    MySQL事务学习-->隔离级别
    ssh升级
    通过普通用户向各个节点服务器分发文件到各个目录
    parted在2T以上硬盘上分区操作
    时间同步出现ntpdate[1788]: the NTP socket is in use, exiting
    kvm解决1000M网卡问题
    mysql主从同步问题解决汇总
    ....
    iOS App Icon图标 尺寸规范
    SpringMVC注解配置
  • 原文地址:https://www.cnblogs.com/hengwei/p/5858390.html
Copyright © 2011-2022 走看看