Azure ARM (5) ARM Template初探 - 本地JSON Template文件(1)


  《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。如下圖:

  

  上圖中要特別注意右上角的幾個參數。如下圖:

  

  (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。如下圖:

  

  將下載好的文件,保存在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正常執行:

 

  7.我們再查看Azure New Portal,可以查看到本節新增的Azure Storage Account:

  這個Storage Account就是通過Template部署的

  

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM