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 を使用して環境内にホストを正しくプロビジョニングするには、次の手順に従います。
- vCenter Serverをデプロイします。
vSphere Auto Deploy サーバが含まれています。
- vSphere Auto Deploy サービスの起動タイプを構成します。
vSphere Auto Deploy 用にシステムを準備を参照してください。
- vSphere Auto Deploy と vSphere ESXi Image Builder コマンドレットを含む PowerCLIをインストールします。
vSphere ESXi Image Builderの構成、vSphere Auto Deploy コマンドレットの使用、およびVMware.Image Builder コマンドレットの使用を参照してください。
- ホストにデプロイする VIB を含むイメージ プロファイルを探します。
- 多くの場合、必要なソフトウェアを含むデポを PowerCLIセッションに追加してから、それらのデポのいずれかからイメージ プロファイルを選択します。
- カスタムのイメージ プロファイルを作成する場合は、vSphere ESXi Image Builder コマンドレットを使用して既存のイメージ プロファイルのクローンを作成し、そのクローンにカスタム VIB を追加します。カスタムのイメージ プロファイルを PowerCLIセッションに追加します。
vSphere ESXi Image Builder をカスタマイズ用に使用する必要があるのは、VIB の追加または削除が必要な場合のみです。ほとんどの場合は、VMware がイメージ プロファイルをホストするデポを PowerCLIセッションに URL として追加できます。
- PowerCLIセッションを開始し、vSphere Auto Deploy が登録される vCenter Server システムに接続します。
- New-DeployRulePowerCLI コマンドレットを使用して、1 つのホスト、パターンによって指定される複数のホスト、またはすべてのホストにイメージ プロファイルを割り当てるルールを記述します。
New-DeployRule -Name "testrule" -Item image-profile -AllHosts
イメージ プロファイルのホストへの割り当てを参照してください。
注: vSphere Auto Deploy は、MAC アドレスと IP アドレスのマッピングが DHCP に固定されている(DHCP 予約とも呼ばれる)ホストのプロビジョニング用に最適化されています。固定 IP アドレスを使用する場合は、ホスト プロファイルを設定して、ホストをカスタマイズするためのプロンプトを表示する必要があります。詳細については、『 vSphere のホスト プロファイル』ドキュメントを参照してください。 - プロビジョニングするホストをパワーオンします。
- プロビジョニングしたホストを、ホスト プロファイルのリファレンス ホストとして設定します。
リファレンス ホストの Syslog 設定、ファイアウォール設定、ストレージ、ネットワークなどを指定できます。
- プロビジョニングしたホストを、ホスト プロファイルのリファレンス ホストとして設定します。
リファレンス ホストの Syslog 設定、ファイアウォール設定、ストレージ、ネットワークなどを指定できます。vSphere Auto Deploy のリファレンス ホストの設定を参照してください。
- リファレンス ホストのホスト プロファイルを作成してエクスポートします。
ホスト プロファイル ドキュメントを参照してください。
- ホスト プロファイルを使用して複数のホストをプロビジョニングするには、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 はターゲット クラスタの名前です。
- テストと修復のコンプライアンス処理を実行し、ホストを修正します。
ルールのコンプライアンスのテストおよび修復を参照してください。
- プロビジョニングしたホストが、次の要件を満たしていることを確認します。
- 各ホストが 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 や、単一のオブジェクトを返すコマンドレットで便利です。次の例を想定します。
- ホストのルール セットのコンプライアンス情報をカプセル化するオブジェクトを、変数にバインドします。
$tr = Test-DeployRuleSetCompliance MyEsxi42
- オブジェクトの itemlist プロパティを表示して、ルール セットの内容と現在ホストが使用している内容の違いを確認します。
$tr.itemlist
- 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
コマンド | 説明 |
---|---|
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 ID、Associated 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
を設定します。これを設定すると、システムは署名の検証を無視し、拡張ルールのチェックを実行しません。
手順
結果
ホストが 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を参照してください。
- 使用するホスト プロファイルをエクスポートします。
手順
次のタスク
- vSphere Auto Deploy によってプロビジョニング済みのホストを新しいホスト プロファイルに割り当てるには、それらのホスト上でコンプライアンス テストおよび修復処理を実行します。詳細については、ルールのコンプライアンスのテストおよび修復を参照してください。
- プロビジョニングされていないホストをパワーオンし、ホスト プロファイルを使用してそれらのホストをプロビジョニングします。
ルールの記述とフォルダまたはクラスタへのホストの割り当て
vSphere Auto Deploy は、ホストをフォルダまたはクラスタに割り当てることができます。vSphere Auto Deploy は、ホストの起動時にそのホストをvCenter Server上の指定された場所に追加します。クラスタに割り当てられたホストは、クラスタのホスト プロファイルを継承します。
前提条件
- システムの準備および Auto Deploy サーバのインストール詳細については、vSphere Auto Deploy 用にシステムを準備を参照してください。
- 選択したフォルダがデータセンター内またはクラスタ内に存在することを確認します。ホストはスタンドアロンの最上位のフォルダに割り当てることはできません。
手順
次のタスク
- vSphere Auto Deploy によってすでにプロビジョニングされているホストを新しいフォルダまたはクラスタの場所に割り当てるには、コンプライアンスのテストと修復を実行します。ルールのコンプライアンスのテストおよび修復を参照してください。
- プロビジョニングされていないホストを起動し、指定された vCenter Serverの場所にそれらのホストを追加します。
カスタム スクリプトの実行によるステートレス システムの構成
vSphere Auto Deploy を使用して、カスタム スクリプトを vSphere Auto Deploy ルールに関連付けることで、1 台以上のホストを構成できます。
スクリプトは、ホストの最初の ESXi の起動ワークフロー後に、アルファベット順に実行されます。
前提条件
- vSphere Auto Deploy ルールに関連付けるスクリプト バンドルの形式が .tgz で、最大サイズが 10 MB、Python または BusyBox ash スクリプト言語で記述されていることを確認します。
手順
次のタスク
- vSphere Auto Deploy ですでにプロビジョニングされたホストについては、コンプライアンス テストおよび修復を実施して、新しいスクリプトでそれらのホストがプロビジョニングされるようにします。ルールのコンプライアンスのテストおよび修復を参照してください。
- プロビジョニングされていないホストを起動し、新しいスクリプトを使用してそれらのホストがプロビジョニングされるようにします。
ルールのコンプライアンスのテストおよび修復
vSphere Auto Deploy ルール セットの変更は自動的に更新されないため、新しいルールまたは変更されたルールのコンプライアンスと修復を適宜テストします。
前提条件
- システムの準備および Auto Deploy サーバのインストール詳細については、vSphere Auto Deploy 用にシステムを準備を参照してください。
- インフラストラクチャに vSphere Auto Deploy を使用してプロビジョニングされた ESXi ホストが 1 つ以上含まれており、PowerCLI をインストールしたホストがそれらの ESXi ホストにアクセスできることを確認します。
手順
次のタスク
変更したルールでインベントリの場所が指定されている場合、コンプライアンスの修復時に変更内容が即座に反映されます。それ以外のすべての変更内容は、ホストを再起動することで、vSphere Auto Deploy によって新しいルールが適用され、ルール セットとホスト間のコンプライアンスが達成されます。
vSphere Auto Deploy へのキャッシング プロキシ サーバ のアドレスの登録
多数のステートレス ホストを同時に起動すると、vSphere Auto Deploy サーバに大きな負荷がかかります。vSphere Auto Deploy サーバと、vSphere Auto Deploy に登録する 1 つ以上のプロキシ サーバ間で要求のロード バランシングを行うことができます。