アーカイブ

Posts Tagged ‘VMWare’

UIが一新されたWindows 8 正式対応のVMWare Player 5

Windows 8がRTMして少し立ちましたが、Windows 8に正式対応した、VMWare WorkStation 10がリリースされています。また、無料で利用できるVMWare Player 5.0も同時にリリースされています。

Windows 8では新しいハードウェア命令を利用しているため、VMWare Palyer 4以上であればインストールは可能でしたが、インストール時に幾つか注意点がありました。(→VMWare PlayerにWindows 8 CP をインストールする場合の注意)今回リリースされたVMWare Player 5ではこのあたりが改善され、正式にWindows 8に対応しているようです。

image

個人的に嬉しいのは、Ctrl+Alt+Deleteの送信がアイコンになってくれたこと。

広告
カテゴリー:Windows タグ: ,

VMWare ESXi でホストしているVMのIPアドレスの一覧を取得する。

僕が管理しているESXiが、気づいたらすでに7台になっています。いつの間にこんなに増えたのやら。

どのESXiにどんな用途のサーバーを置いているか管理はしているものの、新しいVMが欲しくなった時なんかは、実際に配置されているVMの一覧や、各VMのCPUやハードディスクの割り当て状況、IPアドレスがいくつかを一気に確認したくなるわけです。

複数の環境を統合管理できるvCenterなんかを使っていれば簡単なのかもしれないけれど、使えるのはESXiだけということでスクリプトを作ってみました。PowerShellで。$hostListと$use,$passwordは環境に応じて変えてもらえば動く。。。のかな?

#Add-PSSnapin VMware.VimAutomation.Core

$hostList = @("192.168.0.10", "192.168.0.12", "192.168.0.13")
$user = "root"
$password = "*********"
$csvFile = "C:\temp\vmlist.csv"

function Main() {
"VM情報の取得を開始します。"
$report = @()
foreach ($vmHost in $hostList) {
$vmHost + "を調査中"
$report += Get-VmList $vmHost
}
$report | sort Host,IPAddress | epcsv $csvFile -Encoding Default
$csvFile + "に出力しました。"
}

function Get-VmList($vmHost) {
$server = Connect-VIServer -Server $vmHost -User $user -Password $password
$vmReport = @()
$vms = get-vm -server $server;
foreach ($vm in $vms) {
$vmReport += Get-VmInfo($vm)
}
Disconnect-VIServer -server $server -Confirm:$FALSE
return $vmReport
}

function Get-VmInfo($vm) {
$addresses = @()
foreach ($nic in $vm.Guest.Nics) {
$addresses += $nic.IPAddress
}
$addressList = [string]::join(",", $addresses)

$report = New-Object -typename System.Object
$report | Add-Member -MemberType noteProperty -name Host -value $vm.Host
$report | Add-Member -MemberType noteProperty -name Name -value $vm.Name
$report | Add-Member -MemberType noteProperty -name NumCpu -value $vm.NumCpu
$report | Add-Member -MemberType noteProperty -name Memory -value $vm.MemoryMB
$report | Add-Member -MemberType noteProperty -name UsedSpaceGB -value $vm.UsedSpaceGB
$report | Add-Member -MemberType noteProperty -name Powerstate -value $vm.Powerstate
$report | Add-Member -MemberType noteProperty -name IPAddress -value $addressList
return $report
}

カテゴリー:インフラ, PowerShell タグ: ,

PowerCLIを使ってVMを管理する。

2012年3月9日 1件のコメント

vSphererとPowerCLI

VMWareの仮想化ソリューションvSphererには、無料で使えるESXiという製品があります。ESXiも他の製品と同じくvSphere ClientというGUIツールから管理を行うのですが、無料ゆえの悲しさか対象のサーバーで稼働中のVMをすべてサスペンドとか、特定のVMをすべて起動すると言った管理系の自動化機能が不足しています。このあたりを補ってくれるのが、コマンドラインインターフェイスのPowerCLIです。

PowerCLIはPowerShellを利用してvSpherer上の仮想PCを操作するコマンドラインインターフェイスで、仮想サーバーへの接続、切断(Connect-VIServer、Disconnect-VIServer)、VMの起動、停止、サスペンド(Start-VM、Stop-VM、Suspend-VM)、VMの作成、削除、移動(New-VM、Remove-VM、Move-VM)、VMの編集(Set-*)、スナップショットの管理(Get-Snapshot、New-SnapShot、Set-SnapShot、Remove-SnapShot)といったコマンドレットが用意されっています。

インストール

現在の最新版はvSphere PowerCLI 5.0.1です。VmWareのダウンロードページからダウンロードできます。

