読者です 読者をやめる 読者になる 読者になる

ようへいの日々精進XP

よかろうもん

PowerShell で操作する Azure メモ(1)

ども、かっぱです。

tl;dr

mva.microsoft.com

上記の資料を参考に操作したメモ。

尚、操作する環境は以下の通り。

PS C:\Users\Administrator\Downloads> [System.Environment]::OSVersion

                          Platform ServicePack                        Version                            VersionString
                          -------- -----------                        -------                            -------------
                           Win32NT                                    6.3.9600.0                         Microsoft Windows NT 6.3.9600.0

PS C:\Users\Administrator\Downloads> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.17400
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2

仮想マシンを操作する

要件

クラウドサービスを作成する

run

New-AzureService -ServiceName "oreno-cloudservice" -Location "Japan West" -Label "oreno-cloudservice"

output

OperationDescription                    OperationId                             OperationStatus
--------------------                    -----------                             ---------------
New-AzureService                        xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx    Succeeded

Ubuntu Server 16.04 の OS イメージを取得する

run

$ImageName = @(Get-AzureVMImage `
| ? {$_.OS -eq "Linux" -and $_.ImageFamily -eq "Ubuntu Server 16.04 LTS"} `
| Sort-Object PublishedDate –Descending `
| Select-Object -First 1).ImageName

confirm

PS C:\Users\Administrator> $ImageName
b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-16_04-LTS-amd64-server-20160815-en-us-30GB

以下のように実行すると OS イメージの各種情報が一覧で取得することが出来る。(参考:Windows Azure 仮想マシンの展開可能なイメージ一覧を取得する

run

Get-AzureVMImage | Sort-Object OS,Label,PublishedDate | Format-Table OS,Label,PublishedDate,ImageName -AutoSize

New-AzureQuickVM を利用して仮想マシンを起動する

run

New-AzureQuickVM `
  -Linux `
  -ImageName $ImageName `
  -LinuxUser "ubuntu" `
  -Password "xxxxxxxxxxxxxxxxxxx" `
  -ServiceName "oreno-cloudservice" `
  -Name "vm01" `
  -InstanceSize "ExtraSmall" `
  -Location "Japan West" `
  -Verbose

New-AzureQuickVM `
  -Linux `
  -ImageName $ImageName `
  -LinuxUser "ubuntu" `
  -Password "xxxxxxxxxxxxxxxxxxx" `
  -ServiceName "oreno-cloudservice" `
  -Name "vm02" `
  -InstanceSize "ExtraSmall" `
  -Location "Japan West" `
  -Verbose
#
# 気付いた点
# - ログインユーザー名に admin は利用出来ない
# - パスワードには、小文字 / 大文字 / 数字 / 記号のうち 3 種類の文字を含める必要がある
#

output

警告: No deployment found in service: 'oreno-cloudservice'.
詳細: 9:36:33 - Begin Operation: New-AzureQuickVM
詳細: 9:36:33 - Completed Operation: New-AzureQuickVM
詳細: 9:36:34 - Begin Operation: New-AzureQuickVM - Create Deployment with VM vm01

OperationDescription                    OperationId                             OperationStatus
--------------------                    -----------                             ---------------
New-AzureQuickVM                        xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx    Succeeded
詳細: 9:37:39 - Completed Operation: New-AzureQuickVM - Create Deployment with VM vm01

インスタンスサイズの指定

インスタンスサイズは以下のような指定を行う。(参考:Azure の仮想マシンのサイズ

  • Basic_A0: Basic_A0
  • Basic_A1: Basic_A1...(A4 まで Basic_A4)
  • Standard_A0: ExtraSmall
  • Standard_A1: Small
  • Standard_A2: Medium
  • Standard_A3: Large
  • Standard_A4: ExtraLarge
  • Standard_A5: A5
  • Standard_A6: A6...(A11 まで A11)
  • D1: Standard_D1
  • D2: Standard_D2...(D14 まで Standard_D14)

仮想マシンを確認する

confirm

PS C:\Users\Administrator> Get-AzureVM

ServiceName                             Name                                    Status
-----------                             ----                                    ------
oreno-cloudservice                      vm01                                    RoleStateUnknown
oreno-cloudservice                      vm02                                    RoleStateUnknown

仮想マシンを停止する

confirm

PS C:\Users\Administrator\Downloads> Stop-AzureVM -ServiceName "oreno-cloudservice" -Name "vm03"

確認
The specified virtual machine is the last virtual machine in this deployment. Continuing will result in a new IP address for your
deployment. To shut down without losing the deployment IP use -StayProvisioned.
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

OperationDescription                           OperationId                                    OperationStatus
--------------------                           -----------                                    ---------------
Stop-AzureVM                                   xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx           Succeeded


PS C:\Users\Administrator\Downloads> Stop-AzureVM -ServiceName "oreno-cloudservice" -Name "vm02" -Force

OperationDescription                           OperationId                                    OperationStatus
--------------------                           -----------                                    ---------------
Stop-AzureVM                                   xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx           Succeeded

仮想マシンを削除する

confirm

PS C:\Users\Administrator\Downloads> Remove-AzureVM -ServiceName "oreno-cloudservice" -Name "vm01"

OperationDescription                           OperationId                                    OperationStatus
--------------------                           -----------                                    ---------------
Remove-AzureVM                                 xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx           Succeeded


PS C:\Users\Administrator\Downloads> Remove-AzureVM -ServiceName "oreno-cloudservice" -Name "vm02"

OperationDescription                           OperationId                                    OperationStatus
--------------------                           -----------                                    ---------------
Remove-AzureVM                                 xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx           Succeeded

memo

New-AzureQuickVM : CurrentStorageAccountName is not accessible. エラーの対処

エラー

New-AzureQuickVM 実行時に以下のようなエラーを確認。

  • output
警告: No deployment found in service: 'oreno-cloudservice'.
New-AzureQuickVM : CurrentStorageAccountName is not accessible. Ensure the current storage account is accessible and in the same location or affinity group as your cloud service.
発生場所 行:1 文字:1
+ New-AzureQuickVM `
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureQuickVM]、ArgumentException
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.PersistentVMs.NewQuickVM

