PowerCLI コマンドレットを使用して、ESXi ホストを vCenter Server ターゲット上のさまざまなオブジェクトに関連付けるルールを作成して、vSphere Auto Deploy を管理できます。

PowerCLI コマンドレットを使用して、ホストをイメージ プロファイル、ホスト プロファイル、カスタム スクリプト、および vCenter Server ターゲット上の場所に関連付けるルールを作成して、vSphere Auto Deploy を管理できます。また、ルールのコンプライアンスをテストし、コンプライアンスの問題を修復して、ホストのアップデートを実行できます。

PowerCLI コマンドレットを使用した vSphere Auto Deploy の管理

PowerCLI コマンドレットを使用して、ホストをイメージ プロファイル、ホスト プロファイル、カスタム スクリプト、および vCenter Server ターゲット上の場所に関連付けるルールを作成して、vSphere Auto Deploy を管理できます。また、ルールのコンプライアンスをテストし、コンプライアンスの問題を修復して、ホストのアップデートを実行できます。

PowerCLIを使用した vSphere Auto Deploy プロセスの概要

vSphere Auto Deploy の使用を開始するには、vSphere Auto Deploy のしくみについて学ぶこと、vSphere Auto Deploy サーバをインストールすること、PowerCLIをインストールすること、ホストをプロビジョニングするPowerCLI ルールを記述すること、ユーザーが指定するイメージ プロファイルで起動されるホストをパワーオンすることが必要です。イメージ プロファイル、ホスト プロファイル、および vCenter Serverの場所をカスタマイズできます。

初めて vSphere Auto Deploy 環境を設定する際に役立つ順を追った説明については、vSphere Auto Deploy の vSphere PowerCLI シナリオを参照してください。

vSphere Auto Deploy を使用して環境内にホストを正しくプロビジョニングするには、次の手順に従います。

  1. vCenter Serverをデプロイします。

    vSphere Auto Deploy サーバが含まれています。

  2. vSphere Auto Deploy サービスの起動タイプを構成します。

    vSphere Auto Deploy 用にシステムを準備を参照してください。

  3. vSphere Auto Deploy と vSphere ESXi Image Builder コマンドレットを含む PowerCLIをインストールします。

    vSphere ESXi Image Builderの構成vSphere Auto Deploy コマンドレットの使用、およびVMware.Image Builder コマンドレットの使用を参照してください。

  4. ホストにデプロイする VIB を含むイメージ プロファイルを探します。
    • 多くの場合、必要なソフトウェアを含むデポを PowerCLIセッションに追加してから、それらのデポのいずれかからイメージ プロファイルを選択します。
    • カスタムのイメージ プロファイルを作成する場合は、vSphere ESXi Image Builder コマンドレットを使用して既存のイメージ プロファイルのクローンを作成し、そのクローンにカスタム VIB を追加します。カスタムのイメージ プロファイルを PowerCLIセッションに追加します。

    vSphere ESXi Image Builder をカスタマイズ用に使用する必要があるのは、VIB の追加または削除が必要な場合のみです。ほとんどの場合は、VMware がイメージ プロファイルをホストするデポを PowerCLIセッションに URL として追加できます。

  5. PowerCLIセッションを開始し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
  6. New-DeployRulePowerCLI コマンドレットを使用して、1 つのホスト、パターンによって指定される複数のホスト、またはすべてのホストにイメージ プロファイルを割り当てるルールを記述します。
    New-DeployRule -Name "testrule" -Item image-profile -AllHosts

    イメージ プロファイルのホストへの割り当てを参照してください。

    注: vSphere Auto Deploy は、MAC アドレスと IP アドレスのマッピングが DHCP に固定されている(DHCP 予約とも呼ばれる)ホストのプロビジョニング用に最適化されています。固定 IP アドレスを使用する場合は、ホスト プロファイルを設定して、ホストをカスタマイズするためのプロンプトを表示する必要があります。詳細については、『 vSphere のホスト プロファイル』ドキュメントを参照してください。
  7. プロビジョニングするホストをパワーオンします。
  8. プロビジョニングしたホストを、ホスト プロファイルのリファレンス ホストとして設定します。

    リファレンス ホストの Syslog 設定、ファイアウォール設定、ストレージ、ネットワークなどを指定できます。

  9. プロビジョニングしたホストを、ホスト プロファイルのリファレンス ホストとして設定します。

    リファレンス ホストの Syslog 設定、ファイアウォール設定、ストレージ、ネットワークなどを指定できます。vSphere Auto Deploy のリファレンス ホストの設定を参照してください。

  10. リファレンス ホストのホスト プロファイルを作成してエクスポートします。

    ホスト プロファイル ドキュメントを参照してください。

  11. ホスト プロファイルを使用して複数のホストをプロビジョニングするには、Copy-DeployRuleコマンドレットを使用して、以前に作成されたルールを編集します。

    イメージ プロファイルだけでなく、ホスト プロファイル、vCenter Serverの場所、カスタム スクリプト バンドルも割り当てるようにルールを変更します。

    Copy-DeployRule -DeployRule "testrule" -ReplaceItem my_host_profile_from_reference_host,my_target_cluster
                   -ReplacePattern  "ipv4=192.XXX.1.10-192.XXX.1.20"

    ここで my_host_profile_from_reference_host はリファレンス ホストのプロファイルの名前、my_target_cluster はターゲット クラスタの名前です。

  12. テストと修復のコンプライアンス処理を実行し、ホストを修正します。

    ルールのコンプライアンスのテストおよび修復を参照してください。

  13. プロビジョニングしたホストが、次の要件を満たしていることを確認します。
    • 各ホストが vCenter Server システムに接続されている。
    • ホストがメンテナンス モードではない。
    • ホストにコンプライアンスのエラーがない。
    • ユーザー入力が必要なホスト プロファイルを持つ各ホストに、最新のカスタマイズ情報が提供されている

    すべてのホストが要件を満たすまで、ホストの関連付けとコンプライアンスの問題を修正して、ホストを再起動します。

