Citrix Virtual Apps and Desktopsサービス

Microsoft Azure Resource Manager仮想化環境

Citrix Virtual AppsまたはCitrix Virtual Desktopsサービス環境でMicrosoft Azure Resource Managerを使用して仮想マシンをプロビジョニングする場合は、このガイダンスに従ってください。

ここでは、以下の内容を熟知していることを前提とします:

Machine Creation Servicesを使用している場合、Azure Disk Encryptionはサポートされません。

Azureのオンデマンドプロビジョニング

MCSを使用してAzure Resource Managerでマシンカタログを作成する場合、Azureのオンデマンドプロビジョニング機能は次のことを実現します。

  • ストレージコストを削減する。
  • カタログ作成を高速化する。
  • 仮想マシン(VM)の電源操作を高速化する。

管理者にとっては、ホスト接続とMCSマシンカタログを作成する際に、オンデマンドプロビジョニングとStudioで手順に違いはありません。相違点は、Azureでリソースを作成し管理する方法とそのタイミング、Azure PortalでのVMの可視性です。

Citrix Virtual Apps and DesktopsにAzureのオンデマンドプロビジョニングが導入される前は、MCSでカタログを作成すると、プロビジョニングプロセス中にAzureにVMが作成されていました。

Azureのオンデマンドプロビジョニングでは、VMは、プロビジョニング完了後、Citrix Virtual Apps and Desktopsで電源投入操作が開始されたときにのみ作成されます。Azure Portalでは、実行中のVMのみが表示されます。(Studioでは、VMは実行中かどうかに関係なく表示されます)。

MCSカタログを作成すると、Azure Portalにリソースグループ、ネットワークセキュリティグループ、ストレージアカウント、ネットワークインターフェイス、基本イメージ、IDディスクが表示されます。Azure Portalでは、Citrix Virtual Apps and DesktopsがVMの電源投入操作を開始するまで、そのVMは表示されません。(その後、StudioではVMのステータスがOnに変わります)。

  • プールされたマシンの場合、オペレーティングシステムのディスクとライトバックキャッシュは、VMが存在する場合にのみ存在します。キャッシュにより、マシンを定期的に(たとえば、勤務時間外に)シャットダウンする場合はストレージを大幅に節約できます。
  • 専用マシンでは、VMの初回電源投入時にオペレーティングシステムのディスクが作成されます。このディスクは、マシンIDが削除されるまでストレージに残ります。

Citrix Virtual Apps and DesktopsがVMの電源切断操作を開始すると、そのマシンIDはAzureで削除されます。Azureポータルには表示されなくなります(Studioでは、VMのステータスはオフに変わります)。

オンデマンドプロビジョニングのサポート前に作成されたカタログ Citrix Virtual Apps and DesktopsでAzureのオンデマンドプロビジョニング機能をサポートする(2017年半ば)前に作成されたマシンカタログがある場合、それらのカタログ内のVMは、実行中かどうかにかかわらずAzure Portalに表示されます。MCSがカタログをプロビジョニングする場所以外のリージョンでイメージを変換することはできません。そのイメージはカタログ領域の従来のストレージアカウントのVHDにコピーされます。その後、Managed Disksに変換されて戻されます。

カタログ作成ウィザードの [ストレージとライセンスの種類] ページで、Managed Disksの代わりに従来のストレージアカウントを使用するチェックボックスをオンにすることもできますこのチェックボックスは、Managed DisksをサポートしていないAzureリージョンでプロビジョニングしている場合は無効になっています。

Azure Resource Managerへの接続の作成

接続の作成と管理」では接続を作成するためのウィザードについて説明しています。以下の情報は、Azure Resource Managerの接続に固有の詳細を扱っています。

