vmware
PowerShell
PowerCLI

PowerCLI を利用して vSphere 上に仮想マシンを展開する。

More than 1 year has passed since last update.


はじめに

技術検証用環境の仮想化基盤に VMWare社の ESXi を利用している。

ESXi上に仮想マシンを展開する手段の一つとして、VMWare社から提供されている VMWare PowerCLI を利用することができる。

専用クライアントツール(~vSphere 6.0)、もしくはWebブラウザを利用してGUIベースで仮想マシンを展開することも可能であるが、

VMWare PowerCLIを利用すると構成をコマンドとして保存できる等の利点があると考える。

他にも以下のような場合に有利であると考えられる。


  • 同一構成の仮想マシンを複数展開したい

  • 短時間で仮想マシンを展開したい


環境とVMWare PowerCLIの導入


環境

PS> [System.Environment]::OSVersion

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

PS> $PSVersionTable

Name Value
---- -----
PSVersion 5.1.14393.1770
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.1770
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1


PowerCLI の導入


  1. 管理者権限でPowerShellを起動する。


  2. 以下のコマンドを実行する。


PS> Install-Module -Name VMware.PowerCLI

※初回実行時は「NuGetプロバイダの導入」、「信頼されていないリポジトリからのインストール」について、実行可否を聞かれる。


PowerCLIを利用した仮想マシンの展開

以下の要領で展開する。


vCenterサーバに接続する。

PS> Connect-VIServer  -Server vcenter.example.com -User <user> -Password <password>

Name Port User
---- ---- ----
vcenter.example.com 443 <user>


仮想マシンを作成する。

PS> $vm = New-VM -Name 001_hoge `                    # 仮想マシン(VM)名

-VMHost esx1 ` # VMをホストするESXiサーバ
-CD ` # CDドライブを接続
-Datastore datastore-1 ` # VMDKファイルを配置するデータストア名
-DiskGB 50 ` # 仮想ディスクのサイズ(GB)
-DiskStorageFormat Thin ` # 仮想ディスクのフォーマット
-NumCPU 2 ` # ソケット数
-CoresPerSocket 1 ` # core数 / ソケット
-MemoryGB 8 ` # メモリサイズ
-GuestId rhel7_64Guest ` # ゲストOSの種別(Win2016,centos7...)
-NetworkName net-10.128.12 ` # 接続するネットワーク名
-Confirm:$false # 確認プロンプトなしで即時実行


仮想マシンの構成を変更する。


仮想NICタイプを VMXNet3 に変更する。

PS> $vm | Get-NetworkAdapter | Set-NetworkAdapter -Type VMXNet3 -Confirm:$false


SCSIコントローラを追加し、追加したコントローラに仮想ディスクを追加する。


  • 100GB の仮想ディスクをタイプ thin で追加

  • 準仮想化のSCSIコントローラを追加

PS> $vm | New-HardDisk -CapacityGB 100 -StorageFormat Thin[^1] | New-ScsiController -Type ParaVirtual -Confirm:$false


データストアにあるISOファイルをマウントさせる。

PS> $vm | Get-CDDrive | Set-CDDrive -ISOPath "[datastore-1] Media/CentOS-7-x86_64-Minimal-1708.iso" -StartConnected $true -Confirm:$false


仮想マシン起動

PS> $vm | Start-VM


リモートコンソール起動

PS> $vm | Open-VMConsoleWindow


vCenterサーバとの接続を切断する。

PS> Disconnect-VIServer


リモートコンソールまで起動したのであとは、OSインストール等、後続作業に移る。

OSインストールもkickstart(Linuxの場合)を利用して自動構成し、全自動でOS構築まで完了させることができる。

VMをテンプレートから展開する場合, linuxOSの自動インストール(kickstart)の手順もいずれ。。。