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

ようへいの日々精進XP

よかろうもん

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

Azure 雑なメモ

ども、かっぱです。

tl;dr

引続き、PowerShell で Azure を操作するメモ。

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

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

引続き仮想ネットワークや仮想マシンをいじる

やること

改めて仮想マシンを作成

$_locationName  = "Japan West"
$_cloudService  = "your-service01"
$_vmName        = "vm01"
$_vmType        = "Basic_A0"
$_imageName     = @(Get-AzureVMImage | ? {$_.OS -eq "Windows" -and $_.ImageFamily -eq "Windows Server 2012 R2 datacenter"} ` | Sort-Object PublishedDate –Descending | Select-Object -First 1 ).ImageName
$_adminUser     = "oreadmin"
$_adminPassword = "YourPassword!01"
$_vnetName      = @(Get-AzureVNetSite -VNetName "Group your-service01 TestVNet01").Name
$_subNet        = "FrontEnd"

$_vmConfig = `
New-AzureVMConfig -Name $_vmName -InstanceSize $_vmType -ImageName $_imageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername $_adminUser -Password $_adminPassword -EnableWinRMHttp `
| Set-AzureVMBGInfoExtension `
| Set-AzureSubnet -SubnetNames $_subNet `
| New-AzureVM -ServiceName $_cloudService  -VNetName $_vnetName -Location $_locationName -WaitForBoot

f:id:inokara:20160904162621p:plain

f:id:inokara:20160904163123p:plain

これは VM 拡張機能の一つ、BGInfo が有効になっている場合、他のホスト情報と合わせて掲載される。

仮想マシンのサブネットを変更する

  • 現在は FrontEnd で起動している仮想マシンを BackEnd に移動する
$_vm = Get-AzureVM –serviceName $_cloudService –Name $_vmName
#
# Set-AzureSubnet を実行して 仮想マシンのサブネットを指定
#
Set-AzureSubnet –SubnetNames "BackendEnd" –VM $_vm

#
# Update-AzureVM を実行して変更を反映
#
Update-AzureVM -Name "vm01" -VM $_vm.VM -ServiceName $_cloudService

Update-AzureVM による変更で VM は再起動が発生する。

  • ouput
OperationDescription                    OperationId                             OperationStatus
--------------------                    -----------                             ---------------
Update-AzureVM                          xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    Succeeded
  • 変更が完了すると以下のような構成となる

f:id:inokara:20160904162526p:plain

  • 仮想マシンのデスクトップ壁紙に掲載されている DIP についても変更されている

f:id:inokara:20160904163248p:plain

DIP を割り当てる

  • $_vnetName 内で 192.168.2.100 が利用可能であるかを確認する
Test-AzureStaticVNetIP –VNetName $_vnetName –IPAddress 192.168.2.100
  • output
IsAvailable          : True
AvailableAddresses   : {}
OperationDescription : Test-AzureStaticVNetIP
OperationId          : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
OperationStatus      : Succeeded
  • 仮想マシン $_vmName の IP アドレスを 192.168.2.100 に変更する(DIP を割り当てる)
Get-AzureVM –serviceName $_cloudService  –Name $_vmName `
| Set-AzureStaticVNetIP -IPAddress 192.168.2.100 `
| Update-AzureVM

VIP の固定予約と仮想マシンへの割り当て

  • 予約済み IP アドレスの作成
$ReservedIP = New-AzureReservedIP –ReservedIPName "OrenoReservedIP" –Label "OrenoReserved –Location "Japan West"
  • 予約済み IP アドレスの確認
Get-AzureReservedIP
  • output
ReservedIPName       : OrenoReservedIP
Address              : xxx.xxx.xxx.xxx
Id                   : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Label                : OrenoReservedIP
Location             : Japan West
State                : Created
InUse                : False
ServiceName          :
DeploymentName       :
VirtualIPName        :
OperationDescription : Get-AzureReservedIP
OperationId          : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
OperationStatus      : Succeeded
  • 予約済み IP アドレスを利用して仮想マシンを作成する
$_vmConfig = `
New-AzureVMConfig -Name $_vmName -InstanceSize $_vmType -ImageName $_imageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername $_adminUser -Password $_adminPassword -EnableWinRMHttp `
| Set-AzureVMBGInfoExtension `
| Set-AzureSubnet -SubnetNames $_subNet `
| New-AzureVM -ServiceName $_cloudService  -VNetName $_vnetName -Location $_locationName -WaitForBoot -ReservedIPName "OrenoReservedIP"

New-AzureVM 実行時に -ReservedIPName "OrenoReservedIP"-Location $_locationName(予約した IP アドレスと同じ地域を指定)を付与して仮想マシンを作成する。

Remove-AzureVM -Name $_vmName -ServiceName $_cloudService
  • output
OperationDescription                    OperationId                             OperationStatus
--------------------                    -----------                             ---------------
Remove-AzureVM                          xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    Succeeded
  • Remove-AzureReservedIP を使って予約済み IP アドレスを解放
Remove-AzureReservedIP -ReservedIPName "OrenoReservedIP"
  • output
確認
Are you sure you want to remove the Reserved IP from your subscription?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

OperationDescription                    OperationId                             OperationStatus
--------------------                    -----------                             ---------------
Remove-AzureReservedIP                  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx    Succeeded

以上

引続き。