前述のとおり、PowerShell上で動作するのでPowerShellをインストールしていない場合は、別途Microsoftからダウンロードしてインストールしておきましょう。

image

image

VMWare VIXコンポーネントが必要なので一緒にインストールされるそうです。”OK”をクリックしましょう。

image

PowerShellの既定の状態では、ポリシーの設定で外部スクリプトの実行が制限されています。このためPowerCLIを動作させるには、PowerCLIインストール後にポリシーをRemoteSignedよりも緩くしてくださいということです。”Continue”をクリックしましょう。

image image

image image

image image

image

初期設定

インストール終了後にPowerCLIを実行するとこんな画面になります。

image

スクリプトの実行がシステムで無効になっているため、ファイル C:\Program Files (x8
)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironmen
.ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘ
ルプを参照してください。
発生場所 行:1 文字:2
. <<<<  "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Script
\Initialize-PowerCLIEnvironment.ps1"
   + CategoryInfo          : NotSpecified: (:) []、PSSecurityException
   + FullyQualifiedErrorId : RuntimeException

インストール時にポリシーをRemoteSinged以上に変更しろと言っていたので、PowerCLIを再度管理者として起動して、次のコマンドを実行します。

PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシー
を変更すると、about_Execution_Policies のヘルプ
トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行
ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y

設定が終わったら、通常のユーザーでPowerCLIを起動しなおしてください。こんな画面になります。

image

つないでみる

せっかくなので、繋いでみましょう。サーバーへの接続にはConnect-VIServerコマンドレットを利用します。

Connect-VIServer –Server XXXXX –User XXX –Password XXX

テスト証明書で運用している場合は、黄色でこんなメッセージが出ると思いますが、とりあえず無視で。

警告: There were one or more problems with the server certificate:

* The X509 chain could not be built up to the root certificate.

* The certificate’s CN name does not match the passed value.

ホストしているVMの一覧を見てみましょう。コマンドレットはGet-VMです。

PowerCLI > Get-VM

Name PowerState Num CPUs Memory (MB)
—- ———- ——– ———–
VMSERVER1 PoweredOn 1 3072
VMSERVER2 PoweredOn 1 3072
VMSERVER3 PoweredOff 1 3072
VMSERVER4 PoweredOff 1 3072

4台ホストしていて2台稼働中なようです。PowerShellなので、パイプしてフィルタできます。稼働中のVMだけ抜き出すにはこんな感じ。

PowerCLI > Get-VM | Where { $_.PowerState -eq "PoweredOn" }

Name                 PowerState Num CPUs Memory (MB)
—-                 ———- ——– ———–
VMSERVER1            PoweredOn  1        3072
VMSERVER2            PoweredOn  1        3072

さらにフィルターしたVMをサスペンドさせたければ、オブジェクトをさらにパイプしてSuspend-VMを実行します。

PowerCLI  > Get-VM | Where { $_.PowerState -eq "PoweredOn" } | Suspend-VM -Confirm:$False
Name                 PowerState Num CPUs Memory (MB)
—-                 ———- ——– ———–
VMSERVER1             Suspended 1        3072
VMSERVER2             Suspended 1        3072

実行すると、こんな表示が出てタスクの進捗を教えてくれます。

image

VMから切断するには、Disconnect-VIServerコマンドレットです。

PowerCLI > Disconnect-VIServer –Server XXXX -Confirm:$False

 

いやー、やっぱりPowerShellは楽でいいですね。VMWareにはPerlのCLIもあるんですが文字列処理をしなくていいのでほんと楽です。PS1ファイルにスクリプトを保存しておけば停電対策もばっちり。

カテゴリー:インフラ, PowerShell タグ: ,

VMWare PlayerにWindows 8 CP をインストールする場合の注意

2012年3月5日 1件のコメント

Windows 8 DPが出た当時はVMWare Playerが3.x系だったため、Windows 8で新たに追加したアーキテクチャーにVMWare Playerが対応しておらず、Windows 8をゲストOSとしてインストールすることはできませんでした。VMWare Player4以降では、この問題が解決しています。

ただし、新しい仮想マシンウィザードでは、「後でOSをインストール」を選択して下さい。Windowsの場合プロダクトキーをVMWare Playerのインストーラーに指定することでセットアップを簡略化していますが、Windows8はこのプロセスに対応していないようです。

image

追記

VSXiにインストールしようとしたら、hal_initialization_failedというメッセージで実行できなかった。

VSXiの場合は、下のパッチが必要なようだ。

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2006859

カテゴリー:インフラ, Windows タグ: ,