VMware Hands-on Labs - HOL-SDC-1607-SPR


Control Center ブラウザ言語設定(日本語)

Firefox ブラウザ言語設定(日本語)


vSphere Web Clientはブラウザベースです。日本語表示するためには、ブラウザの言語設定を日本語に設定します。

なお、vSphere Web Client 以外の一部ツールでは英語表記となります。これはハンズオンラボ環境特有のものです。


 

Firefoxの起動

 

Firefoxアイコンをクリックし、 起動します。

 

 

Firefoxブラウザの日本語化

 

1. ウィンドウ右上のメニューを開きます。

2. [Options]  をクリックします。

 

 

Firefoxブラウザの日本語化

 

左側メニューから [Content] を選択します。

 

 

Firefoxブラウザの日本語化

 

[Languages] の [Choose...] をクリックします。

 

 

Firefoxブラウザの日本語化

 

[Select a language to add...] をクリックします。

 

 

Firefoxブラウザの日本語化

 

1. プルダウンから [Japanese [ja] ] を選択します。

2. [Add] をクリックします。

3. [OK] をクリックします。

4. Firefox を再起動します。

 

Google Chrome ブラウザ言語設定(日本語)


vSphere Web Clientはブラウザベースです。日本語表示にするためには、ブラウザの言語設定を日本語に設定します。

なお、vSphere Web Client 以外の一部ツールでは英語表記となります。これはハンズオンラボ環境特有のものです。


 

Google Chrome の起動

 

Google Chrome を起動します。

 

 

Google Chrome のメニューを開く

 

ブラウザウィンドウ右上のメニューを開きます。

 

 

Google Chrome の設定画面を開く

 

[Settings] をクリックします。

 

 

Google Chrome の詳細設定を表示

 

1. 画面を下へスクロールします。

2. [Show advanced settings...] をクリックします。

 

 

Google Chrome の言語と入力の設定

 

画面を下へスクロールし、[Language and input setting...] をクリックします。

 

 

Google Chrome の言語と入力の設定

 

[Add] をクリックします。

 

 

Google Chrome の言語と入力の設定

 

1. プルダウンから [Japanese - 日本語] を選択します。

2. [OK] をクリックします。

 

 

Google Chrome の言語と入力の設定

 

1. 左側 [Languages] 内の [Japanese] を一番上までドラッグで移動させます。

2. [Done] をクリックします。

3. Google Chrome ブラウザを再起動します。

 

ラボ概要 - HOL-SDC-1607 - PowerCLI の初歩から高度な機能まで

ラボガイダンス


このラボは、PowerCLI の機能について初級者から上級者向けです。

完了するまでに約 60 分かかります。

ラボ製作者: Phil Balfanz, Paval Dimitrov, Pierre Grothe, Tom Lusk, Carl Olafson

ラボマニュアルは、 こちらからダウンロードすることができます:

http://docs.hol.pub/HOL-2016/hol-sdc-1607_pdf_ja.pdf


 

キーボードデータ入力の代替方法

注:US 配列以外のキーボードの場合は、このラボ内でユーザ名とパスワードのCLIコマンド入力が難しい場合があります。

直接入力する方法以外に、非常に有用な方法で簡単に複雑な文字入力が可能です。

 

 

クリックして、コンソールのアクティブウィンドウにラボマニュアル内のテキストをドラッグします

また、メインコンソールでアクティブなウィンドウになっているコマンドラインインタフェース( CLI )に、選択したテキストをドラッグしてコマンド入力することができます。

 

 

スクリーンキーボードへのアクセス

 

メインコンソールからスクリーンキーボードを起動することもできます。

  1. タスクバーにあるキーボードアイコンをクリックします。

 

 

Click once in active console window

 

この例では、電子メールアドレスに使用される、「 @ 」記号の入力方法してみます。 USキーボード配列では「 @ 」記号は、 Shift キーを押しながら 「2」を押します。

  1. 入力したウィンドウを選択してアクティブにします。
  2. Shiftキーを押します。

 

 

@ キー

 

  1. "@ "キーを押します。

アクティブウィンドーに @ が入力されます。

 

モジュール 1: PowerCLI の初歩から高度な機能まで (60 分)

モジュールの概要


このモジュールでは、VMware vSphere PowerCLI について説明します。初心者ユーザーはツールの使用法を簡単に学習でき、また高度な知識のあるユーザーは、OVA を展開前に構成する機能やタグによってオブジェクトをフィルタリングする機能など、製品の最新リリースで使用できる新機能を習得できます。初心者も経験のあるユーザーも新しいことを学べます。


PowerShell と PowerCLI の導入方法


このレッスンでは、PowerShell と PowerCLI の基本について説明します。PowerCLI コンソールおよび PowerShell ISE の起動方法、使用可能なコマンドのリストの表示方法、ヘルプの表示方法について説明します。


 

PowerCLI の開始

 

インストール後、デスクトップにある [VMware vSphere PowerCLI] というラベルのアイコンをダブルクリックして PowerCLI を開始できます。これで PowerShell コンソールが開き、PowerCLI のすべてのモジュールがロードされます。

 

 

Powershell ISE の使用

 

シンプルなコンソールの代わりとして、より優れたユーザー環境を提供する Powershell ISE スクリプト エディタを使用できます。このエディタは、デスクトップ上のアイコン (1) をダブルクリックして開始できます。上部のペイン (2) はスクリプト ファイルの表示と編集に使用します。下部のペイン (3) は個々のコマンドの実行とその出力の表示に使用します (標準の PowerShell コンソールと同じ機能です)。

 

 

Powershell ISE の使用

 

この実習ラボでは、PowerShell ISE の下部のペインまたは PowerShell コンソールで PowerCLI のさまざまなコマンドを実行します。自分でコマンドを入力することもできますが、デスクトップ上にある Module8.ps1 ファイルからコマンドをコピー アンド ペーストすることもできます。この実習ラボを行うための最も便利な方法は、Powershell ISE の上部ペインで Module8.ps1 を開くことです。このファイルには、このモジュールで実行するすべてのコマンドが含まれています。コマンドを選択し (1)、<F8> キーを押して実行できます (または [Run Selection] ボタン (2) をクリックします)。新しいコマンドを実行する前に、前のコマンドが完了していることを確認してください。完了すると、コンソールの下部に [Completed] というメッセージが表示されます (3)。

 

 

実行可能なコマンドの一覧表示

PowerCLI で実行可能なことを見ていきます。PowerCLI のスナップインには、vSphere、vCloud Air、Site Recovery Manager、vRealize Operations、vSphere Update Manager を管理するための 500 を超えるコマンド (PowerShell ではコマンドレットと呼ばれる) が用意されています。次のように入力することによって、使用可能な PowerCLI コマンドを見ることができます。

Get-VICommand

PowerCLI のすべてのコマンドが一覧表示されます。このリストは非常に長いため、特定のコマンドのみを表示するように絞り込むことができます。たとえば、仮想マシンを管理するすべてのコマンドは次のようにして表示できます。

Get-VICommand *VM

ヒント: オートコンプリートを使用してよりすばやく入力することができます。コマンドまたはパラメータの先頭部分を入力し、<Tab> キーを押します。

 

 

vSphere への接続

 

vCenter Server を管理するには、最初にその vCenter Server に接続する必要があります。これを行うには、Connect-VIServer コマンドを使用します。使用する vCenter の名前は 「vcsa-01a」 で、次のようにして接続します。

Connect-VIServer vcsa-01a -User corp\administrator -Password VMware1!

このコマンドは、指定されたユーザーの認証情報を使用して vCenter に接続します。

 

 

ヘルプの表示

 

特定のコマンドレットの使用方法がわからない場合は、「Get-Help」(または短縮形で単に 「help」) と入力し、その後に続けてコマンドレット名を入力することによって簡単にヘルプを参照することができます。

help Connect-VIServer

コマンドレットの使用例やパラメータの説明を含む完全なヘルプを参照したい場合は、コマンドレットの完全なヘルプを表示します。

help Connect-VIServer -Full

例だけを参照したい場合は、次のように -examples スイッチを使用します。

help Connect-VIServer -Examples

ヘルプ アーカイブ全体の中で特定の単語を検索することもできます。仮想マシンを vMotion で移動するためのコマンドレットを検索してみます。