起動プロセスの概要、最初の起動と 2 回目以降の起動の違い、およびホストのカスタマイズを使用した場合の概要については、を参照してください。

vSphere Auto Deploy コマンドレットの使用

vSphere Auto Deploy コマンドレットは、Microsoft PowerShell コマンドレットとして実装され、PowerCLI に含まれます。vSphere Auto Deploy コマンドレットのユーザーは、すべての PowerCLI 機能を利用できます。

PowerShell に精通しているユーザーは、ほかの PowerShell コマンドレットと同じように vSphere Auto Deploy コマンドレットを使用することができます。PowerShell および PowerCLI に慣れていない場合は、次のヒントが役立つ場合があります。

コマンドレット、パラメータ、およびパラメータの値は、PowerCLI のシェルに入力できます。

  • Get-Help cmdlet_name を実行すると、任意のコマンドレットのヘルプを表示することができます。
  • PowerShell は大文字と小文字を区別しないことに注意してください。
  • コマンドレット名やパラメータ名には、タブ補完を使用します。
  • Format-List または Format-Table (短縮形式は fl または ft)を使用して、任意の変数およびコマンドレットの出力の形式を整えることができます。詳細を確認する場合は、Get-Help Format-List コマンドレットを実行してください。

名前によるパラメータの指定

パラメータは多くの場合名前で渡すことができ、スペースや特殊文字を含むパラメータの値は二重引用符で囲むことができます。
 Copy-DeployRule -DeployRule testrule -ReplaceItem MyNewProfile

vCenter Server のインストールとセットアップドキュメントのほとんどの例では、パラメータは名前で渡されます。

オブジェクトによるパラメータの指定

スクリプト処理や自動化を実施する場合は、パラメータをオブジェクトとして渡すことができます。パラメータをオブジェクトとして渡すことは、複数のオブジェクトを返す cmdlet や、単一のオブジェクトを返すコマンドレットで便利です。次の例を想定します。

  1. ホストのルール セットのコンプライアンス情報をカプセル化するオブジェクトを、変数にバインドします。
    $tr = Test-DeployRuleSetCompliance MyEsxi42
  2. オブジェクトの itemlist プロパティを表示して、ルール セットの内容と現在ホストが使用している内容の違いを確認します。
    $tr.itemlist
  3. Repair-DeployRuleSetCompliance コマンドレットを変数とともに使用して、変更されたルール セットを使用するようにホストを修正します。
    Repair-DeployRuleSetCompliance $tr

