ども、かっぱです。
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
引続き仮想ネットワークや仮想マシンをいじる
やること
改めて仮想マシンを作成
New-AzureVM
で仮想マシン $_vmName を作成
$_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
- 仮想マシンが作成されると以下のような構成となる
これは 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
- 変更が完了すると以下のような構成となる
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
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 を使って仮想マシンを削除
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
以上
引続き。