help vmotion

結果の中に目的のコマンドレットである Move-VM が含まれています。このコマンドレットは、このモジュールの後のほうで使用します。

この実習ラボで紹介するコマンドレットについて、自由にヘルプをご確認ください。

 

 

PowerCLI を使用したレポート作成


PowerCLI は 100 以上の Get-* コマンドレットを備え、強力なレポート作成ツールにもなります。このレッスンでは、PowerCLI のこの使用法について説明します。


 

仮想マシンの取得

 

最も頻繁に実行する機能の 1 つに、vCenter Server 内の仮想マシンの一覧表示があります。これはインベントリの参照やレポート作成で便利な機能です。また、特定の仮想マシンに対して処理を行う場合 (複数の仮想マシンの一括変更など) にも便利です。次のようにしてすべての仮想マシンを取得できます。

Get-VM

また、名前を指定して 1 つまたは複数の仮想マシンを取得することもできます。次のコマンドレットを試してみてください。

Get-VM linux-CPU-Load-01a
Get-VM linux*

 

 

オブジェクトの特定のプロパティの取得

 

Get-VM などのコマンドレットを実行した場合、その結果として得られるのはオブジェクト、またはオブジェクトの配列です (Get-VM の場合は仮想マシン オブジェクトです)。オブジェクトにどのようなプロパティがあるかを見るには、次のように Get-Member コマンドレットを使用します。

Get-VM linux-CPU-Load-01a | Get-Member -MemberType property

仮想マシン オブジェクトにあるすべてのプロパティが一覧表示されます。

注: この例では、「パイプライン」 (または 「パイプ」) と呼ばれる PowerShell の機能を使用しています。実際には、Get-Member コマンドレットには仮想マシン オブジェクト (およびその他すべての PowerShell オブジェクト) を受け取る InputObject というパラメータがあります。ここでは、仮想マシンを取得して変数に格納し、それを Get-Member のパラメータに渡す代わりに、Get-VM の出力をそのまま Get-Member に 「パイプ」 しています。この方法によって、1 番目のコマンドレットの出力が 2 番目のコマンドレットの入力になります。

また、PowerShell の select コマンドを使用して、出力されるオブジェクトから必要なプロパティのみを取得することができます。

Get-VM linux-CPU-Load-01a | Select Name, NumCPU, MemoryMB, PowerState, VMHost

 

 

レポートの結果のフィルタリング

 

必要なプロパティでオブジェクトをフィルタリングするためのパラメータが Get-* コマンドレットにない場合は、PowerShell の where コマンドを使用してコマンドレットの結果をフィルタリングすることができます。

Get-VM | Where {$_.Powerstate -eq "PoweredOn"} | Select Name, NumCPU, MemoryMB, PowerState, VMHost

ヒント: $_ は PowerShell で予約されている変数であり、パイプラインの現在のオブジェクトが格納されます。

 

レポート結果をさまざまな形式でエクスポート


データを上司やほかのチームに提示する場合や、会社で使用している別のシステムにデータを転送する場合は、データの形式を何らかの形で整える必要があります。このレッスンでは、PowerCLI のレポートで生成されたデータをさまざまな形式 (txt、csv、xml、html) でエクスポートする方法について学びます。


 

txt 形式でのエクスポート

 

まずは、最も基本的なエクスポート方法である txt ファイルへのエクスポートについて説明します。レポートを txt にエクスポートするには、PowerShell のコマンドレット Out-File を使用します。

Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | Out-File c:\myPowerCLIReport.txt

テキスト ファイルを開いて結果を確認します。

 

 

csv 形式でのエクスポート

 

次に、同じデータを csv 形式でエクスポートします。これを行うには、Export-Csv コマンドレットを使用します。

Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | Export-Csv c:\myPowerCLIReport.csv -NoTypeInformation

csv ファイルの結果を確認します。

 

 

xml 形式でのエクスポート

 

次に取り上げるエクスポート形式は XML です。ここで使用する PowerShell コマンドレットは ConvertTo-Xml です。このコマンドレットは XMLDocument オブジェクトを返すため、フォーマットされたデータをファイルに書き出すには、このオブジェクトの Save メソッドを呼び出す必要があります。

(Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | ConvertTo-Xml -NoTypeInformation).Save("c:\myPowerCLIReport.xml")

xml ファイルの結果を確認します。

 

 

HTML 形式でのエクスポート

 

ConvertTo-Html コマンドレットを使用して、HTML 形式でデータをエクスポートすることもできます。このコマンドはデータを HTML 形式に変換するだけであり、フォーマットされたデータをファイルに書き出すには Set-Content コマンドレットが必要です。

Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | ConvertTo-Html | Set-Content "c:\myPowerCLIReport.html"

フォルダ c:\ に移動してレポートを開きます。

 

 

HTML ページへのフォーマットの追加

 

HTML レポートの外観を向上させるには、次のようにしてスタイルを適用します。

$a = "<style>"
$a = $a + "BODY{background-color:Gainsboro;}"
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:SkyBlue}"
$a = $a + "TD{border-width: 1px;padding: 5px;border-style: solid;border-color: black;background-color:PaleTurquoise}"
$a = $a + "</style>"
Get-VM | Select Name, NumCPU, MemoryMB, PowerState, VMHost | ConvertTo-Html -head $a | Set-Content "c:\myPowerCLIReport.html"

レポートを開くと、見た目が良くなっていることがわかります。

 

 

クラスタのセットアップと構成


以降のいくつかのレッスンでは、架空の企業である Nephosoft の小規模な仮想環境をセットアップします。まずは、クラスタの作成と構成から始めます。次に、ネットワークをセットアップします。ここでは、仮想分散スイッチ (VDS) の作成と構成を行います。最後に、定義済みの仕様に基づいていくつかの仮想マシンを作成し、それらに適切なタグを付けます。その後、タグに基づいて複数の仮想マシンの仕様を一括で更新します。このレッスンでは、最初に PowerCLI を使用してクラスタを作成し、構成する方法について学びます。EVC、HA、DRS の設定をセットアップします。

 


 

クラスタの作成

新しいクラスタを作成するには、New-Cluster コマンドレットを使用します。新しいクラスタの名前と場所を指定する必要があります。

$cluster1 = New-Cluster -Name "Nephosoft Cluster 1" -Location "Datacenter Site A"

 

 

クラスタの Enhanced vMotion Compatibility モードの構成

 

次に、vMotion において CPU の互換性が確保されるようにするため、クラスタの Enhanced vMotion Compatibility モードを構成します。これを行うには、最初にホストでサポートされている EVC モードを確認します。

$evcModes = Get-VMHost | Select MaxEVCMode

変数 $evcModes の内容を調べます。変数名 ($evcModes) のみを入力すると、画面にその値が出力されます。2 台のホストの EVC モードが同じであることがわかります。

注: 出力される EVC モードはこの画面と異なる場合があります。これは、EVC モードはラボ環境で実行されている物理ハードウェアによって異なるためです。

このクラスタに今後追加されるその他すべてのホストがこの EVC モードに対応するようにするため、クラスタにこの EVC モードを設定します。

Set-Cluster $cluster1 -EVCMode $evcModes[0].MaxEVCMode

確認を求められたら、[Yes] をクリックします。

ヒント: 確認を求める画面は対話型の操作には適していますが、スクリプトにおいては、そのスクリプトを停止させてしまうため望ましくありません。コマンドレットに -Confirm:$false パラメータを追加することによって、操作の確認を自動化することができます。

 

 

クラスタでの HA の有効化

 

次に、ホストに障害が発生しても仮想マシンが保護されるように、クラスタで HA を有効にします。

Set-Cluster $cluster1 -HAEnabled:$true -Confirm:$false

 

 

クラスタでの DRS の有効化と設定

 

次に、このクラスタで DRS を有効にして、自動化レベルを 「手動」 に設定します。これにより、仮想マシンの配置と移行についての推奨が生成されます (推奨を取得および適用するには、コマンドレット Get-DrsRecommendation および Apply-DrsRecommendation を使用します)。

Set-Cluster $cluster1 -DRSEnabled:$true -DRSAutomationLevel "Manual" -Confirm:$false

 

クラスタへのホストの移動


