Citrix Virtual Apps and Desktops

VMware仮想化環境

VMwareを使用して仮想マシンを提供する場合は、このトピックのガイダンスに従ってください。

vCenter Serverおよび必要な管理ツールをインストールします(vSphere vCenterのリンクモードはサポートされません。)

MCSを使用する場合は、vCenter Serverのデータストアブラウザー機能は無効にしないでください(https://kb.vmware.com/s/article/2101567を参照)。この機能を無効にすると、MCSが正しく動作しなくなります。

Citrix Provisioning(旧称Provisioning Services)およびMachine Creation Servicesを使用して、次のものをプロビジョニングできます:

  • サポートされるデスクトップまたはサーバーOSのVMのレガシーBIOS。
  • サポートされるデスクトップまたはサーバーOSのVMのUEFI(セキュアブートを含む)。

必要な権限

この記事にリストされている権限の組み合わせまたはそのすべてを使用して、VMwareユーザーアカウントおよび1つまたは複数のVMwareの役割を作成します。役割の作成は、さまざまなCitrix DaaS処理をいつでも要求可能にする上で、ユーザーの権限に必要となるレベルまで細分化して行ってください。いつでもユーザー固有の権限を付与できるようにするために、データセンター以上のレベルで [Propagate to children] オプションを選択して、ユーザーを各役割に関連付けます。ただし、StorageProfile権限と特定のTags権限については、子に伝達せずに、ルートvCenter Serverレベルで権限を適用します。各表の注記を参照してください。

以下の表に、Citrix Virtual Apps and Desktopsの処理と最低限必要なVMware権限の間の対応関係を示します。

注:

権限リストの表示名、特にユーザーインターフェイスは、vSphereのバージョンによって異なります。たとえば、vSphere 6.7のユーザーインターフェイス上の権限は、[メモリの変更]および [設定の変更] であり、このページの「必要な権限」で記載されている [設定] および [メモリ] とは異なっています。

接続およびリソースの追加

SDK ユーザーインターフェイス
System.Anonymous、System.Read、およびSystem.View 自動的に追加されます。組み込みの読み取り専用の役割を使用できます。

電源管理

SDK ユーザーインターフェイス
VirtualMachine.Interact.PowerOff [Virtual machine]>[Interaction]>[Power Off]
VirtualMachine.Interact.PowerOn [Virtual machine]>[Interaction]>[Power On]
VirtualMachine.Interact.Reset [Virtual machine]>[Interaction]>[Reset]
VirtualMachine.Interact.Suspend [Virtual machine]>[Interaction]>[Suspend]
Datastore.Browse [Datastore ]>[Browse datastore]

マシンのプロビジョニング(Machine Creation Services)

MCSを使用してマシンをプロビジョニングするには、次の権限が必須です:

SDK ユーザーインターフェイス
Datastore.AllocateSpace [Datastore]>[Allocate space]
Datastore.Browse [Datastore ]>[Browse datastore]
Datastore.FileManagement [Datastore]>[Low level file operations]
Network.Assign [Network]>[Assign network]
Resource.AssignVMToPool [Resource]>[Assign virtual machine to resource pool]
VirtualMachine.Config.AddExistingDisk [Virtual machine]>[Configuration ]>[Add existing disk]
VirtualMachine.Config.AddNewDisk [Virtual machine]>[Configuration ]>[Add new disk]
Virtual machine.Config.Add or remove device [Virtual machine]>[Configuration]>[Add or remove device]
VirtualMachine.Config.AdvancedConfig [Virtual machine]>[Configuration ]>[Advanced]
VirtualMachine.Config.RemoveDisk [Virtual machine]>[Configuration]>[Remove disk]
VirtualMachine.Config.CPUCount [Virtual machine]>[Configuration ]>[Change CPU count]
VirtualMachine.Config.Memory [Virtual machine]>[Configuration ]>[Change memory]
VirtualMachine.Config.Settings [Virtual machine]>[Configuration ]>[Change settings]
VirtualMachine.Interact.PowerOff [Virtual machine]>[Interaction]>[Power Off]
VirtualMachine.Interact.PowerOn [Virtual machine]>[Interaction]>[Power On]
VirtualMachine.Interact.Reset [Virtual machine]>[Interaction]>[Reset]
VirtualMachine.Interact.Suspend [Virtual machine]>[Interaction]>[Suspend]
VirtualMachine.Inventory.CreateFromExisting [Virtual machine]>[Inventory]>[Create from existing]
VirtualMachine.Inventory.Create [Virtual machine]>[Inventory]>[Create new]
VirtualMachine.Inventory.Delete [Virtual machine]>[Inventory]>[Remove]
VirtualMachine.Provisioning.Clone [Virtual machine]>[Provisioning]>[Clone virtual machine]
VirtualMachine.State.CreateSnapshot vSphere 5.0, Update 2、vSphere 5.1, Update 1、およびvSphere 6.x, Update 1:[Virtual machine]>[State]>[Create snapshot]。vSphere 5.5:[Virtual machine]>[Snapshot management]>[Create snapshot]

イメージの更新とロールバック

SDK ユーザーインターフェイス
Datastore.AllocateSpace [Datastore]>[Allocate space]
Datastore.Browse [Datastore ]>[Browse datastore]
Datastore.FileManagement [Datastore]>[Low level file operations]
Network.Assign [Network]>[Assign network]
Resource.AssignVMToPool [Resource]>[Assign virtual machine to resource pool]
VirtualMachine.Config.AddExistingDisk [Virtual machine]>[Configuration ]>[Add existing disk]
VirtualMachine.Config.AddNewDisk [Virtual machine]>[Configuration ]>[Add new disk]
VirtualMachine.Config.AdvancedConfig [Virtual machine]>[Configuration ]>[Advanced]
VirtualMachine.Config.RemoveDisk [Virtual machine]>[Configuration]>[Remove disk]
VirtualMachine.Interact.PowerOff [Virtual machine]>[Interaction]>[Power Off]
VirtualMachine.Interact.PowerOn [Virtual machine]>[Interaction]>[Power On]
VirtualMachine.Interact.Reset [Virtual machine]>[Interaction]>[Reset]
VirtualMachine.Inventory.CreateFromExisting [Virtual machine]>[Inventory]>[Create from existing]
VirtualMachine.Inventory.Create [Virtual machine]>[Inventory]>[Create new]
VirtualMachine.Inventory.Delete [Virtual machine]>[Inventory]>[Remove]
VirtualMachine.Provisioning.Clone [Virtual machine]>[Provisioning]>[Clone virtual machine]

プロビジョニングされたマシンの削除

SDK ユーザーインターフェイス
Datastore.Browse [Datastore ]>[Browse datastore]
Datastore.FileManagement [Datastore]>[Low level file operations]
VirtualMachine.Config.RemoveDisk [Virtual machine]>[Configuration]>[Remove disk]
VirtualMachine.Interact.PowerOff [Virtual machine]>[Interaction]>[Power Off]
VirtualMachine.Inventory.Delete [Virtual machine]>[Inventory]>[Remove]

ストレージプロファイル(vSAN)

vSANデータストアでのカタログ作成中にストレージポリシーを表示、作成、または削除するには、次の権限が必須です:

SDK ユーザーインターフェイス
StorageProfile.Update Profile-Driven Storage > Profile-Driven Storageの更新。vSphere 8の場合:仮想マシンストレージポリシー > 仮想マシンストレージポリシーの更新
StorageProfile.View Profile-Driven Storage > Profile-Driven Storageの表示。vSphere 8の場合:仮想マシンストレージポリシー > 仮想マシンストレージポリシーの表示

注:

子に伝達せずに、ルートvCenter Serverレベルでストレージプロファイル権限を適用します。

タグとカスタム属性

タグとカスタム属性を使用すると、vSphereインベントリで作成されたVMにメタデータをつなげて、これらのオブジェクトを検索およびフィルタリングしやすくすることができます。タグまたはカテゴリを作成、編集、割り当て、および削除するには、次の権限が必須です:

SDK ユーザーインターフェイス
InventoryService.Tagging.CreateTag vSphereのタグ付け > vSphereタグの作成
InventoryService.Tagging.CreateCategory vSphereのタグ付け > vSphereタグカテゴリの作成
InventoryService.Tagging.EditTag vSphereのタグ付け > vSphereタグの編集
InventoryService.Tagging.EditCategory vSphereのタグ付け > vSphereタグカテゴリの編集
InventoryService.Tagging.DeleteTag vSphereのタグ付け > vSphereタグの削除
InventoryService.Tagging.DeleteCategory vSphereのタグ付け > vSphereタグカテゴリの削除
InventoryService.Tagging.AttachTag vSphereのタグ付け > vSphereタグの割り当てまたは割り当て解除
InventoryService.Tagging.ObjectAttachable vSphereのタグ付け > オブジェクトへのvSphereタグの割り当てまたは割り当て解除
Global.ManageCustomFields [Global ]>[Manage custom attributes]
Global.SetCustomField [Global ]>[Set custom attribute]

注:

  • MCSは、マシンカタログを作成するときに、ターゲットVMに特別な名前タグを付けます。これらのタグは、マスターイメージをMCS作成VMと区別し、イメージの準備にMCS作成VMを使用できないようにします。vCenterのXdProvisioned属性の値で違いを識別できます。MCSでVMを作成する場合、この属性はTrueに設定されます。
  • 子に伝達せずに、ルートvCenter ServerレベルでInventoryService.Tagging.AttachTag権限を適用します。

暗号化操作

暗号化操作権限は、誰がどのタイプのオブジェクトに対してどの種類の暗号化操作を実行できるかを制御します。vSphere Native Key ProviderはCryptographer.*権限を使用します。暗号化操作には、次の最低限の権限が必要です:

注:

これらの権限は、vTPMが組み込まれたVMでMCSマシンカタログを作成するために必要です。

SDK ユーザーインターフェイス
Cryptographer.Access [Privileges]>[All Privileges]>[Cryptographic operations]>[Direct Access]
Cryptographer.AddDisk [Privileges]>[All Privileges]>[Cryptographic operations]>[Add disk]
Cryptographer.Clone [Privileges]>[All Privileges]>[Cryptographic operations]>[Clone]
Cryptographer.Encrypt [Privileges]>[All Privileges]>[Cryptographic operations]>[Encrypt]
Cryptographer.EncryptNew [Privileges]>[All Privileges]>[Cryptographic operations]>[Encrypt new]
Cryptographer.Decrypt [Privileges]>[All Privileges]>[Cryptographic operations]>[Decrypt]
Cryptographer.Migrate [Privileges]>[All Privileges]>[Cryptographic operations]>[Clone]
Cryptographer.ReadKeyServersInfo [Privileges]>[All Privileges]>[Cryptographic operations]>[ Read KMS information]

マシンのプロビジョニング(Citrix Provisioning)

Citrix Provisioningコンソールで、Citrix Virtual Apps and Desktopsインストールウィザード、およびデバイスのエクスポートウィザードを使用して仮想マシンをプロビジョニングするには、テンプレートを複製および展開する権限が必要です。ホスト接続を作成するときに権限を設定します。マシンのプロビジョニング(Machine Creation Services)のすべての権限と、以下が必要です。

SDK ユーザーインターフェイス
VirtualMachine.Config.AddRemoveDevice [Virtual machine]>[Configuration]>[Add or remove device]
VirtualMachine.Config.CPUCount [仮想マシン]>[構成]>[CPUカウントの変更]
VirtualMachine.Config.Memory [Virtual machine]>[Configuration]>[Memory]
VirtualMachine.Config.Settings [Virtual machine]>[Configuration]>[Settings]
VirtualMachine.Provisioning.CloneTemplate [Virtual machine]>[Provisioning]>[Clone template]
VirtualMachine.Provisioning.DeployTemplate [Virtual machine]>[Provisioning]>[Deploy template]
VApp.Export [vApp]>[Export]

注:

VApp.Exportは、マシンプロファイルを使用してMCSマシンカタログを作成するために必要です。

証明書の取得とインポート

vSphere通信を保護するため、CitrixではHTTPではなくHTTPSを使用することをお勧めします。

HTTPSを使用するにはデジタル証明書が必要です。組織のセキュリティポリシーの要件を満たす証明書機関から発行されたデジタル証明書を使用してください。

証明機関のデジタル証明書を使用できない場合は、VMwareによりインストールされる自己署名証明書を使用することもできます。この方法は、組織のセキュリティポリシーで許可されている場合にのみ使用してください。VMware vCenterの証明書を各Delivery Controllerに追加します。

  1. vCenter Serverを実行しているコンピューターの完全修飾ドメイン名(FQDN)を、そのサーバーのホストファイル(%SystemRoot%/WINDOWS/system32/Drivers/etc/)に追加します。この手順は、vCenter Serverを実行しているコンピューターのFQDNがドメイン名システムに登録されていない場合にのみ必要です。

  2. 以下の3つの内いずれかの方法で、vCenterの証明書を入手します:

    vCenterサーバーからコピーする。

    1. vCenterサーバー上のrui.crtファイルを、Delivery Controllerからアクセス可能な場所にコピーします。
    2. Controllerで、エクスポートした証明書の保存先に移動し、rui.crtファイルを開きます。

    Webブラウザーでダウンロードする。Internet Explorerを使用している場合は、Internet Explorerを右クリックして [管理者として実行] を選択します。

    1. Webブラウザーを開き、vCenterサーバー(https://server1.domain1.com)など)への保護された接続を確立します。
    2. セキュリティに関する警告を受け入れます。
    3. 証明書のエラーが表示されるアドレスバーをクリックします。
    4. 証明書を表示して、[詳細]タブをクリックします。
    5. [ファイルへコピー] を選択して、任意のファイル名を指定してCER形式でエクスポートします。
    6. エクスポートした証明書を保存します。
    7. エクスポートした証明書のCERファイルを開きます。

    管理者として実行するInternet Explorerから直接インポートします。

    • Webブラウザーを開き、vCenterサーバー(https://server1.domain1.com)など)への保護された接続を確立します。
    • セキュリティに関する警告を受け入れます。
    • 証明書のエラーが表示されるアドレスバーをクリックします。
    • 証明書を表示します。
  3. 各Controller上の証明書ストアに証明書をインポートします。

    1. [証明書のインストール] オプションをクリックして [ローカルマシン] を選択し、[次へ]をクリックします。
    2. [証明書をすべて次のストアに配置する] を選択して、[参照]をクリックします。[信頼されたユーザー] を選択し、[OK] をクリックします。[次へ][完了] の順にクリックします。

    インストール後にvSphereサーバーの名前を変更する場合は、サーバー上で新しい自己署名証明書を作成してから、新しい証明書をインポートする必要があります。

構成に関する考慮事項

マスター仮想マシンの作成:

管理者は、マシンカタログのユーザーデスクトップおよびアプリケーションを提供するためのマスター仮想マシンを作成します。ハイパーバイザーで、次の作業を行います。

  1. マスター仮想マシンにVDAをインストールします。このとき、デスクトップを最適化するオプションを選択すると、パフォーマンスが向上します。
  2. バックアップのため、マスター仮想マシンのスナップショットを作成します。

接続の作成:

接続の作成ウィザードで、以下を実行します。

  • 接続の種類として[VMware]を選択します。
  • vCenter SDKのアクセスポイントのアドレスを指定します。
  • 仮想マシンを作成する権限を持つ、既存のVMwareユーザーアカウントの資格情報を指定します。ユーザー名を「domain/username」形式で指定します。

VMware SSLの拇印機能

VMware SSL拇印機能により、VMware vSphereハイパーバイザーへのホスト接続を手動で作成する必要がなくなります。接続を作成する前に、サイトのDelivery Controllerとハイパーバイザーの証明書との信頼関係を手動で作成する必要がなくなりました。

VMware SSL拇印機能は、信頼されていない証明書の拇印をサイトデータベースに保存します。この構成により、Controllerではなくても、Citrix Virtual Apps and Desktopsでハイパーバイザーを信頼できるものとして継続的に識別できます。

StudioでvSphereのホスト接続を確立する場合、接続しようとしているマシンの証明書をダイアログボックスで見ることができます。その証明書を見て、信頼するかどうかを選択できます。

OSディスクのリセット

PowerShellコマンドReset-ProvVMDiskを使用して、MCSで作成されたマシンカタログ内の永続的なVMのOSディスクをリセットします。

PowerShellコマンドを正常に実行するには、次のことを確認してください:

  • ターゲットVMが永続的なMCSカタログにある。
  • MCSマシンカタログが正常に機能している。
  • これは、プロビジョニングスキームとホストが存在し、プロビジョニングスキームに正しいエントリがあることを意味します。
  • VMware vCenterがメンテナンスモードではない。
  • ターゲットVMの電源がオフで、メンテナンスモードになっている。

OSディスクをリセットするには、以下の手順を実行します:

  1. PowerShellウィンドウを開きます。
  2. asnp citrix*を実行し、Citrix固有のPowerShellモジュールをロードします。
  3. 次のいずれかの方法で、PowerShellコマンドReset-ProvVMDiskを実行します:

    • VMの一覧をコンマ区切りの一覧として指定し、各VMでリセットを実行します:

       Reset-ProvVMDisk -ProvisioningSchemeName "xxx" -VMName ("abc","def") -OS
       <!--NeedCopy-->
      
    • Get-ProvVMコマンドからの出力としてVMの一覧を指定し、各VMでリセットを実行します:

       (Get-ProvVM -ProvisioningSchemeName "xxx") | Reset-ProvVMDisk "abc" -OS
       <!--NeedCopy-->
      
    • 単一のVMを名前で指定します:

       Reset-ProvVMDisk -ProvisioningSchemeName "xxx" -VMName "abc" -OS
       <!--NeedCopy-->
      
    • Get-ProvVMコマンドによって返されるVMごとに個別のリセットタスクを作成します。これは、VMごとのハイパーバイザー機能チェック、接続チェックなど、各タスクが同じ冗長チェックを実行するため、効率が低下します。

       Get-ProvVM -ProvisioningSchemeName "xxx" | Reset-ProvVMDisk -ProvisioningSchemeName "xxx" -OS
       <!--NeedCopy-->
      
  4. リセットするVMを一覧表示する確認プロンプトと、回復不能な操作であるという警告メッセージが表示されます。回答を入力せずにEnterキーを押すと、それ以上のアクションは実行されません。

    注:

    リセットプロセスが完了するまで、VMのメンテナンスモードを解除したり、電源を入れたりしないでください。

    PowerShellコマンド-WhatIfを実行して、実行するアクションを出力し、アクションを実行せずに終了できます。

    次のいずれかの方法を使用して、確認プロンプトを回避することもできます:

    • -Forceパラメーターを指定します:

       Reset-ProvVMDisk -ProvisioningSchemeName "xxx" -VMName "abc" -OS -Force
       <!--NeedCopy-->
      
    • -Confirm:$falseパラメーターを指定します:

       Reset-ProvVMDisk -ProvisioningSchemeName "xxx" -VMName "abc" -OS -Confirm:$false
       <!--NeedCopy-->
      
    • Reset-ProvVMDiskを実行する前に、$ConfirmPreferenceNoneに変更します:

       PS C:\Windows\system32> $ConfirmPreference='None'
       PS C:\Windows\system32> $ConfirmPreference
       None
       PS C:\Windows\system32> Reset-ProvVMDisk -ProvisioningSchemeName "xxx" -VMName "abc" -OS
       <!--NeedCopy-->
      
  5. Reset-ProvVMDiskコマンドで返されたタスクのステータスを取得するには、Get-ProvTaskを実行します。

マシンカタログのフォルダーIDの更新

Set-ProvSchemeコマンドのカスタムプロパティでFolderIdを指定することにより、MCSマシンカタログのフォルダーIDを更新できます。フォルダーIDの更新後に作成された仮想マシンは、この新しいフォルダーIDの下に作成されます。このプロパティがCustomPropertiesで指定されていない場合、仮想マシンはマスターイメージが配置されているフォルダーの下に作成されます。

マシンカタログのフォルダーIDを更新するには、次の手順を実行します。

  1. Webブラウザーを開き、vSphere Web ClientのURLを入力します。

  2. 資格情報を入力し、[Login] をクリックします。

  3. vSphere Web Clientで仮想マシンを配置するフォルダーを作成します。

  4. PowerShellウィンドウを開きます。

  5. asnp citrix*を実行し、Citrix固有のPowerShellモジュールをロードします。

  6. Set-ProvSchemeCustomPropertiesFolderIDを指定します。この例では、フォルダーIDの値はgroup-v2406です。

    Set-ProvScheme -ProvisioningSchemeUid "50bb319c-2e83-4a37-9ea1-94f630687372" -CustomProperties "<CustomProperties xmlns=""http://schemas.citrix.com/2014/xd/machinecreation"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""><Property xsi:type=""StringProperty"" Name=""FolderId"" Value=""group-v2406"" /></CustomProperties>"
    <!--NeedCopy-->
    
  7. Studioを使用して仮想マシンをマシンカタログに追加します。
  8. vSphere Web Clientで新しい仮想マシンを確認します。新しい仮想マシンは、新しいフォルダーの下に作成されます。

vSphereでフォルダーIDを確認

任意のESXiまたはvCenterサーバーシステムで管理対象オブジェクトブラウザー(MOB)にアクセスして、VMのフォルダーIDを見つけます。

MOBは、すべてのESX/ESXiおよびvCenterサーバーシステムに組み込まれている、Webベースのサーバーアプリケーションです。このvSphereユーティリティを使用すると、VM、データストア、リソースプールなどのオブジェクトに関する詳細情報を表示できます。

  1. Webブラウザーを開き、http://x.x.x.x/mobと入力します。ここでx.x.x.xは、vCenter Serverの、またはESX/ESXiホストのIPアドレスです。例:https://10.60.4.70/mob
  2. MOBのホームページで、プロパティcontentの値をクリックします。
  3. rootFolderの値をクリックします。
  4. childEntityの値をクリックします。
  5. vmFolderの値をクリックします。
  6. フォルダーIDは、childEntityの値で確認できます。

トラブルシューティング

カタログの作成に失敗した場合は、CTX294978を参照してください。

VMware仮想化環境