サブスクリプションCurrentStorageAccountName が以下のように未定義な為に発生する。ストレージアカウントを作成して CurrentStorageAccountNameStorageAccountName を定義する必要がある。

  • confirm
PS C:\Users\Administrator\Downloads> Get-AzureSubscription


SubscriptionId            : 123456789-1234-1234-1234-123456789012
SubscriptionName          : XXXXXXXXXXXX
Environment               : AzureCloud
DefaultAccount            : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
IsDefault                 : True
IsCurrent                 : True
TenantId                  :
CurrentStorageAccountName :

サブスクリプションを Import した直後は上記のように CurrentStorageAccountName が空欄になっていた。

ストレージアカウントを作成

  • run
New-AzureStorageAccount `
  -StorageAccountName "xxxxxxxxxxxx" `
  -Label "xxxxxxxxxxxx" `
  -Location "Japan West" `
  -Type "Standard_LRS"

ストレージアカウントタイプ(-type)は以下の何れかを指定する。

-type で指定する値 ストレージタイプ
Standard_LRS 標準的なローカル冗長ストレージ
Standard_ZRS 標準ゾーン冗長ストレージ
Standard_GRS 標準的な地理冗長ストレージ
Standard_RAGRS 標準の読み取りアクセス地理冗長ストレージ
  • output
OperationDescription                    OperationId                             OperationStatus
--------------------                    -----------                             ---------------
New-AzureStorageAccount                 xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx    Succeeded
  • confirm
PS C:\Users\Administrator\Downloads> Get-AzureStorageAccount


Context                   : Microsoft.WindowsAzure.Commands.Common.Storage.LazyAzureStorageContext
StorageAccountDescription :
AffinityGroup             :
Location                  : Japan West
GeoPrimaryLocation        : Japan West
GeoSecondaryLocation      :
Label                     : xxxxxxxxxxxx
StorageAccountStatus      : Created
StatusOfPrimary           : Available
StatusOfSecondary         :
Endpoints                 : {https://xxxxxxxxxxxx.blob.core.windows.net/, https://xxxxxxxxxxxx.queue.core.windows.net/,
                             https://xxxxxxxxxxxx.table.core.windows.net/, https://xxxxxxxxxxxx.file.core.windows.net/}
AccountType               : Standard_LRS
LastGeoFailoverTime       :
MigrationState            :
StorageAccountName        : xxxxxxxxxxxx
OperationDescription      : Get-AzureStorageAccount
OperationId               : xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
OperationStatus           : Succeeded

カレントサブスクリプションにストレージアカウントを設定

  • run
Set-AzureSubscription `
  -SubscriptionName "XXXXXXXXXXXX" `
  -CurrentStorageAccountName (Get-AzureStorageAccount).StorageAccountName `
  -PassThru
  • output
Id          : 123456789-1234-1234-1234-123456789012
Name        : XXXXXXXXXXXX
Environment : AzureCloud
Account     : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
State       :
Properties  : {[Default, True], [StorageAccount, BlobEndpoint=https://xxxxxxxxxxxx.blob.core.windows.net/;QueueEndpoint
              =https://xxxxxxxxxxxx.queue.core.windows.net/;TableEndpoint=https://xxxxxxxxxxxx.table.core.windows.net/;
              FileEndpoint=https://xxxxxxxxxxxx.file.core.windows.net/;AccountName=xxxxxxxxxxxx;AccountKey=xxxxxxxxxxxx
              xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]}
  • confirm
PS C:\Users\Administrator\Downloads> Get-AzureSubscription


SubscriptionId            : 123456789-1234-1234-1234-123456789012
SubscriptionName          : XXXXXXXXXXXX
Environment               : AzureCloud
DefaultAccount            : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
IsDefault                 : True
IsCurrent                 : True
TenantId                  :
CurrentStorageAccountName : xxxxxxxxxxxx

仮想マシンの階層とサイズ

基本階層

- A シリーズ
 - 負荷分散機能と自動スケール機能が無い
 - ディスクの IOPS は 300

標準階層

- 負荷分散機能が利用可能
- 高可用セットを設定することで、自動スケールを構成が可能
- A / D / G シリーズ
- A シリーズ
 - IOPS は 500
- D シリーズ
 - A シリーズの 2 倍のメモリ構成
 - 一時ディスクに SSD を使用
- G シリーズ
 - Xeon プロセッサ E5 v3 と D シリーズの 2 倍のメモリ
 - データディスクにプレミアムストレージを使用出来る(最大で 6.59TB x 64 まで)