系统极客一直在努力
专注于操作系统及软件使用教程

如何使用ARM模板申请Azure Public IP

defining-a-public-ip-azure-1

本篇文章中我们将对如何使用 ARM 模板申请「公用 IP 地址(Public IP addresses)」并分配给一个「资源组(Resource groups)」进行介绍。在看完本篇文章后,你将对 ARM 模式是如何工作的有一个基本了解。

使用 Azure Resource Manager (ARM) 模板,管理员将可以同时部署多个不同的 Azure 资源(虚拟机、虚拟网络,公用 IP 地址及存储账户等),ARM 允许用户以特定结构文本文件的方式来定义一个或多个 Azure 组件并将其部署到 Microsoft Azure 平台。

ARM 采用了 JSON 文件格式,以通过表达式、函数、参数和变量的方式来定义和配置 Azure 功能。JSON 表达式和函数可以让管理员以「写代码」形式来来配置各种属性,参数可以直接通过命令传递给模板的各种属性,而变量允许我们定义可在整个模板中重复使用的值。

ARM 模板最基本的样子是长成这样的:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "",
    "parameters": {  },
    "variables": {  },
    "resources": [  ],
    "outputs": {  }
}

$schema、contentVersion 及 resources 是唯一必要的区块,$schema 定义了 Azure 所要求的具体 JSON 格式,contentVersion (可能)永远是 1.0.0.0,ARM 模板中最最重要的就是 resources 了。Resources 用于表示你希望在 Azure 中部署的资源类型,例如:存储账户,数据库,虚拟网络,和虚拟机的各种组件。每个资源(resource)由不同的属性来定义。

如下是一个可以直接在 Azure 中创建「公用 IP 地址」的 JSON 模板示例:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [  
        {
        "apiVersion": "2015-06-15",
        "type": "Microsoft.Network/publicIPAddresses",
        "name": "sysgeekdemoip",
        "location": "East Asia",
        "properties": 
        {
            "publicIPAllocationMethod": "Dynamic",
            "dnsSettings": {
            "domainNameLabel": "mydomain"
            }
        }
        }
    ],
}

定义资源必需要求的属性有: apiVersion(API版本)、type(类型)和 name(名称),apiVersion 代表要使用 Azure API 版本,type 是我们要定义的资源类型,name 大家可以自己取。在我们创建 Azure「公用 IP 地址」的示例中,属性可以定义为静态 IP 地址或动态 IP 地址、可以自定义所需的 DNS 名称以及需要在哪个数据中心申请资源。

当 JSON 模板定义好之后,我们便可以直接使用 ARM 来部署此模板,我们要在一个名为 sysgeekdemo 的资源组中部署此模板,则可以使用 New-AzureRmResourceGroupDeployment cmdlet 来部署:

New-AzureRmResourceGroupDeployment -ResourceGroupName WinclientDemo –TemplateFile D:\Templates\DeployPublicIP.json

defining-a-public-ip-azure

「公用 IP 地址(Public IP addresses)」可以直接绑定到负载均衡器及虚拟机的网卡上,大家用 ARM 部署的虚拟机已经可以不再使用 Reserved IP 了。

上述我们介绍的只是最基本的 ARM 模板使用,如果我想更深入的了解和创建自己的模板,可以参考 Authoring Azure Resource Manager templates

分享到:更多 ()