このレッスンでは、作成したクラスタにホストを移動する方法について学びます。


 

クラスタへのホストの移動

 

新しいクラスタにホストを移動するには、最初にホストをメンテナンス モードにする必要があります。ホストをメンテナンス モードにするには、まず実行中のすべての仮想マシンをシャットダウンする必要があります。それでは、実行中のすべての仮想マシンを取得し、それらを停止します。

$vmsToStop = Get-VM | Where {$_.Powerstate -eq "PoweredOn"}
Stop-VM $vmsToStop -Confirm:$false

次に、ホストをメンテナンス モードにします。

Get-VMHost | Set-VMHost -State Maintenance

次に、Move-Host コマンドレットを使用してホストをクラスタに移動します。

Get-VMHost | Move-VMHost -Destination $cluster1

最後に、ホストのメンテナンス モードを解除します。

Get-VMHost | Set-VMHost -State Connected

 

仮想分散スイッチのセットアップと構成


このレッスンでは、分散スイッチを作成し、この分散スイッチにホスト ネットワークを移行する方法について学びます。


 

仮想分散スイッチ (VDS) の作成

 

最初に、New-VDSwitch コマンドレットを使用して VDS を作成します。

$vds = New-VDSwitch -Name "Nephosoft VDS" -Location "Datacenter Site A"

変数 $vds の内容を確認することができます。

 

 

VDS への ESX ホストの追加

 

次に、2 台の ESX ホストを分散スイッチに追加します。

Add-VDSwitchVMHost -VDSwitch $vds -VMHost esx-01a.corp.local, esx-02a.corp.local

ESX ホストが分散スイッチに正常に追加されたかどうか確認できます。

Get-VMHost -DistributedSwitch $vds

 

 

分散ポートグループの作成

 

New-VDPortGroup コマンドレットを使用して、管理、ストレージ、vMotion、仮想マシンのネットワーク用のポートグループを作成します。

$pgManagement = New-VDPortGroup $vds -Name "management"
$pgvMotion = New-VDPortGroup $vds -Name "vMotion"
$pgStorage = New-VDPortGroup $vds -Name "storage"
$pgVM = New-VDPortGroup $vds -Name "VM"

ポートグループが正常に作成されたかどうか確認できます。

Get-VDPortGroup -VDSwitch $vds

 

 

VDS へのホスト ネットワークの移行

ホストごとにホスト ネットワークを移行します。最初に、ホストを変数に保存します。

$hosts = Get-VMHost esx-01a.corp.local, esx-02a.corp.local 

次に、PowerShell の foreach ループを使用してそれぞれのネットワークを移行します。ホストごとに、最初に物理 NIC を取得し、続いて管理用、ストレージ用、vMotion 用の VMKernel NIC を取得します。次に、Add-VDSwitchPhysicalNetworkAdapter コマンドレットを使用して、これらの NIC をまとめて移行します。その際に、VirtualNicPortGroup パラメータを使用してそれぞれの VMKernel NIC の分散ポートグループを指定します。

foreach ($vmhost in $hosts) {
  $pNics = Get-VMHostNetworkAdapter -VMHost $vmhost -Physical
  $vNicManagement = Get-VMHostNetworkAdapter -VMHost $vmhost -Name vmk0
  $vNicStorage = Get-VMHostNetworkAdapter -VMHost $vmhost -Name vmk1
  $vNicvMotion = Get-VMHostNetworkAdapter -VMHost $vmhost -Name vmk2
  Add-VDSwitchPhysicalNetworkAdapter -DistributedSwitch $vds -VMHostPhysicalNic $pNics -VMHostVirtualNic $vNicManagement,$vNicStorage,$vNicvMotion -VirtualNicPortGroup $pgManagement,$pgStorage,$pgvMotion -Confirm:$false
}

 

 

VDS への仮想マシン ネットワークの移行

 

最後に、仮想マシン ネットワークも移行します。まず、すべての仮想マシンのネットワーク アダプタを取得します。

$vmNetworkAdapters = Get-VM | Get-NetworkAdapter

次に、これらのネットワーク アダプタを前ので作成した 「VM」 ポートグループに移行します。

