设为首页 收藏本站
查看: 1108|回复: 0

[经验分享] Azure ARM (5) ARM Template初探

[复制链接]

尚未签到

发表于 2017-6-30 06:20:19 | 显示全部楼层 |阅读模式
  《Windows Azure Platform 系列文章目录》
  Azure ARM (1) 概览
  Azure ARM (2) 概览
  Azure ARM (3) ARM支持的服务类型
  Azure ARM (4) 开始创建ARM Resource Group并创建存储账户
  本文需要的ARM Template,在这里下载。
  在之前的文章里,笔者介绍了:我们可以在ARM模式下,通过JSON Template来部署Azure资源。通过使用JSON Template,我们可以重复部署多个Azure资源。
  这个对于独立软件开发商(ISV)来说是非常重要的。比如厂商Contoso基于微软Azure开发了一套多租户的产品,给客户A使用。当客户B需要使用的时候,Contoso管理员只要从客户A的环境里,将Azure Deployment的JSON Template导出,进行相应的修改。然后再部署到Azure环境,即可把该环境提供给客户B使用。这种需要重复部署Azure资源的场景,非常适合使用Azure JSON Template。
  而且,当我们需要同时部署开发环境和测试环境,使用JSON Template也可以非常快速完成相应操作。
  在上一章内容中,笔者首先介绍了如何创建一个Azure Resource Group(命名为LeiResourceGroup),然后在这个Resource Group下创建Azure Storage Account(leistorageaccount)。
  我们不直接创建一个空的ARM Template,而是基于之前几章的内容。介绍一下ARM Template的架构。
  1.我们访问Azure New Portal: https://portal.azure.cn
  2.选中之前创建的LeiResourceGroup,点击Automation Script。如下图:
DSC0000.png

  上图中要特别注意右上角的几个参数。如下图:
DSC0001.png

  (1) Template:这表示Resource Group下包含的Azure资源。我们这里只包含了Azure Storage Account
  Template对Azure资源进行了定义。
  (2) Parameters :Parameters 定义了参数值。我们可以通过修改Partmeters文件内容,来决定Template部署的内容名称。
  Parameters可以理解为Web.config文件。
  (3) CLI: Azure命令行工具(command-line-interface,CLI),是由Azure服务器端生成的CLI部署模板。
  (4) PowerShell: 由Azure服务器生成的Azure PowerShell部署模板。
  (5) .NET: 由Azure服务器端生成的.NET部署模板
  (6)Ruby: 由Azure服务器端生成的Ruby部署模板。
  本节我们不直接创建一个空的ARM Templat,一般性的执行过程是这样的:
  (1)我们根据需要,下载不同语言的Azure Template
  (2)查看Template文件,修改里面需要的Azure资源,比如增加或者减少Azure Virtual Machine, Azure Virtual Network,Storage Account等
  (3)根据自己的需求,修改Parameters 里面定义的参数值。比如VM Name, VNet Name, Storage Account Name等
  (4)使用不同的方法(CLI, PowerShell, .NET或者Ruby),部署需要的Azure Template
  3.我们点击上图中,点击Download。如下图:
DSC0002.png

  将下载好的文件,保存在D盘根目录下。然后解压缩。
  4.我们这里不做大的修改。主要修改以下内容:
  (1)修改deploy.ps1里面的Add-AzureRmAccount,修改为:Add-AzureRmAccount -EnvironmentName AzureChinaCloud;
  现在默认的Azure Template PowerShell是指向到海外Azure。
  (2)修改deploy.ps1,注释以下内容:



# Register RPs
#$resourceProviders = @("microsoft.storage");
#if($resourceProviders.length) {
#    Write-Host "Registering resource providers"
#    foreach($resourceProvider in $resourceProviders) {
#       RegisterRP($resourceProvider);
#    }
#}
  (3)template.json不要修改
  (4)修改parameters.json里面的参数值,value为"leistorageaccountnew",注意value有双引号,然后值必须小写(因为存储账户名称必须为小写)



{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccounts_leistorageaccount_name": {
"value": "leistorageaccountnew"
}
}
}
  4.请注意:deploy.ps1里面的PowerShell语法,是增量部署。
  5.修改完毕后,我们打开Azure PowerShell,执行这个deploy.ps1。命令如下:



.\deploy.ps1 -subscriptionId "fa02e842-5d77-4a05-9089-7ce3fdb786e0" -resourceGroupName "LeiResourceGroup" -resourceGroupLocation "China East" -deploymentName "Lei Test on 2016/10/7" -templateFilePath "D:\Desktop\ARM\ExportedTemplate-LeiResourceGroup\template.json" -parametersFilePath "D:\Desktop\ARM\ExportedTemplate-LeiResourceGroup\parameters.json"
  我们分别设置了subscriptionId,ResourceGroupName,resourceGroupLocation,deploymentName和templateFilePath,parametersFilePath 
  6.PowerShell正常执行:
DSC0003.png

  7.我们再查看Azure New Portal,可以查看到本节新增的Azure Storage Account:
  这个Storage Account就是通过Template部署的
DSC0004.png

  参考资料:https://azure.microsoft.com/en-us/documentation/articles/resource-manager-export-template/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389509-1-1.html 上篇帖子: Azure IoT 技术研究系列1-入门篇 下篇帖子: Azure DW
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表