注意事項:

  • サービスプリンシパルには、サブスクリプションの投稿者の役割が付与されている必要があります。
  • 最初の接続を作成するときに、必要な権限付与を求めるプロンプトがAzureで表示されます。その後の接続でも認証は必要ですが、Azureでは以前の同意が記憶され、このプロンプトは再表示されません。
  • 認証に使用されるアカウントは、サブスクリプションの共同管理者である必要があります。
  • 認証に使用されるアカウントは、サブスクリプションのディレクトリのメンバーである必要があります。注意すべき2つのタイプのアカウントがあります。「職場または学校」と「個人用Microsoftアカウント」です。詳しくは、CTX219211を参照してください。
  • 既存のMicrosoftアカウントは、サブスクリプションのディレクトリのメンバーとして追加することで使用できますが、ユーザーが以前にそのディレクトリのリソースのいずれかへのゲストアクセスを許可されている場合は、複雑になる可能性があります。この場合、必要な権限を与えないディレクトリにプレースホルダーエントリが存在し、エラーが返されることがあります。

    ディレクトリからリソースを削除してこれを修正し、明示的に追加し直します。ただし、そのアカウントがアクセスできる他のリソースに対して意図しない影響を与えるため、このオプションは注意深く実行してください。

  • 特定のアカウントが実際にメンバーであるときにディレクトリゲストとして検出されるという既知の問題があります。これは、通常、古い確立済みのディレクトリアカウントで発生します。回避策:アカウントをディレクトリに追加します。これにより適切なメンバーシップ値が取得されます。
  • リソースグループはリソースのコンテナにすぎず、そのリージョン以外のリージョンのリソースを含む場合があります。これが原因で、リソースグループのリージョンに表示されているリソースを利用できると期待した場合に、混乱を招く可能性があります。
  • ネットワークとサブネットが、必要な数のマシンをホストするのに十分な大きさであることを確認してください。これには多少先見の明が必要ですが、Microsoftが、アドレススペースの容量に関するガイダンスを示して、適切な値を指定できるようサポートします。

Azure Resource Managerへのホスト接続を確立するには、次の2通りの方法があります:

  • Azure Resource Managerを認証してサービスプリンシパルを作成する。
  • 以前作成されたサービスプリンシパルからの詳細を使ってAzure Resource Managerに接続する。

Azure Resource Managerを認証してサービスプリンシパルを作成する

開始前に、以下の点を確認してください:

  • サブスクリプションのAzure Active Directoryテナントにユーザーアカウントがあること。
  • Azure ADのユーザーアカウントが、リソースのプロビジョニングに使用するAzureサブスクリプションの共同管理者でもあること。