Set-NetworkAdapter -NetworkAdapter $vmNetworkAdapters -Portgroup $pgVM -Confirm:$false

これで、すべての仮想マシンのネットワーク トラフィックは VDS を経由することになります。

 

仮想マシンの作成と vMotion によるホスト間での移動


このレッスンでは、仮想マシンを作成し、それをクラスタ内の 2 台のホスト間で vMotion を使用して移動する方法について学びます。


 

仮想マシンをゼロから作成

 

最初に、New-VM コマンドレットを使用して仮想マシンを作成します。仮想マシンの名前、ハード ディスクとメモリのサイズ、作成先のホストとデータストアを指定します。また、前に作成した、分散スイッチに含まれる仮想マシン ネットワーク用のポートグループを指定します。この仮想マシンは NFS データストア上に配置します。このデータストアは 2 台のホスト間で共有されています。

$vm = New-VM -Name 'jsmith' -VMHost esx-01a.corp.local -DiskGB 10 -MemoryMB 512 -Datastore ds-site-a-nfs01 -Portgroup $pgVM 

仮想マシンを起動します。

$vm | Start-VM

 

 

ホスト間での vMotion による移動

 

ワークロードをより均等に分散させるため、仮想マシンをほかのホストに移動します。

Move-VM $vm -Destination esx-02a.corp.local

注: このモジュールがこのセッションで最初に実行するモジュールでない場合は、切断されたデータストアが環境内に存在する可能性があります。この場合、Move-VM が仮想マシンの構成にアクセスできないことを示すエラーが出力されます。この状況が発生したときは、いずれかのホストに NFS データストアを再接続する必要があります。これを行うには、Get-EsxCli コマンドレットを使用します。

esx-02a.corp.local の EsxCli を取得します。

$esxCli = Get-EsxCli -VMhost esx-02a.corp.local

NFS データストアにアクセスできないことを確認します。

$esxCli.storage.nfs.list()
...
Accessible          : false
...

NFS データストアを切断します。

$esxCli.storage.nfs.remove('ds-site-a-nfs01')

NFS データストアを再接続します。

$esxCli.storage.nfs.add('10.10.20.60', $false, $false, '/mnt/NFSA', 'ds-site-a-nfs01')

必要に応じて、esx-01a.corp.local に対しても同じ手順を繰り返します。

ヒント: Move-VM の処理には非常に長い時間がかかる場合があります。そのため、仮想マシンの移動は非同期で実行し、その間に別の作業を行うことをお勧めします。そのためには、Move-VM のパラメータとして -RunAsync を指定します。長い時間がかかるほかの多くのコマンドレットでも、-RunAsync がサポートされています。

 

複数の仮想マシンを作成し適切にタグを付ける


このレッスンでは、PowerCLI を使用して、csv ファイルに保存された仕様に基づいて複数の仮想マシンを作成する方法について学びます。また、この仕様に基づいて仮想マシンにタグ付けします。


 

仕様の確認

 

最初に、仮想マシンの作成で使用する仕様を確認します。デスクトップにあるファイル vmspecs.csv を開きます。それぞれの仮想マシンに、名前、メモリ サイズ (MB)、ディスク サイズ (GB)、部門、タイプ (ユーザー用またはサーバ用の仮想マシン) が指定されています。

 

 

csv ファイルの情報を配列に読み込む

 

このファイルを PowerShell の変数にインポートします。

$spec = Import-Csv 'C:\Users\Administrator\Desktop\vmspecs.csv'

変数 $spec の内容を調べます。オブジェクトの配列 (各仮想マシンが 1 個のオブジェクト) が含まれており、個々のオブジェクトには名前、メモリ サイズ、ディスク サイズ、部門、タイプに対応するプロパティがあります。

 

 

仕様に基づいて仮想マシンを作成

 

仕様に基づいて仮想マシンを作成します。ここでも、PowerShell の foreach ループを使用します。

foreach ($vmSpec in $spec)
{
   New-VM -Name $vmSpec.Name -MemoryMB $vmSpec."Memory size" -DiskGB $vmSpec."Disk size" -VMHost esx-01a.corp.local -Portgroup $pgVM
}

 

 

タグ カテゴリの作成

 