この例では、次にホストを起動するときにホストが修復されます。

vSphere Auto Deploy PowerCLI コマンドレットの概要

PowerCLI に含まれる一連の PowerCLI コマンドレットを使用して、イメージ プロファイルおよびホスト プロファイルをホストに割り当てるルールを指定します。

PowerCLI に慣れていない場合は、PowerCLI のマニュアルを読み、vSphere Auto Deploy コマンドレットの使用を参照してください。PowerShell プロンプトで任意のコマンドのヘルプを表示できます。

  • 基本的なヘルプ: Get-Help cmdlet_name
  • 詳細なヘルプ:Get-Help cmdlet_name -Detailed
注: vSphere Auto Deploy コマンドレットを実行する場合は、コマンド ラインですべてのパラメータを指定して実行します。対話モードでのパラメータの提供は推奨されません。
表 1. ルール エンジンの PowerCLI コマンドレット
コマンド 説明
Get-DeployCommand vSphere Auto Deploy コマンドレットのリストを返します。
New-DeployRule 指定された項目およびパターンで新しいルールを作成します。
Set-DeployRule 指定された項目およびパターンで既存のルールを更新します。ルール セットに含まれるルールは更新できません。
Get-DeployRule 指定された名前のルールを取得します。
Copy-DeployRule 既存のルールのクローンを作成して更新します。
Add-DeployRule 作業ルール セットに 1 つ以上のルールを追加し、デフォルトで、アクティブなルール セットにも追加します。作業ルール セットにのみルールを追加するには、NoActivate パラメータを使用します。
Remove-DeployRule 作業ルール セットおよびアクティブなルール セットから、1 つ以上のルールを除外します。ルールを完全に削除するには、-Delete パラメータとともにこのコマンドを実行します。
Set-DeployRuleset 作業ルール セット内のルールのリストを明示的に設定します。
Get-DeployRuleset 現在の作業ルール セットまたは現在アクティブなルール セットを取得します。
Switch-ActiveDeployRuleset すべての新しい要求がこのルール セットで評価されるようにするために、ルール セットをアクティブ化します。
Get-VMHostMatchingRules パターンに一致するルールを取得します。たとえば、1 つまたは複数のホストに適用されるすべてのルールを取得できます。デバッグの前に、この コマンドレット を使用します。
Test-DeployRulesetCompliance 指定されたホストに関連付けられた項目が、アクティブなルール セットに準拠しているかどうかを確認します。
Repair-DeployRulesetCompliance この cmdlet は、Test-DeployRulesetCompliance の出力に基づいて、イメージ プロファイル、ホスト プロファイル、および vCenter Server インベントリ内の各ホストの場所を更新します。この cmdlet は、イメージ プロファイルの適用、ホスト プロファイルの適用、または、vCenter Server システム上の事前に指定されたフォルダまたはクラスタへのホストの移動を行う場合があります。
Apply-EsxImageProfile 指定されたイメージ プロファイルを指定されたホストに関連付けます。
Get-VMHostImageProfile 指定されたホストによって使用されているイメージ プロファイルを取得します。このコマンドレットは、vSphere ESXi Image Builder の Get-EsxImageProfile コマンドレットとは異なります。
Repair-DeployImageCache このコマンドレットは、vSphere Auto Deploy のイメージ キャッシュが誤って削除された場合にのみ使用します。
Get-VMHostAttributes vSphere Auto Deploy サーバがルールを評価する際に使用されたホストの属性を取得します。
Get-DeployMachineIdentity vCenter Server 内の ESXi ホストを物理マシンに論理的にリンクするときに vSphere Auto Deploy が使用する文字列の値を返します。
Set-DeployMachineIdentity vCenter Server データベース内のホスト オブジェクトを、物理マシンに論理的にリンクします。この cmdlet は、ルールを指定せずにホストを追加する場合に使用します。
Get-DeployOption vSphere Auto Deploy のグローバル構成オプションを取得します。このコマンドレットは現在、vlan-id オプションをサポートしており、vSphere Auto Deploy でプロビジョニングされたホストの ESXi 管理ネットワークでデフォルトの VLAN ID を指定します。vSphere Auto Deploy は、ホスト プロファイルなしでホストが起動した場合のみ、この値を使用します。
Set-DeployOption グローバル構成オプションの値を設定します。ESXi 管理ネットワークのデフォルトの VLAN ID の設定では、vlan-id オプションは現在サポートされています。
Add-ProxyServer プロキシ サーバを vSphere Auto Deploy データベースに追加します。IPv4 アドレスまたは IPv6 アドレスを指定するための -Address パラメータを使用して、コマンドを実行します。アドレスにはポート番号を含めることができます。
List-ProxyServer 現在 vSphere Auto Deploy に登録されているプロキシ サーバを一覧表示します。
Delete-ProxyServer vSphere Auto Deploy に登録されているプロキシ サーバのリストから 1 台以上のプロキシ サーバを削除します。プロキシ サーバのリストから -id パラメータを使用してコマンドを実行したり、-Address パラメータを使用して、削除するプロキシ サーバの IPv4 アドレスまたは IPv6 アドレスを指定することによってコマンドを実行できます。
Add-ScriptBundle 1 つ以上のスクリプト バンドルを vSphere Auto Deploy サーバに追加します。
Get-ScriptBundle vSphere Auto Deploy サーバで使用可能なスクリプト バンドルおよびそれらに含まれるスクリプトのリストを取得します。
Remove-ScriptBundle vSphere Auto Deploy からスクリプト バンドルを削除します。vSphere バージョン 6.7 以降で使用できます。
Get-CustomCertificate AutoDeploy にアップロードされたカスタム ホスト証明書を取得します。-HostId [MAC_Address | BIOS_UUID] パラメータを指定してコマンドを実行する必要があります。カスタム証明書を初めて追加するとき、このコマンドレットによって返されて表示される証明書はありません。
List-CustomCertificates Auto Deploy によって使用されるすべてのカスタム ホスト証明書に関する情報を取得します。リストには、証明書の名前、Host IDAssociated Host Name の詳細が表示されます。これには、Auto Deploy サーバの vCenter Server の名前が反映されています。
Add-CustomCertificate カスタム証明書を VMware Endpoint Certificate Store に追加し、ESXi ホストに関連付けます。ホストが再起動すると証明書が有効になります。Get-CustomCertificate コマンドレットを使用して、カスタム ホスト証明書キーを取得できます。-HostId [MAC_Address | BIOS_UUID] パラメータを指定してコマンドを実行することにより、-Key [file:///path/to/key.key]-Cert [file:///path/to/cert.crt] を指定して証明書をホストに関連付けることができます。このコマンドレットを使用するには、vCenter Server のルート フォルダに対する AutoDeploy.Rule.Create 権限が必要です。
Remove-CustomCertificate 一連のカスタム ホスト証明書を Auto Deploy から削除します。証明書エントリがデータベースから削除され、証明書ファイルがファイルストアから削除されます。すでにカスタム証明書を使用して起動しているホストは、新しい証明書を受け取るために再起動する必要があります。-Cert パラメータまたは -HostId パラメータの少なくとも 1 つを指定する必要があります。このコマンドレットを使用するには、vCenter Server のルート フォルダに対する AutoDeploy.Rule.Create 権限が必要です。

イメージ プロファイルのホストへの割り当て

ホストをプロビジョニングする前に、vSphere Auto Deploy を使用してプロビジョニングする各ホストにイメージ プロファイルを割り当てるルールを作成する必要があります。

vSphere Auto Deploy の拡張ルールは、ESXCLI プラグイン パス、jumpstart プラグイン パスなど、事前定義された特定の場所のファイルのみを CommunitySupported レベルの VIB に含めることを強制します。別の場所にある VIB をイメージ プロファイルに追加すると、警告が表示されます。force オプションを使用して警告をオーバーライドできます。

ルールに違反する CommunitySupported レベルの VIB を含むイメージ プロファイルで New-DeployRule コマンドレットを呼び出す場合は、イメージ プロファイルを追加する前に $DeployNoSignatureCheck = $true を設定します。これを設定すると、システムは署名の検証を無視し、拡張ルールのチェックを実行しません。

注: CommunitySupported レベルの VIB を含むイメージ プロファイルは、本番システムではサポートされません。

手順

  1. PowerCLI セッションで Connect-VIServer コマンドレットを実行し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
    Connect-VIServer ipv4_or_ipv6_address
    この コマンドレットはサーバ証明書の警告を返す場合があります。本番環境では、サーバ証明書の警告が表示されないことを確認します。開発環境では、この警告は無視できます。
  2. パブリックなソフトウェア デポの場所を特定するか、vSphere ESXi Image Builder を使用してカスタムのイメージ プロファイルを定義します。
  3. Add-EsxSoftwareDepot を実行して、イメージ プロファイルが含まれるソフトウェア デポを PowerCLI セッションに追加します。
    デポのタイプ コマンドレット
    リモート デポ Add-EsxSoftwareDepot depot_url を実行します。
    ZIP ファイル
    1. ZIP ファイルをローカル ファイル パスにダウンロードします。
    2. Add-EsxSoftwareDepot C:\file_path\my_offline_depot.zip を実行します。
  4. Get-EsxImageProfile cmdlet を実行して、デポ内の使用するイメージ プロファイルを探します。
    デフォルトでは、 ESXi デポには、VMware Tools を含んだ 1 つの基本イメージ プロファイル (名前に文字列 standard を含む) と、VMware Tools を含まない 1 つの基本イメージ プロファイルが格納されています。
  5. IP アドレスの範囲などの特定の属性を持つホストに、イメージ プロファイルを割り当てるためのルールを定義します。
    New-DeployRule -Name "testrule" -Item "My Profile25" -Pattern "vendor=Acme,Zven", "ipv4=192.XXX.1.10-192.XXX.1.20"

    名前にスペースが含まれる場合は二重引用符の使用が必須ですが、それ以外の場合は任意です。項目をすべてのホストに適用するには、パターンの代わりに -AllHosts を指定します。

    コマンドレットは testrule という名前のルールを作成します。このルールは、My Profile25 という名前のイメージ プロファイルを、Acme または Zven というベンダーの、指定された範囲内の IP アドレスを持つすべてのホストに割り当てます。
  6. ルール セットにルールを追加します。
    Add-DeployRule testrule
    デフォルトでは、ルールは作業ルール セットとアクティブなルール セットの両方に追加されます。 NoActivate パラメータを使用すると、作業ルール セットはアクティブなルール セットになりません。

結果

ホストが iPXE から起動する場合、ホストはマシンの属性をコンソールにレポートします。デプロイのルールを記述する際には、同じ形式の属性を使用します。

******************************************************************
* Booting through VMware AutoDeploy...
*
* Machine attributes:
* . asset=No Asset Tag
* . domain=vmware.com
* . hostname=myhost.mycompany.com
* . ipv4=XX.XX.XXX.XXX
* . mac=XX:Xa:Xb:Xc:Xx:XX
* . model=MyVendorModel
* . oemstring=Product ID: XXXXXX-XXX
* . serial=XX XX XX XX XX XX...
* . uuid=XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX
* . vendor=MyVendor
******************************************************************

次のタスク

  • vSphere Auto Deploy ですでにプロビジョニングされたホストについては、コンプライアンス テストおよび修復を実施して、新しいイメージ プロファイルでそれらのホストがプロビジョニングされるようにします。ルールのコンプライアンスのテストおよび修復を参照してください。
  • プロビジョニングされていないホストを起動し、新しいイメージ プロファイルを使用してそれらのホストがプロビジョニングされるようにします。

ルールの記述とホストへのホスト プロファイルの割り当て

vSphere Auto Deploy は、1 台以上の ESXi ホストにホスト プロファイルを割り当てることができます。

多くの場合、ホスト プロファイルを明示的に指定する代わりに、ホストをクラスタに割り当てます。ホストは、割り当てられたクラスタのホスト プロファイルを使用します。

前提条件

ホスト プロファイルには、ストレージ構成、ネットワーク構成、またはホストのその他の特性に関する情報が含まれる場合があります。クラスタにホストを追加する場合は、そのクラスタのホスト プロファイルが使用されます。
  • PowerCLI および前提となるすべてのソフトウェアをインストールします。詳細については、vCenter Server Installation and Setupを参照してください。
  • 使用するホスト プロファイルをエクスポートします。

手順

  1. PowerCLI セッションで Connect-VIServer コマンドレットを実行し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
    Connect-VIServer ipv4_or_ipv6_address
    この コマンドレットはサーバ証明書の警告を返す場合があります。本番環境では、サーバ証明書の警告が表示されないことを確認します。開発環境では、この警告は無視できます。
  2. vSphere Client を使用して、使用する設定内容をホストに設定し、そのホストでホスト プロファイルを作成します。
  3. Get-VMhostProfile PowerCLI コマンドレットを実行して、ホスト プロファイルの作成元となる ESXi ホストを渡すことで、ホスト プロファイルの名前を探します。
  4. PowerCLI プロンプトで、特定の属性(IP アドレスの範囲など)を備えたホストをホスト プロファイルに割り当てるルールを定義します。
    New-DeployRule -Name "testrule2" -Item my_host_profile -Pattern "vendor=Acme,Zven", "ipv4=192.XXX.1.10-192.XXX.1.20"
    指定された属性を持つすべてのホストに、指定された項目が割り当てられます。この例は、testrule2 という名前のルールを指定します。このルールは、指定された範囲内の IP アドレスを持ち、メーカーが Acme または Zven のすべてのホストに、指定されたホスト プロファイル my_host_profile を割り当てます。
  5. ルール セットにルールを追加します。
    Add-DeployRule testrule2
    デフォルトでは、作業ルール セットがアクティブなルール セットになります。また、ルール セットへのすべての変更は、ルールを追加した時にアクティブになります。 NoActivate パラメータを使用すると、作業ルール セットはアクティブなルール セットになりません。

次のタスク

  • vSphere Auto Deploy によってプロビジョニング済みのホストを新しいホスト プロファイルに割り当てるには、それらのホスト上でコンプライアンス テストおよび修復処理を実行します。詳細については、ルールのコンプライアンスのテストおよび修復を参照してください。
  • プロビジョニングされていないホストをパワーオンし、ホスト プロファイルを使用してそれらのホストをプロビジョニングします。

ルールの記述とフォルダまたはクラスタへのホストの割り当て

vSphere Auto Deploy は、ホストをフォルダまたはクラスタに割り当てることができます。vSphere Auto Deploy は、ホストの起動時にそのホストをvCenter Server上の指定された場所に追加します。クラスタに割り当てられたホストは、クラスタのホスト プロファイルを継承します。

前提条件

  • システムの準備および Auto Deploy サーバのインストール詳細については、vSphere Auto Deploy 用にシステムを準備を参照してください。
  • 選択したフォルダがデータセンター内またはクラスタ内に存在することを確認します。ホストはスタンドアロンの最上位のフォルダに割り当てることはできません。

手順

  1. PowerCLI セッションで Connect-VIServer コマンドレットを実行し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
    Connect-VIServer ipv4_or_ipv6_address
    この コマンドレットはサーバ証明書の警告を返す場合があります。本番環境では、サーバ証明書の警告が表示されないことを確認します。開発環境では、この警告は無視できます。
  2. IP アドレスの範囲などの特定の属性を持つホストを、フォルダまたはクラスタに割り当てるルールを定義します。
    New-DeployRule -Name testrule3 -Item "my folder"	-Pattern "vendor=Acme,Zven", "ipv4=192.XXX.1.10-192.XXX.1.20"
    この例では、フォルダを名前で渡します。これ以外に、 Get-FolderGet-Cluster、または Get-Datacenter コマンドレットで取得するフォルダ、クラスタ、またはデータセンター オブジェクトを渡すこともできます。
  3. ルール セットにルールを追加します。
    Add-DeployRule testrule3
    デフォルトでは、作業ルール セットがアクティブなルール セットになります。また、ルール セットへのすべての変更は、ルールを追加した時にアクティブになります。 NoActivateパラメータを使用すると、作業ルール セットはアクティブなルール セットになりません。

次のタスク

  • vSphere Auto Deploy によってすでにプロビジョニングされているホストを新しいフォルダまたはクラスタの場所に割り当てるには、コンプライアンスのテストと修復を実行します。ルールのコンプライアンスのテストおよび修復を参照してください。
  • プロビジョニングされていないホストを起動し、指定された vCenter Serverの場所にそれらのホストを追加します。

カスタム スクリプトの実行によるステートレス システムの構成

vSphere Auto Deploy を使用して、カスタム スクリプトを vSphere Auto Deploy ルールに関連付けることで、1 台以上のホストを構成できます。

スクリプトは、ホストの最初の ESXi の起動ワークフロー後に、アルファベット順に実行されます。

前提条件

  • vSphere Auto Deploy ルールに関連付けるスクリプト バンドルの形式が .tgz で、最大サイズが 10 MB、Python または BusyBox ash スクリプト言語で記述されていることを確認します。

手順

  1. PowerCLI セッションで Connect-VIServer コマンドレットを実行し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
    Connect-VIServer ipv4_or_ipv6_address
    この コマンドレットはサーバ証明書の警告を返す場合があります。本番環境では、サーバ証明書の警告が表示されないことを確認します。開発環境では、この警告は無視できます。
  2. Add-ScriptBundle コマンドレットを実行して、必要なスクリプトを含むスクリプト バンドルを vSphere Auto Deploy インベントリに追加します。
    Add-ScriptBundle c:/temp/MyScriptBundle.tgz
    .tgz 拡張子を持たないスクリプト バンドルの名前は、スクリプト バンドル項目の名前識別子またはオブジェクトです。 Add-ScriptBundle コマンドレットと -Update パラメータを使用して、既存のスクリプト バンドルを更新できます。
  3. (オプション) Get-ScriptBundle コマンドレットを実行して、スクリプト バンドルが vSphere Auto Deploy インベントリに追加されていることを確認します。
  4. IP アドレスの範囲などの特定の属性持つホストを、スクリプト バンドルに割り当てるためのルールを定義します。
    New-DeployRule -Name "testrule4" -Item "MyScriptBundle" -Pattern "vendor=Acme,Zven", "ipv4=192.XXX.1.10-192.XXX.1.20"

    名前にスペースが含まれる場合は二重引用符の使用が必須ですが、それ以外の場合は任意です。項目をすべてのホストに適用するには、パターンの代わりに -AllHosts を指定します。

    testrule4 という名前のルールを作成します。このルールは、My Script Bundle という名前のスクリプト バンドルを、Acme または Zven というベンダーの、指定された範囲内の IP アドレスを持つすべてのホストに割り当てます。スクリプト バンドルの名前識別子、または Get-ScriptBundle コマンドレットによって返されたオブジェクトを使用して、ルールに関連付けるスクリプト バンドルを識別できます。
  5. ルール セットにルールを追加します。
    Add-DeployRule testrule4
    デフォルトでは、ルールは作業ルール セットとアクティブなルール セットの両方に追加されます。 NoActivate パラメータを使用すると、作業ルール セットはアクティブなルール セットになりません。

次のタスク

  • vSphere Auto Deploy ですでにプロビジョニングされたホストについては、コンプライアンス テストおよび修復を実施して、新しいスクリプトでそれらのホストがプロビジョニングされるようにします。ルールのコンプライアンスのテストおよび修復を参照してください。
  • プロビジョニングされていないホストを起動し、新しいスクリプトを使用してそれらのホストがプロビジョニングされるようにします。

ルールのコンプライアンスのテストおよび修復

vSphere Auto Deploy ルール セットの変更は自動的に更新されないため、新しいルールまたは変更されたルールのコンプライアンスと修復を適宜テストします。

前提条件

vSphere Auto Deploy のルール セットにルールを追加したり、1 つ以上のルールを変更したりする場合、ホストは自動的にアップデートされません。ユーザーがルールのコンプライアンスのテストと修復を行った場合にのみ、vSphere Auto Deploy は新しいルールを適用します。
  • システムの準備および Auto Deploy サーバのインストール詳細については、vSphere Auto Deploy 用にシステムを準備を参照してください。
  • インフラストラクチャに vSphere Auto Deploy を使用してプロビジョニングされた ESXi ホストが 1 つ以上含まれており、PowerCLI をインストールしたホストがそれらの ESXi ホストにアクセスできることを確認します。

手順

  1. PowerCLI セッションで Connect-VIServer コマンドレットを実行し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
    Connect-VIServer ipv4_or_ipv6_address
    この コマンドレットはサーバ証明書の警告を返す場合があります。本番環境では、サーバ証明書の警告が表示されないことを確認します。開発環境では、この警告は無視できます。
  2. PowerCLI を使用して、現在使用可能な vSphere Auto Deploy ルールを確認します。
    Get-DeployRule
    システムは、該当するルールと、それに関連する項目およびパターンを返します。
  3. 使用可能なルールの 1 つを変更します。

    たとえば、イメージ プロファイルおよびルールの名前を変更することができます。

    Copy-DeployRule -DeployRule testrule -ReplaceItem MyNewProfile 
    			 
    すでにアクティブなルール セットに追加されているルールは編集できません。代わりに、ルールをコピーして、変更する項目またはパターンを置き換えることはできます。
  4. ルール セットのコンプライアンスをテストするホストにアクセスできることを確認します。
    Get-VMHost -Name MyEsxi42
  5. そのホストのルール セットのコンプライアンスをテストし、後で使用するために、戻り値を変数にバインドするコマンドレットを実行します。
    $tr = Test-DeployRuleSetCompliance MyEsxi42
  6. ルール セットの内容と、ホストの構成の間の差異を確認します。
    $tr.itemlist
    新しいルール セットのコンプライアンスをテストするホストが、アクティブなルール セットに準拠している場合は、現在のアイテムと予測されるアイテムの表が返されます。
    CurrentItem                             ExpectedItem
    -----------                             ------------   
    My Profile 25                           MyNewProfile
    
  7. ホストの次の起動時に、変更されたルール セットを使用するように、ホストを修復します。
    Repair-DeployRuleSetCompliance $tr

次のタスク

変更したルールでインベントリの場所が指定されている場合、コンプライアンスの修復時に変更内容が即座に反映されます。それ以外のすべての変更内容は、ホストを再起動することで、vSphere Auto Deploy によって新しいルールが適用され、ルール セットとホスト間のコンプライアンスが達成されます。

vSphere Auto Deploy へのキャッシング プロキシ サーバ のアドレスの登録

多数のステートレス ホストを同時に起動すると、vSphere Auto Deploy サーバに大きな負荷がかかります。vSphere Auto Deploy サーバと、vSphere Auto Deploy に登録する 1 つ以上のプロキシ サーバ間で要求のロード バランシングを行うことができます。

前提条件

手順

  1. PowerCLI セッションで Connect-VIServer コマンドレットを実行し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
    Connect-VIServer ipv4_or_ipv6_address
    この コマンドレットはサーバ証明書の警告を返す場合があります。本番環境では、サーバ証明書の警告が表示されないことを確認します。開発環境では、この警告は無視できます。
  2. Add-ProxyServer コマンドレットを実行して、vSphere Auto Deploy にキャッシング プロキシ サーバのアドレスを登録します。
    Add-ProxyServer -Address 'https://proxy_server_ip_address:port_number'
    複数のプロキシ サーバを登録する場合は、コマンドレットを複数回実行します。アドレスにはポート番号を含めることができます。
  3. (オプション) List-ProxyServer コマンドレットを実行して、vSphere Auto Deploy にキャッシング プロキシ サーバが登録されていることを確認します。