接続およびリソースの追加ウィザードで以下を行います:

  1. [接続] ページで、接続の種類として [Microsoft Azure] を選択し、Azure環境を選択します。
  2. [接続の詳細] ページで、AzureサブスクリプションIDと接続の名前を入力します。接続名は1~64文字にし、空白スペースのみにしたり記号(\/;:#.*?=<>|[]{}"'()'))を含めたりすることはできません。サブスクリプションIDおよび接続名を入力すると、[新規作成]ボタンが有効になります。
  3. Azure Active Directoryアカウントのユーザー名とパスワードを入力します。
  4. [サインイン]をクリックします。
  5. [承認] をクリックして、表示された権限をCitrix Virtual Apps and Desktopsに付与します。Citrix Virtual Apps and Desktopsによって、指定されたユーザーの代わりにAzure Resource Managerリソースを管理することを許可するサービスプリンシパルが作成されます。
  6. [承認]をクリックすると、Studioの[接続]ページに戻ります。Azureの認証が完了すると、[新規作成] および [既存を使用] ボタンが [接続済み] に置き換わり、Azureサブスクリプションへの正常な接続を示す緑色のチェックマークが表示されます。
  7. 仮想マシンの作成にどのツールを使用するかを指定し、[次へ]をクリックします。(Azureの認証が完了し、必要な権限の付与を承認しない限り、ウィザードのこのページより先に進むことはできません)。
  8. リソースには領域とネットワークが含まれます。

    • [リージョン] ページで領域を選択します。
    • [ネットワーク]ページで以下の設定を行います。
    • 1~64文字のリソース名を入力して、Studioで領域とネットワークの組み合わせを特定できるようにします。リソース名を空白スペースのみにすることはできず、記号(\/;:#.*?=<>|[]{}"'()')を含めることもできません。
    • 仮想ネットワークとリソースグループのペアを選択します(複数の仮想ネットワークを同じ名前にすることが可能なため、ネットワーク名とリソースグループをペアリングすると一意の組み合わせになります)。前のページで仮想ネットワークのない領域を選択した場合は、前のページに戻って仮想ネットワークのある領域を選択する必要があります。
  9. ウィザードを完了します。

以前作成されたサービスプリンシパルからの詳細を使ってAzure Resource Managerに接続する

手動でサービスプリンシパルを作成するには、Azure Resource Managerサブスクリプションに接続して、後述のPowerShellコマンドレットを使用します。

前提条件:

  • $SubscriptionId: VDAをプロビジョニングするサブスクリプションのAzure Resource Manager SubscriptionID
  • $AADUser: サブスクリプションのADテナントに対するAzure ADユーザーアカウント。$AADUserをサブスクリプションの共同管理者にしてください。
  • $ApplicationName: Azure AD内で作成されるアプリケーションの名前。
  • $ApplicationPassword: アプリケーションのパスワード。このパスワードは、ホスト接続を作成するときのアプリケーションシークレットとして使用します。

サービスプリンシパルを作成するには、次の手順に従ってください。

  1. Azure Resource Managerサブスクリプションに接続します。

    Login-AzureRmAccount

  2. サービスプリンシパルを作成するAzure Resource Managerサブスクリプションを選択します。

    Select-AzureRmSubscription -SubscriptionID $SubscriptionId;

  3. ADテナントでアプリケーションを作成します。

    $AzureADApplication = New-AzureRmADApplication -DisplayName $ApplicationName -HomePage "https://localhost/$ApplicationName" -IdentifierUris https://$ApplicationName -Password $ApplicationPassword

  4. サービスプリンシパルを作成します。

    New-AzureRmADServicePrincipal -ApplicationId $AzureADApplication.ApplicationId

  5. サービスプリンシパルに役割を割り当てます。

    New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.ApplicationId –scope /subscriptions/$SubscriptionId

  6. PowerShellコンソールの出力ウィンドウから、ApplicationIdをメモします。このIDは、ホスト接続を作成するときに使用します。

接続およびリソースの追加ウィザードで以下を行います:

  1. [接続] ページで、接続の種類として [Microsoft Azure] を選択し、Azure環境を選択します。
  2. [接続の詳細] ページで、AzureサブスクリプションIDと接続の名前を入力します。(接続名に指定できる文字数は1~64文字であり、空白スペースのみにしたり、非ASCII文字や特殊文字を含めたりすることはできません。)
  3. [既存を使用]をクリックします。サブスクリプションID、サブスクリプション名、認証URL、管理URL、ストレージのサフィックス、Active Directory IDまたはテナントID、アプリケーションID、および既存のサービスプリンシパルのアプリケーションシークレット。詳細を入力すると、[OK]ボタンが有効になります。[OK] をクリックします。
  4. 仮想マシンの作成にどのツールを使用するかを指定し、[次へ]をクリックします。入力したサービスプリンシパルの詳細は、Azureサブスクリプションへの接続に使用されます([既存を使用]オプションで有効な詳細を入力しない限り、ウィザードの次のページに進めません)。
  5. リソースには領域とネットワークが含まれます。

    • [リージョン] ページで領域を選択します。
    • [ネットワーク] ページで1~64文字のリソース名を入力して、Studioで領域とネットワークの組み合わせを特定できるようにします。リソース名は、空白スペースのみにしたり、非ASCII文字や特殊文字を含めたりすることはできません。
    • 仮想ネットワークとリソースグループのペアを選択します(複数の仮想ネットワークを同じ名前にすることが可能なため、ネットワーク名とリソースグループをペアリングすると一意の組み合わせになります)。前のページで仮想ネットワークのない領域を選択した場合は、前のページに戻って仮想ネットワークのある領域を選択する必要があります。
  6. ウィザードを完了します。

Azure Resource Managerマスターイメージを使用してマシンカタログを作成する

以下の情報は、「マシンカタログの作成」のガイダンスを補完する情報です。

マスターイメージは、マシンカタログの仮想マシンの作成に使用されることになるテンプレートです。マシンカタログを作成する前に、Azure Resource Managerでマスターイメージを作成します。マスターイメージの一般的な情報については、「マシンカタログの作成」を参照してください。

マシンカタログ作成ウィザードで次の操作を行います:

  • [オペレーティングシステム] ページと [マシン管理] ページには、Azure固有の情報は含まれていません。記事「マシンカタログの作成」のガイダンスに従います。

  • [マスターイメージ] ページで、リソースグループを選択してからコンテナー内を移動(ドリルダウン)して、マスターイメージとして使用するAzure VHDに移動します。VHDにはCitrix VDAがインストールされている必要があります。仮想マシンにVHDが接続されている場合、仮想マシンを停止する必要があります。

  • [ストレージとライセンスの種類] ページは、Azure Resource Managerマスターイメージを使用しているときのみ表示されます。

    ストレージの種類(StandardまたはPremium)を選択します。ストレージの種類によって、ウィザードの [仮想マシン] ページで提供されるマシンのサイズが変わります。これらのストレージの種類はどちらも、単一のデータセンター内でデータの複数の同期コピーを作成します。Azureのストレージの種類およびストレージの複製について詳しくは、以下のドキュメントを参照してください:

    既存のWindowsライセンスを使用するかを選択します。WindowsライセンスとWindowsイメージ(Azureプラットフォームのサポートイメージまたはカスタムイメージ)を使用すると、AzureでWindows VMを低コストで実行できます。ライセンスには次の2種類があります:

    注:

    Windowsクライアントライセンスのオプションは、マシンカタログのセットアップ時に選択するオペレーティングシステムによって異なります。[マルチセッションOS] を選択した場合、オプションは [自分のWindows 10ライセンスを使用する] が表示されます。[単一セッションOS] を選択した場合、オプションは [自分のWindowsクライアントライセンスを使用する] が表示されます。

    プロビジョニングされた仮想マシンがライセンス特典を利用していることを確認するには、次のPowerShellコマンドを実行します:Get-AzM -ResourceGroup MyResourceGroup -Name MyVM

    または、Get-Provscheme PowerShell SDKを使用して確認することもできます。例:Get-Provscheme -ProvisioningSchemeName "My Azure Catalog"。このコマンドレットについて詳しくは、https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Get-ProvScheme/を参照してください。

    デフォルトでは、カタログ内のVMにはAzure Managed Disksが使用されます。代わりに通常のストレージアカウントを使用する場合は、ページの下部にあるチェックボックスをオンにします。

  • [仮想マシン] ページで、作成する仮想マシンの数を指定します。少なくとも1つは指定してください。マシンのサイズを選択します。カタログを作成した後で、マシンのサイズを変更することはできません。後で他のサイズに変更したくなった場合は、カタログを削除してから、同じマスターイメージを使用したカタログを作成し、希望のマシンサイズを指定します。

仮想マシンの名前に、ASCII以外の文字や特殊文字を含めることはできません。

  • (MCSを使用する場合)[リソースグループ] ページで、リソースグループを作成するか、既存のグループを使用するかを選択します。
    • リソースグループを作成する場合は、[次へ] をクリックします。
    • 既存のリソースグループを使用する場合は、[使用可能なプロビジョニングリソースグループ]ボックスの一覧からグループを選択します。注意事項:カタログで作成しているマシンを収容するのに十分なグループを選択してください。少なすぎると、Studioにメッセージが表示されます。後でカタログにさらにVMを追加する予定がある場合は、必要最小限よりも多く選択しておくことをお勧めします。カタログが作成された後、カタログにリソースグループをさらに追加することはできません。

    詳しくは、Azureリソースグループを参照してください。

  • [ネットワークカード]ページ、[コンピューターアカウント]ページ、および[概要]ページには、Azure固有の情報は含まれていません。記事「マシンカタログの作成」のガイダンスに従います。

ウィザードを完了します。

Azureリソースグループ

Azureプロビジョニングのリソースグループは、アプリケーションとデスクトップをユーザーに提供するVMをプロビジョニングする方法を提供します。StudioでMCSマシンカタログを作成するときに既存の空のAzureリソースグループを追加するか、新しいリソースグループを作成することができます。Azureリソースグループについて詳しくは、「Microsoft社のドキュメント」を参照してください。

Azureリソースグループの使用

Azureリソースグループごとの仮想マシン、管理対象ディスク、スナップショット、およびイメージの数に制限はありません。(AzureリソースグループごとにVMは240、管理対象ディスクは800という数の制限はなくなりました。)

  • フルスコープのサービスプリンシパルを使用してマシンカタログを作成する場合、MCSは1つのAzureリソースグループを作成し、カタログの存続期間全体にわたってこのAzureリソースグループのみを使用します。
  • スコープの狭いサービスプリンシパルを使用してマシンカタログを作成する場合、カタログの存続期間中、事前に作成された空のAzureリソースグループを1つだけ指定する必要があります。

要件

  • Citrix Virtual Apps and DesktopsサービスでMCSカタログごとにリソースグループを作成する場合は、ホスト接続に関連付けられているAzureサービスプリンシパルに、リソースグループの作成と削除ができる権限が必要です。Citrix Virtual Apps and Desktopsサービスで既存の空のリソースグループを使用する場合は、ホスト接続に関連付けられているAzureサービスプリンシパルに、それらの空のリソースグループでの投稿者の権限が必要です。
  • [新規作成] オプションを使用してStudioでホスト接続を作成すると、作成したサービスプリンシパルにサブスクリプションスコープの投稿権限が設定されます。または、[既存を使用]オプションを使用して接続を作成し、既存のサブスクリプションスコープのサービスプリンシパルの詳細を指定することもできます。[新規作成] オプションを使用してStudioでサービスプリンシパルを作成する場合、新しいリソースグループの作成と削除、または既存の空のリソースグループへのプロビジョニングに必要な権限が設定されます。
  • スコープが狭いサービスプリンシパルは、PowerShellを使用して作成する必要があります。また、スコープが狭いサービスプリンシパルを使用するときは、PowerShellまたはAzure Portalを使用して、MCSがVMをプロビジョニングする各カタログのために、ホスト接続と同じリージョンに空のリソースグループを作成する必要があります。手順については、ブログ記事(https://www.citrix.com/blogs/2016/11/09/azure-role-based-access-control-in-xenapp-xendesktop/)を参照してください。

ホスト接続にスコープが狭いサービスプリンシパルを使用していて、カタログ作成ウィザードの [マスターイメージ] ページにマスターイメージリソースグループが表示されない場合は、使用しているスコープが狭いサービスプリンシパルに、マスターイメージリソースグループを一覧表示するためのMicrosoft.Resources/subscriptions/resourceGroups/read権限がないことが原因と考えられます。ウィザードを閉じ、この権限を設定してサービスプリンシパルを更新してから(手順については、ブログの投稿を参照)、ウィザードを再起動します。Azureでの更新がStudioに反映されるまで最大10分かかることがあります。

Studioでマシンカタログのリソースグループを構成する

カタログ作成ウィザードの [リソースグループ] ページでは、リソースグループを作成するか、既存のグループを使用するかを選択できます。「Azure Resource Managerマスターイメージを使用してマシンカタログを作成する」を参照してください。

マシンカタログを削除したときのリソースグループへの影響:マシンカタログを作成するときにCitrix Virtual Apps and Desktopsサービスでリソースグループを作成した場合は、その後でそのカタログを削除すると、それらのリソースグループとリソースグループ内のその他のリソースも削除されます。

マシンカタログを作成するときに既存のリソースグループを使用した場合は、その後でそのカタログを削除すると、それらのリソースグループのすべてのリソースは削除されますが、リソースグループは削除されません。

考慮事項と制限事項

既存のリソースグループを使用する場合、カタログ作成ウィザードの[リソースグループ]ページの使用可能なリソースグループの一覧は自動更新されません。したがって、このウィザードページを開き、Azureでリソースグループの権限を作成または追加した場合、その変更はウィザードの一覧に反映されません。最新の変更を表示するには、ウィザードの [マシン管理] ページに戻り、ホスト接続に関連するリソースを再選択します。または、ウィザードを閉じて再起動します。Azureでの変更がStudioに反映されるまで最大10分かかることがあります。

接続で、さまざまなリージョンの空のリソースグループにアクセスできるサービスプリンシパルが使用されている場合、それらはすべて利用可能な一覧に表示されます。マシンカタログを作成するリージョンと同じリージョンのリソースグループを選択してください。

トラブルシューティング

  • カタログ作成ウィザードの[リソースグループ]ページの一覧にリソースグループが表示されません。

    サービスプリンシパルで、一覧に表示するリソースグループに適切な権限が適用されていることが必要です。「要件」を参照してください。

詳細情報の表示