次のタスクは、新しく作成した仮想マシンに適切なタグを付けることです。これを行うにあたって、始めに 「Department」 と 「Type」 の 2 つのタグ カテゴリを作成します。

New-TagCategory -Name Department
New-TagCategory -Name Type 

 

 

仕様に基づいてタグを作成

 

まず、一意の部門名を取得します。

$departmentTagNames = $spec | select -Unique Department

各部門のタグを作成します。

foreach ($departmentTagName in $departmentTagNames) 
{
  New-Tag -Name $departmentTagName.Department -Category Department 
}

仮想マシンのタイプについても同じ処理を行います。

$vmTypes = $spec | select -Unique Type
foreach ($vmType in $vmTypes) 
{
  New-Tag -Name $vmType.Type -Category Type
}

次のコマンドレットを実行して、どのようなタグが定義されたかを確認できます。

Get-Tag

 

 

 

仕様に基づいて仮想マシンにタグを割り当てる

 

タグとタグ カテゴリが正しく定義されたら、次に仮想マシンに対して適切にタグ付けを行います。仮想マシンにタグを割り当てるには、New-TagAssignment を使用します。

foreach ($vmSpec in $spec) 
{
  $departmentTag = Get-Tag $vmSpec.Department
  $typeTag = Get-Tag $vmSpec.Type
  $vm = Get-VM -Name $vmSpec.Name
  New-TagAssignment -Entity $vm -Tag $departmentTag
  New-TagAssignment -Entity $vm -Tag $typeTag
} 

 

タグに基づいて複数の仮想マシンを変更


このレッスンでは、PowerCLI を使用して、タグに基づいて複数の仮想マシンを同時に変更する方法について学びます。


 

タグに基づいて仮想マシンのメモリ容量を更新

 

Nephosoft の販売部門で新しいアプリケーションが導入されることになりました。そのため、ユーザー マシンのメモリを 1 GB に更新する必要があります。すでに仮想マシンに適切にタグ付けを行っているので、仮想マシンを一括で更新するのは簡単です。最初に、販売部門のすべての仮想マシンを取得します。

$salesVMs = Get-VM -Tag sales

次に、すべてのユーザー仮想マシンを取得します。

$userVMs = Get-VM -Tag user

注: 「Get-VM -Tag sales, user」 のコマンドを使用することはできません。なぜなら、このコマンドはすべての販売部門の仮想マシンと、すべてのユーザー仮想マシンを返すからです。ここで必要なのは、販売部門に属し、かつユーザー仮想マシンである仮想マシンです。

両方のタグが割り当てられたすべての仮想マシンを選択します。これを行うには、Powershell のコマンドレット Compare-Object を使用します。

$salesUserVMs = Compare-Object $salesVMs $userVMs -IncludeEqual -ExcludeDifferent -PassThru

仮想マシンのメモリを更新する前に、対象のすべての仮想マシンを停止する必要があります。

$salesUserVMs | where {$_.PowerState -eq "PoweredOn"} | Stop-VM -Confirm:$false                                                 

最後に、Set-VM コマンドレットを使用して仮想マシンのメモリ容量を更新します。

Set-VM $salesUserVMs -MemoryGB 1 -Confirm:$false

 

OVF テンプレートの構成と展開


このレッスンでは、OVF テンプレートを展開するにあたって、OVF テンプレートに構成を適用する方法について学びます。


 

OvfConfiguration オブジェクトの取得

 

OVF の構成は、PowerCLI 内では OvfConfiguration オブジェクトとして表されます。これは、Get-OvfConfiguration コマンドレットを使用して ovf ファイルから取得できます。このコマンドレットを使用するには、OVA のプロパティを解析するために vCenter Server への接続が必要になります。

$linuxMicroConfig = Get-OvfConfiguration -Ovf C:\OVF\linux-micro-01a\linux-micro-01a.ovf 

変数 $linuxMicroConfig 内のオブジェクトを確認してみます。ソースの ovf ファイルの場所を示すプロパティがあります。また、NetworkMapping という、選択した ovf ファイルに対して実際に構成を行うことのできるプロパティがあります。次に NetworkMapping オブジェクトの中身を見ると、VM_Network というプロパティが 1 つ含まれていることがわかります。これは、その ovf テンプレートに対して適用可能な唯一の構成です。

 

 

