Google Cloud Platform(GCP)でMachine Creation Services(MCS)を使用したLinux VDAの作成
MCSを使用してGCP上にLinux VDAを作成するには、次の手順を実行します:
手順3:Citrix StudioでGCPへのホスト接続を作成する
手順1:GCP上にLinux VMを作成する
手順1a: Google Cloudコンソールで、[Compute Engine]>[VM instances] に移動します。
手順1b: [VM instances]ページで、[CREATE INSTANCE] をクリックしてVMインスタンスを作成します。
手順1c: 次の構成を作成し、他の構成はデフォルトのままにします:
- VMインスタンスの名前を入力します。
- VMをホストするリージョンとゾーンを選択します。
- (オプション)VMにGPUを追加します。詳しくは、この記事の「手順4c」を参照してください。
-
[Boot disk] セクションで、VMのオペレーティングシステムとディスクサイズを選択します。例:
-
[Advanced options]>[Networking] に移動して、[Hostname] フィールドに完全修飾ドメイン名を設定します。
手順1d: [Create] をクリックしてVMインスタンスを作成します。
手順1e: VMが作成されたら、Compute Engineダッシュボードに戻り、一覧からVMインスタンスを見つけて、SSHボタンをクリックし、VMに接続します。
手順1f: WebベースのSSHクライアントを介してLinux VDAパッケージをVMにアップロードします。
手順1g: SSHを使用したVMへのアクセスの失敗を回避します。
再起動後にVMにアクセスできなくなる可能性があります。この問題を回避するには、仮想マシンに初めてログオンするときにルートパスワードを設定し、ルートとして仮想マシンにログオンできることを確認します。次に、仮想マシンを再起動した後、コンソールで次のコマンドを実行します:
nmcli dev connect eth0
systemctl restart NetworkManager
<!--NeedCopy-->
手順2:GCPサービスアカウントを作成する
このセクションでは、サービスアカウントキーの作成やサービスアカウントへの必要な役割の付与など、GCPサービスアカウントの作成方法について説明します。
注:
GCPサービスアカウントを作成する管理者には、Service Account Admin(roles/iam.serviceAccountAdmin)のIAM役割が付与されていることを確認します。
手順2a: Google Cloudコンソールで [IAM & Admin]>[Service Accounts] に移動して、[Create Service Account] タブをクリックします。
手順2b: [Service account details] の手順でフィールドに値を入力し、[Create and continue] をクリックします。
手順2c: オプションの手順をスキップし、下部にある [Done] をクリックします。
手順2d: 再度 [IAM & Admin]>[Service Accounts] に移動して、[Create Service Account] タブをクリックします。新しく作成したサービスアカウントを見つけて、[Keys] タブに移動し、[Add key]>[Create new key]>[JSON]>[Create] をクリックします。
注:
キーファイルをダウンロードすると、再度ダウンロードすることはできません。
手順2e: Google Cloudコンソールで、[IAM & Admin ]>[IAM] の順に移動して、[Add] をクリックします。New membersフィールドで新しく作成したサービスアカウントを検索して選択し、リソースへのアクセスを許可するサービスアカウントの役割を選択します。[Add another role] をクリックして役割の付与を 続け、新しく作成したサービスアカウントに次のすべての役割を確実に付与します。
- コンピューティング管理者
- ストレージ管理者
- Cloud Buildエディター
- サービスアカウントユーザー
- クラウドデータストアユーザー
- コンピューティングインスタンス管理者(ベータ)
- 所有者
例:
手順3:Citrix StudioでGCPへのホスト接続を作成する
Google Cloud Platform仮想化環境に合わせてGCP環境をセットアップしてから、次の手順を実行してGCPへのホスト接続を作成します。
-
オンプレミスのDelivery Controllerの場合は、オンプレミスのCitrix Studioで [構成]>[ホスト]>[接続およびリソースの追加] の順に選択してホスト接続を作成します。クラウドのDelivery Controllerの場合は、Citrix CloudのWebベースのStudioコンソールで [管理]>[ホスト]>[接続およびリソースの追加] の順に選択し、ホスト接続を作成します。
-
接続およびリソースの追加ウィザードで、接続の種類としてGoogle Cloud Platformを選択します。
たとえば、Citrix CloudのWebベースのStudioコンソールでは次のようになります:
-
GCPアカウントのサービスアカウントキーをインポートし、接続名を入力します。
-
ウィザードの指示に従って、各ページの操作を行います。特定のページの内容は、選択した接続の種類によって異なります。各ページの操作を終えたら、[概要]ページに到達するまで [次へ] を選択します。詳しくは、「MCSを使用したドメイン非参加のLinux VDAの作成」の記事にある「手順2:ホスト接続の作成」を参照してください。
手順4:Linux VDAマスターイメージを準備する
手順4a:(RHEL 8.x/9.xおよびRocky Linux 8.x/9.xの場合)イーサネット接続を構成します。
GCPでホストされているRHEL 8.x/9.xおよびRocky Linux 8.x/9.xにLinux VDAをインストールすると、イーサネット接続が失われ、仮想マシンの再起動後にLinux VDAにアクセスできなくなることがあります。この問題を回避するには、仮想マシンに初めてログオンするときにルートパスワードを設定し、ルートとして仮想マシンにログオンできることを確認します。次に、仮想マシンを再起動した後、コンソールで次のコマンドを実行します:
nmcli dev connect eth0
systemctl restart NetworkManager
<!--NeedCopy-->
手順4b: テンプレート仮想マシンにLinux VDAパッケージをインストールします。
テンプレートVMで次の手順を実行して、Linux VDAパッケージをインストールします:
-
.NETをインストールします。
Linux VDAをインストールまたはアップグレードする前に、サポートされているすべてのLinuxディストリビューションに、.NETランタイムに加えて.ASP.NET Coreランタイムをインストールする必要があります。Amazon Linux 2にはバージョン6が必要です。他のディストリビューションにはバージョン8が必要です。
Linuxディストリビューションに必要な.NETバージョンが含まれている場合は、組み込みフィードからインストールします。それ以外の場合は、Microsoftパッケージフィードから.NETをインストールします。詳しくは、https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managersを参照してください。
-
Linux VDAパッケージをインストールします:
sudo yum –y localinstall <PATH>/<Linux VDA RPM> <!--NeedCopy-->
-
EPELリポジトリを有効にします:
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm <!--NeedCopy-->
手順4c: GCP上のテンプレートVMにグラフィック処理装置(GPU)を追加します(オプション)。
-
Google Cloudコンソールで、1つ以上のGPUをテンプレートVMに追加します。GPUとGCPの追加と削除については、「https://cloud.google.com/compute/docs/gpus/add-remove-gpus」を参照してください。
-
適切なGPUドライバーをテンプレートVMにインストールします。詳しくは、https://cloud.google.com/compute/docs/gpus/install-drivers-gpuを参照してください。
必要なNVIDIAドライバーのバージョン:
Compute Engine上で実行されるNVIDIA GPUは、NVIDIAドライバーの次のバージョンを使用する必要があります:
- L4 GPUの場合:
- Linux:525.60.13以降
- A100 GPUの場合:
- Linux:450.80.02以降
- T4、P4、P100、およびV100 GPUの場合:
- Linux:410.79以降
- K80 GPUの場合(製品終了):
- Linux:410.79 - 最新のR470バージョン
K80 GPUについてNVIDIAは、R470ドライバーブランチが、デバッグサポートを受けることができる最後のドライバーバージョンであると発表しました。この更新を確認するには、NVIDIAソフトウェアサポートマトリックスを参照してください。
インストールスクリプト:
次のスクリプトを使用して、インストールプロセスを自動化できます:
https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py <!--NeedCopy-->
以下のオペレーティングシステムがサポートされています:
インストールスクリプトは、次のLinuxディストリビューションでテスト済みです:
- Debian 11
- Red Hat Enterprise Linux (RHEL) 8
- Rocky Linux 8
- Ubuntu 20/22
このスクリプトを他のLinuxディストリビューションで使用すると、インストールは失敗します。Linux VMの場合、このスクリプトはNVIDIAドライバーのみをインストールします。
-
インストールスクリプトをダウンロードします。
curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py <!--NeedCopy-->
-
スクリプトへの完全なアクセスを許可します。
chmod 777 install_gpu_driver.py <!--NeedCopy-->
-
インストールスクリプトを実行します。
python3 install_gpu_driver.py <!--NeedCopy-->
-
gdm3でWaylandを無効にします。
- 次のいずれかの場所でディストリビューションのWayland構成ファイルを見つけます:
- /etc/gdm3/custom.conf(Ubuntu)
- /etc/gdm/custom.conf(CentOS、RHEL、Rocky Linux)
- sudo/root権限でファイルを開きます。
- 行の最初の#を削除して、WaylandEnable=falseのコメントを解除します。
- 仮想マシンを再起動します。
- 次のいずれかの場所でディストリビューションのWayland構成ファイルを見つけます:
-
NVIDIA 510以降のドライバーをインストールした場合は、GSPファームウェアを無効にします。
GSPファームウェアが有効になっている場合は、NVIDIAモジュールパラメーターNVreg_EnableGpuFirmwareを0に設定して無効にします。
次のエントリを/etc/modprobe.d/nvidia.confファイルに追加して、このパラメーターを設定します:
-
options nvidia NVreg_EnableGpuFirmware=0
-
/etc/modprobe.d/nvidia.confファイルが存在しない場合は、作成します。
この手順を完了するときは、次の点に注意してください:
-
sudoを使用してコマンドを実行し、構成ファイルを作成および更新します。
-
VMを再起動するには、Linuxターミナルでsudo rebootを使用するか、VMを停止して起動します。
-
- L4 GPUの場合:
手順4d: MCS変数を構成します。
/etc/xdl/mcs/mcs.confファイルを編集してMCS変数を構成します。以下は、ドメイン非参加シナリオとドメイン参加済みシナリオで構成できるMCS変数です:
-
ドメイン非参加シナリオの場合
デフォルトの変数値を使用するか、必要に応じて変数をカスタマイズできます(オプション):
DOTNET_RUNTIME_PATH
=**path-to-install-dotnet-runtime \**
DESKTOP_ENVIRONMENT
= **gnome | mate \**
REGISTER_SERVICE
=Y | N
ADD_FIREWALL_RULES
=Y | N
VDI_MODE
=Y | N
START_SERVICE
=Y | N -
ドメイン参加済みシナリオの場合
-
Use_AD_Configuration_Files_Of_Current_VDA
:現在実行中のVDAの既存のAD関連構成ファイル(/etc/krb5.conf、/etc/sssd.conf、および/etc/samba/smb.conf)を使用するかどうかを決定します。Yに設定すると、MCSで作成されたマシンの構成ファイルは、現在実行中のVDAの構成ファイルと同じファイルになります。ただし、dns
変数とAD_INTEGRATION
変数を構成する必要があります。デフォルト値はNです。これは、MCSが作成したマシン上の構成ファイルがマスターイメージ上の構成テンプレートによって決定されることを意味します。現在実行中のVDAをテンプレート仮想マシンとして使用するには、値をYに設定します。それ以外の場合は、値をNに設定します。 -
dns
:各DNSサーバーのIPアドレスを設定します。最大4つのDNSサーバーを設定できます。 -
NTP_SERVER
:NTPサーバーのIPアドレスを設定します。特に指定のない限り、これはドメインコントローラーのIPアドレスです。 -
WORKGROUP
:ワークグループ名を、ADで構成したNetBIOS名(大文字と小文字を区別)に設定します。設定しなった場合、MCSはマシンのホスト名の直後に続くドメイン名の部分をワークグループ名として使用します。たとえば、マシンアカウントがuser1.lvda.citrix.comの場合、ワークグループ名としてcitrix が正しい選択であるにもかかわらず、MCSはlvdaを使用することになります。ワークグループ名を正しく設定するようにしてください。 -
AD_INTEGRATION
:Winbind、SSSD、PBIS、またはCentrifyを設定します。LinuxディストリビューションのマトリックスとMSCがサポートするドメイン参加方法については、「サポートされているディストリビューション」 を参照してください。 -
CENTRIFY_DOWNLOAD_PATH
:Server Suite Free(旧称Centrify Express)パッケージをダウンロードするためのパスを設定します。この値は、AD_INTEGRATION
変数をCentrifyに設定した場合にのみ有効になります。 -
CENTRIFY_SAMBA_DOWNLOAD_PATH
:Centrify Sambaパッケージをダウンロードするためのパスを設定します。この値は、AD_INTEGRATION
変数をCentrifyに設定した場合にのみ有効になります。 -
PBIS_DOWNLOAD_PATH
:PBISパッケージをダウンロードするためのパスを設定します。この値は、AD_INTEGRATION
変数をPBISに設定した場合にのみ有効になります。 -
UPDATE_MACHINE_PW
:マシンアカウントのパスワード更新の自動化を有効または無効にします。詳しくは、「マシンアカウントのパスワードの更新を自動化」を参照してください。 -
Linux VDA構成変数:
DOTNET_RUNTIME_PATH
=**path-to-install-dotnet-runtime \**
DESKTOP_ENVIRONMENT
= **gnome | mate \**
SUPPORT_DDC_AS_CNAME
=Y | N
VDA_PORT
=port-number
REGISTER_SERVICE
=Y | N
ADD_FIREWALL_RULES
=Y | N
HDX_3D_PRO
=Y | N
VDI_MODE
=Y | N
SITE_NAME
=dns-site-name | ‘<none>‘
LDAP_LIST
=‘list-ldap-servers’ | ‘<none>‘
SEARCH_BASE
=search-base-set | ‘<none>‘
FAS_LIST
=‘list-fas-servers’ | ‘<none>‘
START_SERVICE
=Y | N
TELEMETRY_SOCKET_PORT
=port-number
TELEMETRY_PORT
=port-number
-
手順4e: マスターイメージを作成します
-
(SSSD + RHEL 8.x/9.xまたはRocky Linux 8.x/9.xのみの場合)
update-crypto-policies --set DEFAULT:AD-SUPPORT
コマンドを実行してテンプレート仮想マシンを再起動します。 -
/opt/Citrix/VDA/sbin/deploymcs.sh
を実行します。ドメイン非参加のシナリオの場合、次のエラーは正常であり、プロセスの続行が妨げられることはありません。
-
テンプレート仮想マシンにアプリケーションをインストールし、テンプレート仮想マシンをシャットダウンします。マスターイメージのスナップショットを作成して名前を付けます。
手順5:マシンカタログを作成する
- Citrix Cloudにサインインします。左上のメニューで、[マイサービス]>[DaaS] を選択します。
- [管理]>[完全な構成] の左側ペインで [マシンカタログ] を選択します。
- 操作バーで [マシンカタログの作成] を選択します。
-
[マシンの種類] ページで、[マルチセッションOS] または [シングルセッションOS] を選択し、[次へ] を選択します。
-
[マシン管理] ページで、[電源管理されているマシン] および [Citrix Machine Creation Services] オプションを選択してから [次へ] を選択します。複数のリソースがある場合は、メニューから1つ選択してください。
-
[マスターイメージ] ページで、上記で作成したマスターイメージを選択します。
-
[マシンID] ページで、マスターイメージ がドメインに参加していない場合は [ドメイン非参加] を選択します。マスターイメージをドメインに参加させている場合はActive Directoryアカウントを選択します。
ドメイン非参加シナリオの場合:
ドメイン参加済みシナリオの場合:
- [新しいActive Directoryアカウントを作成する] を選択する場合、ドメインを選択してからActive Directoryで作成されたプロビジョニング済みのVMコンピューターアカウントで名前付けスキームに対応した文字列を入力します。アカウント名前付けスキームに指定できる文字数は1~64文字であり、空白スペース、非ASCII文字、および特殊文字を含めることはできません。
- [既存のActive Directoryアカウントを使用する] を選択した場合、[参照] を選択し、選択したマシンの既存のActive Directoryコンピューターアカウントに移動します。
- [ドメイン資格情報] ページで、[資格情報の入力] を選択し、ユーザー名とパスワードを入力し、[保存] を選択してから [次へ] を選択します。入力する資格情報には、Active Directoryアカウント操作を実行する権限が必要です。
- 他のページで追加の設定を構成します。詳しくは、「Google Cloud Platformカタログの作成」を参照してください。
-
[概要] ページで、情報を確認し、カタログの名前を指定してから、[完了] を選択します。
マシンカタログの作成が完了するまでに時間がかかる場合があります。完了すると、カタログが一覧表示されます。Google Cloudコンソールで、ターゲットノードグループにマシンが作成されていることを確認できます。
手順6:デリバリーグループを作成する
デリバリーグループは、いくつかのマシンカタログから選択したマシンをグループ化したものです。それらのマシンを使用できるユーザーと、そのユーザーに提供するアプリケーションおよびデスクトップを指定します。
詳しくは、Citrix DaaSドキュメントの「デリバリーグループの作成」を参照してください。
- Citrix Cloudにサインインします。左上のメニューで、[マイサービス]>[DaaS] を選択します。
- [管理]>[完全な構成] の左側ペインで [デリバリーグループ] を選択します。
-
操作バーで [デリバリーグループの作成] を選択します。デリバリーグループ作成ウィザードが開きます。
選択内容によっては、異なるウィザードページが表示されることがあります。
-
[マシン] ページでマシンカタログを選択して、そのカタログから使用するマシンの番号を選択します。
-
他のページで追加の設定を構成します。詳しくは、「デリバリーグループの作成」を参照してください。
-
[概要] ページでデリバリーグループの名前を入力します。オプションで、Citrix Workspaceアプリと [完全な構成] 管理インターフェイスに表示される説明を入力することもできます。例:
デリバリーグループの名前を入力します:
[完全な構成] 管理インターフェイスでデリバリーグループの一覧を表示します:
Citrix Workspaceアプリで提供されたマシン