Azure

Azure リソース マネージャーでの Azure PowerShell をやってみた

Azure リソース マネージャーでの Azure PowerShell の使用のサンプルを自分でもやってみました。
https://azure.microsoft.com/ja-jp/documentation/articles/powershell-azure-resource-manager/

これをやるために、前回、Azure Powershell 1.00のインストールをしました。
が、すでに1.0.1が出たらしいので、前回の手順を再実行しました。。。。

[Get-Module の実行結果]

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   1.0.1      Azure                               {Add-AzureAccount, Add-AzureApplicationGatewaySslCertifi...
Script     1.0.2      AzureRM                             {CheckIncompatibleVersion, Import-AzureRM, Install-Modul...
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint-Computer, Clear-C...
Manifest   3.0.0.0    Microsoft.PowerShell.Security       {ConvertFrom-SecureString, ConvertTo-SecureString, Get-A...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Binary     1.0.0.0    PackageManagement                   {Find-Package, Get-Package, Get-PackageProvider, Get-Pac...
Script     1.0        PowerShellGet                       {Find-Module, Get-InstalledModule, Get-PSRepository, Ins...
Script     1.1        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadlineOption, Remove-...

 


 

サンプルで作成する環境

サンプルで作成しているのをざっくりまとめると、下記となります。

  1. リソースグループの作成
    (PowerShell で作成)
  2. 作成したリソースグループに、Web App と SQL Database の作成
    (PowerShellからJSONファイルを読み込んで作成)


 

手順

 

まずは、ARM で、ログインします。
ログインには、「Login-AzureRmAccount」を実行します。
いつものログイン画面が出てきて認証に成功すると、下記のようなログとなります。

PS C:Windowssystem32> Login-AzureRmAccount
Environment : AzureCloud
Account : (アカウント名)
TenantId : (テナントID)
SubscriptionId : (サブスクリプションID)
CurrentStorageAccount :

 

次に、リソースグループを作成します。

PS C:Windowssystem32> New-AzureRmResourceGroup -Name (リソースグループ名) -Location "(リージョン名)"
ResourceGroupName : testrsg01
Location : japaneast
ProvisioningState : Succeeded
Tags :
ResourceId : (リソースID)

 

最後に、作成したリソースグループにJSONファイルに構成したサービスを作成します。
途中でアプリケーションホスティングプラン、SQL Databaseの乗っかるサーバ名と認証情報、SQL Database 名と、いくつかの入力を行っています。

PS C:Windowssystem32> New-AzureRmResourceGroupDeployment -ResourceGroupName (リソースグループ名) -TemplateFile (JSONファイルのフルパス)

コマンド パイプライン位置 1 のコマンドレット New-AzureRmResourceGroupDeployment
次のパラメーターに値を指定してください:
(ヘルプを表示するには、「!?」と入力してください。)
hostingPlanName: y9hostplan01
serverName: y9sv01
databaseName: y9db01
administratorLogin: svadmin
administratorLoginPassword: ********
DeploymentName : azuredeploy
ResourceGroupName : y0testrsg01
ProvisioningState : Succeeded
Timestamp : 2015/11/16 21:34:08
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
hostingPlanName String y9hostplan01
serverName String y9sv01
databaseName String y9db01
administratorLogin String svadmin
administratorLoginPassword SecureString

Outputs :


 

JSONファイルは、そのまま使用しました。

 

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "hostingPlanName": {
            "type": "string"
        },
        "serverName": {
            "type": "string"
        },
        "databaseName": {
            "type": "string"
        },
        "administratorLogin": {
            "type": "string"
        },
        "administratorLoginPassword": {
            "type": "securestring"
        }
    },
    "variables": {
        "siteName": "[concat('ExampleSite', uniqueString(resourceGroup().id))]"
    },
    "resources": [
        {
            "name": "[parameters('serverName')]",
            "type": "Microsoft.Sql/servers",
            "location": "[resourceGroup().location]",
            "apiVersion": "2014-04-01",
            "properties": {
                "administratorLogin": "[parameters('administratorLogin')]",
                "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
                "version": "12.0"
            },
            "resources": [
                {
                    "name": "[parameters('databaseName')]",
                    "type": "databases",
                    "location": "[resourceGroup().location]",
                    "apiVersion": "2014-04-01",
                    "dependsOn": [
                        "[concat('Microsoft.Sql/servers/', parameters('serverName'))]"
                    ],
                    "properties": {
                        "edition": "Basic",
                        "collation": "SQL_Latin1_General_CP1_CI_AS",
                        "maxSizeBytes": "1073741824",
                        "requestedServiceObjectiveName": "Basic"
                    }
                },
                {
                    "name": "AllowAllWindowsAzureIps",
                    "type": "firewallrules",
                    "location": "[resourceGroup().location]",
                    "apiVersion": "2014-04-01",
                    "dependsOn": [
                        "[concat('Microsoft.Sql/servers/', parameters('serverName'))]"
                    ],
                    "properties": {
                        "endIpAddress": "0.0.0.0",
                        "startIpAddress": "0.0.0.0"
                    }
                }
            ]
        },
        {
            "apiVersion": "2015-08-01",
            "type": "Microsoft.Web/serverfarms",
            "name": "[parameters('hostingPlanName')]",
            "location": "[resourceGroup().location]",
            "sku": {
                "tier": "Free",
                "name": "f1",
                "capacity": 0
            },
            "properties": {
                "numberOfWorkers": 1
            }
        },
        {
            "apiVersion": "2015-08-01",
            "name": "[variables('siteName')]",
            "type": "Microsoft.Web/sites",
            "location": "[resourceGroup().location]",
            "dependsOn": [
                "[concat('Microsoft.Web/serverFarms/', parameters('hostingPlanName'))]"
            ],
            "properties": {
                "serverFarmId": "[parameters('hostingPlanName')]"
            },
            "resources": [
                {
                    "name": "web",
                    "type": "config",
                    "apiVersion": "2015-08-01",
                    "dependsOn": [
                        "[concat('Microsoft.Web/Sites/', variables('siteName'))]"
                    ],
                    "properties": {
                        "connectionStrings": [
                            {
                                "ConnectionString": "[concat('Data Source=tcp:', reference(concat('Microsoft.Sql/servers/', parameters('serverName'))).fullyQualifiedDomainName, ',1433;Initial Catalog=', parameters('databaseName'), ';User Id=', parameters('administratorLogin'), '@', parameters('serverName'), ';Password=', parameters('administratorLoginPassword'), ';')]",
                                "Name": "DefaultConnection",
                                "Type": 2
                            }
                        ]
                    }
                }
            ]
        }
    ]
}


 


 

まとめ

ひとまず、JSONファイルからサービスをデプロイできました。
これで、スーパー初級編はできたの思うので、もうちょっと応用的な使い方を考えてみよっと〜。

 

-Azure
-, , , ,