OVF の構成の更新

適用する構成に一致するようにオブジェクトのプロパティに値を割り当てることによって、取得した構成を更新することができます。ここでは、「VM_Network」 に値を割り当てます。

$linuxMicroConfig.NetworkMapping.VM_Network.Value = 'VM'

 

 

vApp をインポートして構成を適用

 

vApp をインポートするときに、Import-VApp の新しいパラメータである OvfConfiguration を使用して構成を適用することができます。

Import-VApp -Source 'C:\linux-micro-01a\linux-micro-01a.ovf' -OvfConfiguration $linuxMicroConfig -Name 'LinuxMicro' -VMHost 'esx-01a.corp.local'

構成が適用されているかどうか確認します。

$linuxMicroVM = Get-VM 'LinuxMicro' 
$linuxMicroVM | Get-NetworkAdapter 

ご覧のように、正しいネットワーク マッピングが適用された vApp が展開されています。

 

参考資料


このレッスンは情報の提供のみを目的としており、PowerCLI のより高度な機能、初心者にも上級ユーザーにも役立つ参考資料、PowerCLI に関連するほかの実習ラボの情報が記載されています。必要に応じて、自由にこれらをご覧ください。


 

PowerCLI に関連するほかの実習ラボ

HOL-SDC-1602 vSphere with Operations Management - Advanced Topics: モジュール 8 では、vRealize Operations Manager を管理するための PowerCLI の新しいコマンドレットについて説明しています。

HOL-HBD-1683 Managing Your Hybrid Cloud: モジュール 3 では、VMware vSphere PowerCLI を使用した vCloud Air の管理について説明しています。

 

 

vSphere API 全体へのアクセス

PowerCLI には vSphere を管理するための 300 を超えるコマンドレットが用意されていますが、これらによってプラットフォームの機能全体がカバーされるわけではありません。ただし、Get-View コマンドレットを使用するとすべての機能にアクセスすることができます。この特殊なコマンドレットは vSphere API 全体へのアクセス ポイントです。このコマンドレットによって返されるオブジェクトは 「ビュー」 と呼ばれ、vSphere API オブジェクトの正確なコピーを表します。これらのオブジェクトの詳細については、vSphere API のリファレンスを参照してください。

ドキュメント:

http://pubs.vmware.com/vsphere-60/index.jsp

このコマンドレットを使用すると、オブジェクト指向の手法によって API に対して直接スクリプトを記述できます。

 

 

Onyx for the Web Client

Onyx for the Web Client は、vSphere Web Client で実行されたアクションを PowerCLI.Net のコードに変換する Fling です。この Fling は、昨年の 2014 Fling Contest での受賞エントリです。これは Onyx Fling の一種のアップデートであり、同様の機能を Web Client でも利用できるようにするものです。

Onyx for the Web Client Fling は、vSphere Web Client で実行されたアクションを記録し、それを PowerCLI.Net コードに変換する機能を提供します。生成されたコードを使用すると、VMware が API でどのようにアクションを実行するかについて理解できるだけでなく、機能をより適切に定義できます。また、生成されたコードを検索エンジンに入力して、API のドキュメントや vSphere API の該当分野の使用方法に関する情報を検索することもできます。

https://labs.vmware.com/flings/onyx-for-the-web-client(英語)

 

 

PowerCLI の高度なスクリプト作成に役立つ資料

PowerCLI をこれから始めようとしている方や、PowerCLI についてさらに詳しく学ぼうとしている方向けに、いくつかのブログを紹介いたします。これらのブログには、PowerCLI に関する優れた記事やスクリプトが掲載されています。

PowerCLI オフィシャル ブログ (英語): http://blogs.vmware.com/PowerCLI/

Alan Renouf のブログ (英語): http://www.virtu-al.net

Luc Dekens のブログ (英語): http://www.lucd.info

 

Conclusion

Thank you for participating in the VMware Hands-on Labs. Be sure to visit http://hol.vmware.com/ to continue your lab experience online.

Lab SKU: HOL-SDC-1607-SPR

Version: 20160428-050034