Linux Virtual Delivery Agent

簡単インストールによるドメイン参加済みVDAの作成

重要:

  • 新規インストールの場合、簡単インストールについてはこの記事を参照することをお勧めします。この記事では、簡単インストールを使用してLinux VDAをインストールおよび構成する方法について説明します。簡単インストールは時間と労力を節約するだけでなく、手動のインストールよりもエラーを減らすことができます。必要なパッケージをインストールして、構成ファイルを自動的にカスタマイズすることで、Linux VDAの実行環境をセットアップできます。

  • 簡単インストールは、RHELおよびRocky LinuxのQuestのみをサポートします。

  • ドメイン非参加のVDAを作成する場合、Machine Creation Services(MCS)と簡単インストールの両方を使用できます。詳しくは、「MCSを使用したドメイン非参加Linux VDAの作成」 および「簡単インストールを使用したドメイン非参加Linux VDAの作成(Technical Preview)」を参照してください。

  • ドメイン非参加のVDAで利用可能な機能について詳しくは、「ドメイン非参加のVDA」を参照してください。

手順1: 構成ファイル情報およびLinuxマシンの準備

簡単インストールに必要な以下の構成情報を収集します。

  • ホスト名 - Linux VDAがインストールされるマシンのホスト名。
  • ドメインネームサーバーのIPアドレス。
  • NTPサーバーのIPアドレスまたは文字列名。
  • ドメイン名 - ドメインのNetBIOS名。
  • 領域名 - Kerberos領域名。
  • ドメインの完全修飾ドメイン名(FQDN)。
  • Active Directory(AD)統合方法 – 現在、簡単インストールはWinbind、SSSD、Centrify、およびPBISをサポートしています。
  • ユーザー名 – マシンをドメインに参加させるユーザーの名前。
  • パスワード – マシンをドメインに参加させるユーザーのパスワード。
  • OU – 組織単位。オプションです。

重要:

  • Linux VDAをインストールするには、Linuxマシンでリポジトリが正しく追加されていることを確認します。
  • セッションを起動するには、X Windowシステムおよびデスクトップ環境がインストールされていることを確認します。
  • セキュリティ上の理由で、簡単インストールではドメイン参加パスワードは保存されません。簡単インストールスクリプト(ctxinstall.sh)を対話モードで実行するたびに、ドメイン参加パスワードを手動で入力する必要があります。サイレントモードでは、/Citrix/VDA/sbin/ctxinstall.confでドメイン参加パスワードを設定する、またはパスワードをエクスポートする必要があります。ドメイン参加には管理者アカウントを使用しないことをお勧めします。代わりに、管理者アカウント以外のActive Directoryユーザーにドメイン参加権限を委任してください。このためには、制御の委任ウィザードを使用して、ドメインコントローラーの制御を委任します。

手順2:ハイパーバイザーの準備

サポートされるハイパーバイザー上で仮想マシンとしてLinux VDAを実行する場合、いくつかの変更が必要です。使用するハイパーバイザーのプラットフォームに合わせて、次の変更を行います。ベアメタルハードウェアでLinuxマシンを実行する場合、変更は必要ありません。

XenServer(旧称Citrix Hypervisor)での時刻同期の修正

XenServerの時刻同期機能が有効な場合、それぞれの準仮想化Linux仮想マシンで、NTPとXenServerの問題が発生します。これは、NTPとCitrix Hypervisorの両方がシステムの時間を管理しようとすることが原因です。システムの時間と他のサーバーの時間との同期が失われるのを防ぐには、各Linuxゲストのシステムの時間がNTPと同期する必要があります。この場合、ホストの時刻同期を無効にする必要があります。HVMモードでは、変更は必要ありません。

XenServer Toolsがインストールされた準仮想化Linuxカーネルを実行している場合、XenServerの時刻同期機能が存在するかどうかと、Linux仮想マシン内で有効になっているかどうかを確認できます:

su -

cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

このコマンドは0または1を返します:

  • 0 - 時刻同期機能が有効になっているため、無効にする必要があります。
  • 1 - 時刻同期機能が無効になっています。これ以上の操作は必要ありません。

/proc/sys/xen/independent_wallclockファイルが存在しない場合、以下の手順は必要ありません。

時刻同期機能が有効になっている場合は、ファイルに「1」と書き込んで無効にします:

sudo echo 1 > /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

この変更を永続化し、再起動後も保持するには、/etc/sysctl.confファイルを編集して、次の行を追加します:

xen.independent_wallclock = 1

これらの変更を確認するため、次のようにしてシステムを再起動します:

su -

cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

このコマンドは1を返します。

Microsoft Hyper-Vでの時刻同期の修正

Hyper-V Linux統合サービスがインストールされたLinux仮想ホストでは、Hyper-Vの時刻同期機能を適用してホストオペレーティングシステムの時間を利用できます。システムの時間を正確な状態で維持するには、NTPサービスとともにこの機能を有効にする必要があります。

管理オペレーティングシステムで、次の操作を行います。

  1. Hyper-Vマネージャーを開きます。
  2. Linux仮想マシンの設定で、[統合サービス] を選択します。
  3. [時刻の同期] が選択されていることを確認します。

注:

この方法はVMwareおよびXenServer(旧称Citrix Hypervisor)の場合とは異なります。VMwareおよびXenServerでは、NTPとの競合を避けるためにホストの時刻同期を無効にします。Hyper-Vの時刻同期は、NTPと共存し、NTPの時刻同期を補完することができます。

ESXおよびESXiでの時刻同期の修正

VMwareの時刻同期機能が有効な場合、それぞれの準仮想化Linux仮想マシンで、NTPとハイパーバイザーで問題が発生します。これは、NTPとハイパーバイザーの両方がシステムの時間を同期しようとすることが原因です。システムの時間と他のサーバーの時間との同期が失われるのを防ぐには、各Linuxゲストのシステムの時間がNTPと同期する必要があります。この場合、ホストの時刻同期を無効にする必要があります。

VMware Toolsをインストールした状態で準仮想化Linuxカーネルを実行している場合は、次の操作を行います。

  1. vSphere Clientを開きます。
  2. Linux仮想マシンの設定を編集します。
  3. [仮想マシンのプロパティ] ダイアログボックスで、[オプション] タブをクリックします。
  4. [VMware Tools] を選択します。
  5. [詳細] ボックスで、[ホストとゲスト時刻を同期] チェックボックスをオフにします。

手順3:.NETランタイム6.0のインストール

Linux VDAのインストール前に、https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managersの手順に従って.NETランタイム6.0をインストールします。

.NETランタイム6.0のインストール後、which dotnetコマンドを実行してランタイムパスを特定します。

コマンド出力に基づいて、.NETランタイムのバイナリパスを設定します。たとえば、コマンド出力が/aa/bb/dotnetの場合、/aa/bbを.NETバイナリパスとして使用します。

手順4:Linux VDAパッケージのダウンロード

  1. Citrix Virtual Apps and Desktopsのダウンロードページにアクセスします。
  2. 適切なバージョンのCitrix Virtual Apps and Desktopsを展開します。
  3. Componentsを展開してLinux VDAを見つけます。例:

    Citrix Virtual Apps and DesktopsのComponents

  4. Linux VDAのリンクをクリックして、Linux VDAのダウンロードファイルにアクセスします。

    Linux VDAのダウンロードファイル

  5. 使用中のLinuxディストリビューションに対応したLinux VDAパッケージをダウンロードします。

  6. Linux VDAパッケージの整合性を検証するために使用できるGPG公開キーをダウンロードします。例:

    GPG公開キー

    公開キーを使用してLinux VDAパッケージの整合性を検証するには:

    • RPMパッケージの場合は、次のコマンドを実行して公開キーをRPMデータベースにインポートし、パッケージの整合性を確認します:

       rpmkeys --import <path to the public key>
       rpm --checksig --verbose <path to the Linux VDA package>
       <!--NeedCopy-->
      
    • DEBパッケージの場合は、次のコマンドを実行して公開キーをDEBデータベースにインポートし、パッケージの整合性を確認します。

       sudo apt-get install dpkg-sig
       gpg --import <path to the public key>
       dpkg-sig --verify <path to the Linux VDA package>
       <!--NeedCopy-->
      

手順5:Linux VDAパッケージのインストール

Linux VDAの環境をセットアップするには、次のコマンドを実行します。

Amazon Linux 2、CentOS、RHEL、Rocky Linuxディストリビューションの場合:

注:

  • RHELおよびCentOSの場合、Linux VDAを正常にインストールする前に、EPELリポジトリをインストールします。EPELのインストール方法については、https://docs.fedoraproject.org/en-US/epel/の説明を参照してください。

  • Linux VDAをRHEL 9.2/9.0およびRocky Linux 9.2/9.0にインストールする前に、libsepolパッケージをバージョン 3.4以降に更新します。

sudo yum  -y localinstall   <PATH>/<Linux VDA RPM>
<!--NeedCopy-->

注:

GCPでホストされているRHEL 8.x/9.xおよびRocky Linux 8.x/9.xにLinux VDAをインストールすると、イーサネット接続が失われ、仮想マシンの再起動後にLinux VDAにアクセスできなくなることがあります。この問題を回避するには、仮想マシンに初めてログオンするときにルートパスワードを設定し、ルートとして仮想マシンにログオンできることを確認します。次に、仮想マシンを再起動した後、コンソールで次のコマンドを実行します:

nmcli dev connect eth0
service NetworkManager restart
<!--NeedCopy-->

Ubuntu/Debianディストリビューション

sudo dpkg -i <PATH>/<Linux VDA deb>
sudo apt-get install -f
<!--NeedCopy-->

注:

  • Debian 11ディストリビューションに必要な依存関係をインストールするには、/etc/apt/sources.listファイルに「deb http://deb.debian.org/debian/ bullseye main」行を追加します。

  • GCP上のUbuntu 20.04の場合、RDNSを無効にします。これを行うには、/etc/krb5.confの[libdefaults]rdns = false行を追加します。

SUSEディストリビューションの場合:

  1. AWS、Azure、およびGCPのSUSE 15.5の場合は、以下を確認してください:

    • libstdc++6バージョン12以降を使用している。
    • /etc/sysconfig/windowmanagerDefault_WMパラメーターがgnomeに設定されている。
  2. 次のコマンドを実行して、Linux VDAをインストールします:

    zypper -i install <PATH>/<Linux VDA RPM>
    <!--NeedCopy-->
    

手順6:NVIDIA GRIDドライバーのインストール

HDX 3D Proを有効にするには、ハイパーバイザーとVDAマシンにNVIDIA GRIDドライバーをインストールする必要があります。

特定のハイパーバイザーにNVIDIA GRID Virtual GPU Manager(ホストドライバー)をインストールして構成するには、次のガイドを参照してください:

NVIDIA GRIDゲストVMドライバーをインストールして構成するには、次の一般的な手順を実行します:

  1. ゲストVMがシャットダウンされていることを確認します。
  2. ハイパーバイザーのコントロールパネルで、GPUをVMに割り当てます。
  3. 仮想マシンを起動します。
  4. ゲストVMドライバーをVMにインストールします。

手順7:使用するデータベースの指定

Linux VDAパッケージをインストールした後は、SQLiteとPostgreSQLを切り替えることができます。このためには、次の手順を実行します:

注:

  • VDIモードのみでSQLiteを使用し、ホストされる共有デスクトップ配信モデルにはPostgreSQLを使用することをお勧めします。
  • 簡単インストールとMCSのために、SQLiteとPostgreSQLは、それぞれを手動でインストールすることなく指定することができます。/etc/xdl/db.confで特に指定しない限り、Linux VDAはデフォルトでPostgreSQLを使用します。
  • /etc/xdl/db.conf を使用してPostgreSQLのポート番号を構成することもできます。
  1. /etc/xdl/db.confを編集して、使用するデータベースを指定します。
  2. sudo /opt/Citrix/VDA/sbin/ctxinstall.shまたは/opt/Citrix/VDA/bin/easyinstallを実行します。

手順8:簡単インストールを実行して環境とVDAを構成し、インストールを完了します

Linux VDAパッケージのインストール後、ctxinstall.shスクリプトまたはGUIを使用して実行環境を構成します。

注:

ランタイム環境をセットアップする前に、en_US.UTF-8ロケールがOSにインストールされていることを確認します。OSにこのロケールがない場合は、sudo locale-gen en_US.UTF-8コマンドを実行します。Debianの場合は、# en_US.UTF-8 UTF-8行のコメントを解除して/etc/locale.genファイルを編集してから、sudo locale-genコマンドを実行します。

ctxinstall.sh

ctxinstall.shは、いくつかの事前構成とVDA実行環境変数のセットアップを行うための、簡単インストールのスクリプトです。

  • このスクリプトはrootのみが実行できます。

  • 簡単インストールでは、使用されるすべての環境変数の値を設定、保存、および同期するための構成ファイルとして、/opt/Citrix/VDA/sbin/ctxinstall.confを使用します。テンプレート(ctxinstall.conf.tmpl)をよく読んだ上で、独自のctxinstall.confをカスタマイズすることをお勧めします。構成ファイルを初めて作成するときは、次のいずれかの方法を使用します:
    • /opt/Citrix/VDA/sbin/ctxinstall.conf.tmplテンプレートファイルをコピーして、/opt/Citrix/VDA/sbin/ctxinstall.confとして保存する。
    • ctxinstall.shを実行する。ctxinstall.shを実行するたびに、入力値は/opt/Citrix/VDA/sbin/ctxinstall.confに保存されます。
  • 簡単インストールではモジュール形式の実行をサポートします。モジュールには、事前チェック、インストール、ドメイン構成、セットアップ、検証が含まれます。

  • このスクリプトのデバッグについて詳しくは、/var/log/xdl/ctxinstall.logで確認できます。

詳しくは、ヘルプコマンドctxinstall.sh -hを使用してご確認ください。

注:

  • 最小特権の原則に従い、ルートユーザーのみが/opt/Citrix/VDA/sbin/ctxinstall.confの読み取りができるようにします。これは、ドメイン参加パスワードがファイルに設定されている可能性があるためです。
  • Linux VDAをアンインストールすると、/opt/Citrix/VDAにあるファイルが削除されます。VDAをアンインストールする前に、/opt/Citrix/VDA/sbin/ctxinstall.confのバックアップを作成することをお勧めします。

ctxinstall.shは対話モードまたはサイレントモードで実行できます。スクリプトを実行する前に、次の環境変数を設定します:

  • CTX_XDL_NON_DOMAIN_JOINED=’y|n’ – マシンをドメインに参加させるかどうか。デフォルト値は’n’です。ドメイン参加済みシナリオの場合は’n’に設定します。

  • CTX_XDL_AD_INTEGRATION=’winbind|sssd|centrify|pbis|quest’– Linux VDAには、Delivery Controllerに対して認証するためにKerberos構成設定が必要です。Kerberos構成は、システムにインストールおよび構成済みのActive Directory統合ツールから指定します。

  • CTX_XDL_DDC_LIST=’<list-ddc-fqdns>’ - Linux VDAには、Delivery Controllerの登録に使用するDelivery Controllerの、完全修飾ドメイン名(FQDN)のスペース区切りの一覧が必要です。1つまたは複数の完全修飾ドメイン名またはCNAMEを指定する必要があります。

  • CTX_XDL_VDI_MODE=’y|n’ – 専用デスクトップ配信モデル(VDI)またはホストされる共有デスクトップ配信モデルのどちらとしてマシンを構成するかを決定します。HDX 3D Pro環境の場合は、値を ‘y’ に設定します。

  • CTX_XDL_HDX_3D_PRO=’y|n’ - Linux VDAでは、HDX 3D Proがサポートされます。これは、強力なグラフィックアプリケーションの仮想化を最適にするための一連のGPUアクセラレーションテクノロジです。HDX 3D Proを選択した場合、VDAはVDIデスクトップ(シングルセッション)モード用に構成されます(つまり、CTX_XDL_VDI_MODE=‘y’となります)。

  • CTX_XDL_START_SERVICE = ‘y|n’ - 構成の完了時にLinux VDAサービスが開始されるようにするかどうかを指定します。

  • CTX_XDL_REGISTER_SERVICE = ‘y|n’ - Linux Virtual Desktopサービスは、マシンの起動後に開始します。

  • CTX_XDL_ADD_FIREWALL_RULES = ‘y|n’ - Linux VDAサービスでは、ネットワーク受信接続がシステムのファイアウォールの通過を許可されている必要があります。Linux Virtual Desktop用に、システムのファイアウォールの必要なポート(デフォルトではポート80およびポート1494)を自動で開放できます。

  • CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/mate - セッションで使用するGNOME、GNOMEクラシック、またはMATEデスクトップ環境を指定します。変数を指定しないままにすると、VDAで構成済みのデフォルトデスクトップが使用されます。

  • CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime - 新しいブローカーエージェントサービス(ctxvda)をサポートするための.NETランタイム6.0をインストールするパス。デフォルトのパスは‘/usr/bin’です。

  • CTX_XDL_VDA_PORT=port-number - Linux VDAは、TCP/IPポート経由でDelivery Controllerと通信します。

  • CTX_XDL_SITE_NAME =<dns-name> - Linux VDAは、DNSを使用してLDAPサーバーを検出します。DNSの検索結果をローカルサイトに制限するには、DNSサイト名を指定します。不要な場合は、‘<none>‘に設定します。

  • CTX_XDL_LDAP_LIST=’<list-ldap-servers>’ - Linux VDAは、DNSを照会してLDAPサーバーを検出します。DNSがLDAPサービスレコードを提供できない場合は、LDAPのFQDNおよびLDAPポートのスペース区切りの一覧を指定できます。例:「ad1.mycompany.com:389 ad2.mycompany.com:3268 ad3.mycompany.com:3268」。Active Directoryフォレストでより高速なLDAPクエリを有効にするには、ドメインコントローラーで [グローバルカタログ] を有効にし、関連するLDAPポート番号で3268を指定します。この変数は、デフォルトでは‘<none>‘に設定されています。

  • CTX_XDL_SEARCH_BASE = search-base-set - Linux VDAは、Active Directoryドメインのルート(例:DC=mycompany,DC=com)に設定された検索ベースを使用してLDAPを照会します。検索のパフォーマンスを改善するために、検索ベースを指定できます(例:OU=VDI,DC=mycompany,DC=com)。不要な場合は、‘<none>‘に設定します。

  • CTX_XDL_SUPPORT_DDC_AS_CNAME=’y|n’ - Linux VDAでは、DNS CNAMEレコードを使用して、Delivery Controller名を指定することができます。

  • CTX_EASYINSTALL_DNS=’<ip-address-of-dns>’ - DNSのIPアドレス。

  • CTX_EASYINSTALL_HOSTNAME=host-name - Linux VDAサーバーのホスト名。

  • CTX_EASYINSTALL_NTPS=address-of-ntps - NTPサーバーのIPアドレスまたは文字列名。

  • CTX_EASYINSTALL_REALM=realm-name - Kerberos領域名。

  • CTX_EASYINSTALL_FQDN=ad-fqdn-name

  • CTX_EASYINSTALL_USERNAME=domain-user-name - マシンをドメインに参加させているユーザーの名前。

  • CTX_EASYINSTALL_PASSWORD=password - マシンをドメインに参加させているユーザーのパスワード。

注:

ドメイン参加には管理者アカウントを使用しないことをお勧めします。代わりに、管理者アカウント以外のActive Directoryユーザーにドメイン参加権限を委任してください。このためには、制御の委任ウィザードを使用して、ドメインコントローラーの制御を委任します。

次の4つの変数はオプションです。これらが設定されていない場合でも、サイレントモードでctxinstall.shは中止せず、対話モードでユーザー入力を求めるプロンプトも表示されません。これらは値をエクスポートすることで、または/Citrix/VDA/sbin/ctxinstall.confを編集することでのみ設定できます。

  • CTX_EASYINSTALL_NETBIOS_DOMAIN=netbios-domain-name – NetBIOSドメイン名は、通常はドット(.)で区切られたDNSドメイン名の最初のコンポーネントです。それ以外の場合は、別の NetBIOSドメイン名をカスタマイズします。この変数はオプションです。

  • CTX_EASYINSTALL_OU=ou-value – OUの値は、Active Directory統合方法によって異なります。OU値の例については、この記事の「注意事項」 セクションの表を参照してください。この変数はオプションです。
  • CTX_EASYINSTALL_CENTRIFY_LOCAL_PATH=centrify-local-path – 簡単インストールは、インターネットからCentrifyパッケージをダウンロードするために役立ちます。ただし、Centrifyが既にインストールされている場合は、この変数で定義されたローカルディレクトリからCentrifyパッケージを取得できます。この変数はオプションです。
  • CTX_EASYINSTALL_PBIS_LOCAL_PATH= pbis-local-path – 簡単インストールは、インターネットからPBISパッケージをダウンロードするために役立ちます。ただし、PBISが既にインストールされている場合は、この変数で定義されたローカルディレクトリからPBISパッケージを取得できます。この変数はオプションです。

注意事項

  • NetBIOSドメイン名は通常、ドット(.)で区切られたDNSドメイン名の最初のコンポーネントです。環境で別のNetBIOSドメイン名をカスタマイズするには、/opt/Citrix/VDA/sbin/ctxinstall.confで環境変数CTX_EASYINSTALL_NETBIOS_DOMAINを設定します。

  • VDAを特定のOUに追加するには、次の手順を実行します:

    1. 特定のOUがドメインコントローラーに存在することを確認してください。

      OUの例として、以下のスクリーンショットを参照してください:

      OUの例

    2. 環境でワークグループをカスタマイズするには、/opt/Citrix/VDA/sbin/ctxinstall.confで環境変数CTX_EASYINSTALL_OUを設定します。

      OUの値は、ADの方法によって異なります。次の表は、上記のスクリーンショットにおけるOU名の例に基づいています。これ以外の、所属する組織の任意のOU名を使用することができます。

      OS Winbind SSSD Centrify PBIS
      Amazon Linux 2 "Linux/amazon" "Linux/amazon" "XD.LOCAL/Linux/amazon" "Linux/amazon"
      Debian "Linux/debian" "Linux/debian" "XD.LOCAL/Linux/debian" "Linux/debian"
      RHEL 9.2/9.0、Rocky Linux 9.2/9.0 "OU=redhat,OU=Linux" "OU=redhat,OU=Linux" - -
      RHEL 8.x "OU=redhat,OU=Linux" "OU=redhat,OU=Linux" "XD.LOCAL/Linux/redhat" "Linux/redhat"
      Rocky Linux 8.x "OU=redhat,OU=Linux" "OU=redhat,OU=Linux" - -
      RHEL 7 "Linux/redhat" "Linux/redhat" "XD.LOCAL/Linux/redhat" "Linux/redhat"
      SUSE "Linux/suse" "Linux/suse" "XD.LOCAL/Linux/suse" "Linux/suse"
      Ubuntu "Linux/ubuntu" "Linux/ubuntu" "XD.LOCAL/Linux/ubuntu" "Linux/ubuntu"
  • CentrifyではピュアIPv6 DNS構成をサポートしていません。Active DirectoryクライアントでActive Directoryサービスを適切に検索するためには、IPv4を使用するDNSサーバーが/etc/resolv.confに少なくとも1つ存在している必要があります。

    ログ:

     ADSITE   : Check that this machine's subnet is in a site known by AD   : Failed
              : This machine's subnet is not known by AD.
              : We guess you should be in the site Site1.
     <!--NeedCopy-->
    

    この問題は、Centrifyおよびその構成に特有のものです。この問題を解決するには、次の手順を実行します:

    a. ドメインコントローラーの [管理ツール] を開きます。
    b.[Active Directoryのサイトとサービス] を選択します。
    c.[サブネット] の適切なサブネットアドレスを追加します。

  • 簡単インストールは、Linux VDA 7.16以降のピュアIPv6をサポートしています。以下のような前提条件と制限事項があります:

    • お使いのマシンがピュアIPv6ネットワーク経由で必要なパッケージをダウンロードできるように、Linuxリポジトリを設定する必要があります。
    • Centrifyは、ピュアIPv6ネットワークではサポートされていません。

    注:

    ご使用のネットワークがピュアIPv6で、すべての入力が適切なIPv6形式である場合、VDAはIPv6を使用してDelivery Controllerに登録します。ご使用のネットワークがIPv4IPv6のハイブリッド構成である場合、最初のDNS IPアドレスの種類によって、IPv4またはIPv6のどちらが登録に使用されるかが決まります。

  • 次の手順を実行して、ターゲットセッションユーザーのデスクトップ環境を変更することもできます:

    1. VDAの $HOME/<username> ディレクトリに.xsessionまたは.Xclientsファイルを作成します。ここで、usernameはユーザー名です。Amazon Linux 2を使用している場合は、.Xclientsファイルを作成します。他のディストリビューションを使用している場合は、.xsessionファイルを作成します。
    2. .xsessionまたは.Xclientsファイルを編集して、ディストリビューションに基づいてデスクトップ環境を指定します。

      • MATEデスクトップの場合

         MSESSION="$(type -p mate-session)"  
         if [ -n "$MSESSION" ]; then  
         exec mate-session  
         fi
         <!--NeedCopy-->
        
      • GNOMEクラシックデスクトップの場合

         GSESSION="$(type -p gnome-session)"  
         if [ -n "$GSESSION" ]; then  
         export GNOME_SHELL_SESSION_MODE=classic  
         exec gnome-session --session=gnome-classic  
         fi  
         <!--NeedCopy-->
        
      • GNOMEデスクトップの場合

         GSESSION="$(type -p gnome-session)"  
         if [ -n "$GSESSION" ]; then  
         exec gnome-session  
         fi  
         <!--NeedCopy-->
        
    3. ターゲットセッションユーザーと700ファイルのアクセス権限を共有します。

    バージョン2209以降、セッションユーザーはデスクトップ環境をカスタマイズできます。この機能を有効にするには、事前にVDAに切り替え可能なデスクトップ環境をインストールする必要があります。詳しくは、「セッションユーザーによるカスタムデスクトップ環境」を参照してください。

  • ドメインに参加させる方式としてCentrifyを選択する場合、ctxinstall.shスクリプトではCentrifyパッケージが必要です。ctxinstall.shでCentrifyパッケージを取得する方法:

    • 簡単インストールは、インターネットからCentrifyパッケージを自動でダウンロードするために役立ちます。ディストリビューションごとのURLは次のとおりです:

      Amazon Linux 2/RHEL:wget https://downloads.centrify.com/products/server-suite/2022/component-update-1/delinea-server-suite-2022-rhel6-x86_64.tgz

      CentOS:wget https://downloads.centrify.com/products/server-suite/2022/component-update-1/delinea-server-suite-2022-rhel6-x86_64.tgz

      SUSE:wget https://downloads.centrify.com/products/server-suite/2022/component-update-1/delinea-server-suite-2022-suse12-x86_64.tgz

      Ubuntu/Debian:wget https://downloads.centrify.com/products/server-suite/2022/component-update-1/delinea-server-suite-2022-deb9-x86_64.tgz

    • Centrifyが既にインストールされている場合は、ローカルディレクトリからCentrifyパッケージを取得します。Centrifyパッケージのディレクトリを委任するには、/opt/Citrix/VDA/sbin/ctxinstall.confCTX_EASYINSTALL_CENTRIFY_LOCAL_PATH=/home/mydirを指定します。例:

       ls  -ls  /home/mydir
           9548 -r-xr-xr-x. 1 root root  9776688 May 13  2016 adcheck-rhel4-x86_64
           4140 -r--r--r--. 1 root root  4236714 Apr 21  2016 centrifyda-3.3.1-rhel4-x86_64.rpm
           33492 -r--r--r--. 1 root root 34292673 May 13  2016 centrifydc-5.3.1-rhel4-x86_64.rpm
           4 -rw-rw-r--. 1 root root     1168 Dec  1  2015 centrifydc-install.cfg
           756 -r--r--r--. 1 root root   770991 May 13  2016 centrifydc-ldapproxy-5.3.1-rhel4-x86_64.rpm
           268 -r--r--r--. 1 root root   271296 May 13  2016 centrifydc-nis-5.3.1-rhel4-x86_64.rpm
           1888 -r--r--r--. 1 root root  1930084 Apr 12  2016 centrifydc-openssh-7.2p2-5.3.1-rhel4-x86_64.rpm
           124 -rw-rw-r--. 1 root root   124543 Apr 19  2016 centrify-suite.cfg
           0 lrwxrwxrwx. 1 root root       10 Jul  9  2012 install-express.sh -> install.sh
           332 -r-xr-xr--. 1 root root   338292 Apr 10  2016 install.sh
           12 -r--r--r--. 1 root root    11166 Apr  9  2015 release-notes-agent-rhel4-x86_64.txt
           4 -r--r--r--. 1 root root     3732 Aug 24  2015 release-notes-da-rhel4-x86_64.txt
           4 -r--r--r--. 1 root root     2749 Apr  7  2015 release-notes-nis-rhel4-x86_64.txt
           12 -r--r--r--. 1 root root     9133 Mar 21  2016 release-notes-openssh-rhel4-x86_64.txt
       <!--NeedCopy-->
      
  • ドメインに参加させる方式としてPBISを選択する場合、ctxinstall.shスクリプトではPBISパッケージが必要です。ctxinstall.shでPBISパッケージを取得する方法:

    • 簡単インストールは、インターネットからPBISパッケージを自動でダウンロードするために役立ちます。たとえば、ディストリビューションごとのURLは次のとおりです:

      Amazon Linux 2、CentOS 7、RHEL 8、RHEL 7、SUSE 15.5:wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86_64.rpm.sh

      Debian、Ubuntu:wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86_64.deb.sh

    • インターネットからPBISパッケージの特定のバージョンを取得します。取得するには、/opt/Citrix/VDA/sbin/ctxinstall.shファイルの「pbisDownloadRelease」行と「pbisDownloadExpectedSHA256」行を変更します。

      例として、以下のスクリーンショットを参照してください:

      特定のバージョンのPBISパッケージの取得

    • PBISが既にインストールされている場合は、ローカルディレクトリからPBISパッケージを取得します。PBISパッケージのディレクトリを指定するには、/opt/Citrix/VDA/sbin/ctxinstall.confで環境変数CTX_EASYINSTALL_PBIS_LOCAL_PATHを設定します。

対話モード

対話モードでctxinstall.shスクリプトを実行するには、sudo /opt/Citrix/VDA/sbin/ctxinstall.shコマンドを-Sオプションなしで使用します。コマンドラインインターフェイスのプロンプトごとに、関連する変数値を入力します。変数が既に設定されている場合、ctxinstall.shは、変数の変更が必要かの確認を求めます。

サイレントモード

サイレントモードでは、 /opt/Citrix/VDA/sbin/ctxinstall.confまたはexportコマンドを使用して上記の変数を設定する必要があります。その後、ctxinstall.sh -S を実行します(ここでのSの文字は大文字であることに注意してください)。必要なすべての変数が設定されていないか一部の値が無効である場合、デフォルト値がない限り、ctxinstall.shは実行を中止します。

各変数のエクスポートされた値は、既に設定されていない限り/Citrix/VDA/sbin/ctxinstall.confの値を上書きします。すべての更新された値は、ドメイン参加パスワード以外は/Citrix/VDA/sbin/ctxinstall.confに保存されます。サイレントモードでは、/Citrix/VDA/sbin/ctxinstall.confでドメイン参加パスワードを設定する、またはパスワードをエクスポートする必要があります。

export CTX_XDL_NON_DOMAIN_JOINED='n'
export CTX_XDL_AD_INTEGRATION=winbind|centrify|sssd|pbis|quest
export CTX_XDL_DDC_LIST='<list-ddc-fqdns>'
export CTX_XDL_VDI_MODE='y|n'
export CTX_XDL_HDX_3D_PRO='y|n'
export CTX_XDL_START_SERVICE='y|n'
export CTX_XDL_REGISTER_SERVICE='y|n'
export CTX_XDL_ADD_FIREWALL_RULES='y|n'
export CTX_XDL_DESKTOP_ENVIRONMENT= gnome|gnome-classic|mate|'<none>'
export CTX_XDL_DOTNET_RUNTIME_PATH='<path-to-install-dotnet-runtime>'
export CTX_XDL_VDA_PORT='<port-number>'
export CTX_XDL_SITE_NAME='<dns-site-name>'|'<none>'
export CTX_XDL_LDAP_LIST='<list-ldap-servers>'|'<none>'
export CTX_XDL_SEARCH_BASE='<search-base-set>'|'<none>'
export CTX_XDL_SUPPORT_DDC_AS_CNAME='y|n'
export CTX_EASYINSTALL_DNS='<ip-address-of-dns>'
export CTX_EASYINSTALL_HOSTNAME='<host-name>'
export CTX_EASYINSTALL_NTPS='<address-of-ntps>'
export CTX_EASYINSTALL_REALM='<realm-name>'
export CTX_EASYINSTALL_FQDN='<ad-fqdn-name>'
export CTX_EASYINSTALL_USERNAME='<domain-user-name>'
export CTX_EASYINSTALL_PASSWORD='<password>'
export CTX_EASYINSTALL_NETBIOS_DOMAIN='<netbios-domain>'
export CTX_EASYINSTALL_OU='<organization-unit>'
sudo -E /opt/Citrix/VDA/sbin/ctxinstall.sh -S
<!--NeedCopy-->

sudoコマンドに-Eオプションを指定して実行し、作成する新しいシェルに既存の環境変数を渡します。最初の行として #!/bin/bash を記述し、前述のコマンドからなるシェルスクリプトファイルを作成することをお勧めします。

または、次のようにして、1つのコマンドですべての変数を指定することができます。

VDA実行環境変数(「CTX_XDL_」で始まる)を設定するには、ctxinstall.sh -s を実行できます(文字s小文字であることに注意してください)。

GUI

GUIによる簡単インストールを利用できます。VDAのデスクトップ環境で/opt/Citrix/VDA/bin/easyinstallコマンドを実行してから、簡単インストールのGUIの指示に従います。

簡単インストールのGUI

簡単インストールのGUIは、次の操作をガイドします:

  • システム環境を確認する
  • 依存関係をインストールする
  • 指定されたドメインにVDAを参加させる
  • ランタイム環境を構成する

ヒント:

[保存] をクリックすると、指定したパスにあるローカルファイルに変数設定が保存されます。[読み込み] をクリックすると、指定したファイルから変数設定が読み込まれます。MCS変数の構成については、「手順3:マスターイメージの準備」を参照してください。

手順9:XDPingの実行

sudo /opt/Citrix/VDA/bin/xdpingを実行して、Linux VDA環境での一般的な構成の問題を確認します。詳しくは、「XDPing」を参照してください。

手順10:Linux VDAの実行

Linux VDAの起動:

Linux VDAサービスを起動するには、次のコマンドを実行します:

sudo systemctl start ctxhdx.service

sudo systemctl start ctxvda.service
<!--NeedCopy-->

Linux VDAの停止:

Linux VDAサービスを停止するには、次のコマンドを実行します:

sudo systemctl stop ctxvda.service

sudo systemctl stop ctxhdx.service
<!--NeedCopy-->

注:

ctxvdaおよびctxhdxサービスを停止する前に、service ctxmonitorservice stopコマンドを実行して監視サービスデーモンを停止します。これを実行しない場合、監視サービスデーモンは停止したサービスを再起動します。

Linux VDAの再起動:

Linux VDAサービスを再起動するには、次のコマンドを実行します:

sudo systemctl stop ctxvda.service

sudo systemctl restart ctxhdx.service

sudo systemctl start ctxvda.service
<!--NeedCopy-->

Linux VDAの状態の確認:

Linux VDAサービスの実行状態を確認するには、次のコマンドを実行します:

sudo systemctl status ctxvda.service

sudo systemctl status ctxhdx.service
<!--NeedCopy-->

手順11:マシンカタログの作成

マシンカタログを作成し、Linux VDAマシンを追加する手順は、従来のWindows VDAでの方法と似ています。このタスクを完了する方法の説明について詳しくは、「マシンカタログの作成」および「マシンカタログの管理」を参照してください。

次のように、Linux VDAマシンを含むマシンカタログの作成にはいくつかの制約があるため、Windows VDAマシンのマシンカタログの作成手順と異なる点があります:

  • オペレーティングシステムには、次を選択します:
    • ホストされる共有デスクトップ配信モデルの場合、マルチセッションOSオプション
    • VDI専用デスクトップ配信モデルの場合、シングルセッションOSオプション。
  • 同じマシンカタログで、Linux VDAマシンとWindows VDAマシンを混在させないでください。

注:

Citrix Studioの以前のバージョンは、「Linux OS」という概念をサポートしていませんでした。ただし、[WindowsサーバーOS] オプションまたは [サーバーOS] オプションを選択すると、同等のホストされる共有デスクトップ配信モデルが暗黙的に選択されます。[WindowsデスクトップOS] オプションまたは [デスクトップOS] オプションを選択すると、マシンごとに単一ユーザーの配信モデルが暗黙的に選択されます。

ヒント:

マシンがActive Directoryドメインから削除された後に再度追加された場合は、そのマシンをマシンカタログから削除してから再度追加する必要があります。

手順12:デリバリーグループの作成

デリバリーグループを作成し、Linux VDAマシンを含むマシンカタログを追加する手順は、Windows VDAマシンの場合とほとんど同じです。このタスクを完了する方法の説明について詳しくは、「デリバリーグループの作成」を参照してください。

Linux VDAマシンカタログを含むデリバリーグループを作成する場合は、次の制約があります:

  • 選択するADユーザーおよびグループを、Linux VDAマシンにログオンするように適切に構成しておきます。
  • 認証されていない(匿名)ユーザーのログオンを許可しないでください。
  • Windowsマシンを含むマシンカタログをデリバリーグループで混在させないでください。

重要:

アプリケーションの公開は、Linux VDAバージョン1.4以降でサポートされています。ただし、同一マシンへのデスクトップおよびアプリの配信は、Linux VDAでサポートされていません。

マシンカタログおよびデリバリーグループの作成方法について詳しくは、「Citrix Virtual Apps and Desktops 7 2311」を参照してください。

手順13:Linux VDAのアップグレード(オプション)

Linux VDAは、最新バージョンからのアップグレードをサポートしています。たとえば、Linux VDAを2308から2311に、および1912 LTSRから2203 LTSRにアップグレードできます。

RHEL 7およびCentOS 7の場合:

sudo rpm -U XenDesktopVDA-<version>.el7_x.x86_64.rpm
<!--NeedCopy-->

RHEL 8およびRocky Linux 8の場合:

sudo rpm -U XenDesktopVDA-<version>.el8_x.x86_64.rpm
<!--NeedCopy-->

RHEL 9.2/9.0およびRocky Linux 9.2/9.0の場合:

注:

RHEL 9.2/9.0およびRocky Linux 9.2/9.0のLinux VDAをアップグレードする前に、libsepolパッケージをバージョン3.4以降に更新します。

sudo rpm -U XenDesktopVDA-<version>.el9x.x86_64.rpm
<!--NeedCopy-->

SUSEの場合:

sudo rpm -U XenDesktopVDA-<version>.sle15_x.x86_64.rpm
<!--NeedCopy-->

Ubuntu 20.04の場合:

sudo dpkg -i xendesktopvda_<version>.ubuntu20.04_amd64.deb
<!--NeedCopy-->

Ubuntu 22.04の場合:

sudo dpkg -i xendesktopvda_<version>.ubuntu22.04_amd64.deb
<!--NeedCopy-->

トラブルシューティング

このセクションの情報を参照して、簡単インストール機能を使用することで発生する可能性のある問題のトラブルシューティングを実行できます。

SSSDを使用してドメインに参加できない

ドメインに参加しようとすると、次のような出力のエラーが発生することがあります(画面印刷のログを確認する):

Step 6: join Domain!Enter ctxadmin's password:Failed to join domain: failed to lookup DC info for domain 'CITRIXLAB.LOCAL' over rpc: The network name cannot be found

/var/log/xdl/vda.log:

2016-11-04 02:11:52.317 [INFO ] - The Citrix Desktop Service successfully obtained the following list of 1 delivery controller(s) with which to register: 'CTXDDC.citrixlab.local (10.158.139.214)'.
2016-11-04 02:11:52.362 [ERROR] - RegistrationManager.AttemptRegistrationWithSingleDdc: Failed to register with http://CTXDDC.citrixlab.local:80/Citrix/CdsController/IRegistrar. Error: General security error (An error occurred in trying to obtain a TGT: Client not found in Kerberos database (6))
2016-11-04 02:11:52.362 [ERROR] - The Citrix Desktop Service cannot connect to the delivery controller 'http://CTXDDC.citrixlab.local:80/Citrix/CdsController/IRegistrar' (IP Address '10.158.139.214')
Check the following:- The system clock is in sync between this machine and the delivery controller.
-  The Active Directory provider (e.g. winbind daemon) service is running and correctly configured.
-  Kerberos is correctly configured on this machine.
If the problem persists, please refer to Citrix Knowledge Base article CTX117248 for further information.
Error Details:
Exception 'General security error (An error occurred in trying to obtain a TGT: Client not found in Kerberos database (6))' of type 'class javax.xml.ws.soap.SOAPFaultException'.
2016-11-04 02:11:52.362 [INFO ] - RegistrationManager.AttemptRegistrationWithSingleDdc: The current time for this VDA is Fri Nov 04 02:11:52 EDT 2016.
Ensure that the system clock is in sync between this machine and the delivery controller.
Verify the NTP daemon is running on this machine and is correctly configured.
2016-11-04 02:11:52.364 [ERROR] - Could not register with any controllers. Waiting to try again in 120000 ms. Multi-forest - false
2016-11-04 02:11:52.365 [INFO ] - The Citrix Desktop Service failed to register with any controllers in the last 470 minutes.
<!--NeedCopy-->

/var/log/messages:

Nov 4 02:15:27 RH-WS-68 [sssd[ldap_child[14867]]]: Failed to initialize credentials using keytab [MEMORY:/etc/krb5.keytab]: Client 'RH-WS-68$@CITRIXLAB.LOCAL' not found in Kerberos database. Unable to create GSSAPI-encrypted LDAP connection.Nov 4 02:15:27 RH-WS-68 [sssd[ldap_child[14867]]]: Client 'RH-WS-68$@CITRIXLAB.LOCAL' not found in Kerberos database

この問題を解決するには、次の手順を実行します:

  1. rm -f /etc/krb5.keytabコマンドを実行します。
  2. net ads leave $REALM -U $domain-administratorコマンドを実行します。
  3. Delivery Controllerでマシンカタログおよびデリバリーグループを削除します。
  4. /opt/Citrix/VDA/sbin/ctxinstall.shを実行します。
  5. Delivery Controllerでマシンカタログおよびデリバリーグループを作成します。

Ubuntuのデスクトップセッションで灰色の画面が表示される

セッションを起動すると、空のデスクトップでブロックされる問題が発生します。また、マシンのコンソールでも、ローカルユーザーアカウントを使用してログオンすると灰色の画面が表示されます。

この問題を解決するには、次の手順を実行します:

  1. sudo apt-get updateコマンドを実行します。
  2. sudo apt-get install unity lightdmコマンドを実行します。
  3. 次の行を/etc/lightdm/lightdm.confに追加します。
    greeter-show-manual-login=true

Ubuntuのデスクトップセッションを起動しようとするとホームディレクトリがないため失敗する

/var/log/xdl/hdx.log:

2016-11-02 13:21:19.015 <P22492:S1> citrix-ctxlogin: StartUserSession: failed to change to directory(/home/CITRIXLAB/ctxadmin) errno(2)

2016-11-02 13:21:19.017 <P22227> citrix-ctxhdx: logSessionEvent: Session started for user ctxadmin.

2016-11-02 13:21:19.023 <P22492:S1> citrix-ctxlogin: ChildPipeCallback: Login Process died: normal.

2016-11-02 13:21:59.217 <P22449:S1> citrix-ctxgfx: main: Exiting normally.
<!--NeedCopy-->

ヒント:

この問題の根本原因は、ドメイン管理者のホームディレクトリが作成されていないことです。

この問題を解決するには、次の手順を実行します:

  1. コマンドラインで、pam-auth-update を入力します。

  2. 表示されたダイアログで、[ログイン時にホームディレクトリを作成する] が選択されていることを確認します。

    Ubuntuがセッションを起動できない

dbusエラーによりセッションを起動または終了できない

/var/log/messages(RHELまたはCentOSの場合)

Oct 27 04:17:16 CentOS7 citrix-ctxhdx[8978]: Session started for user CITRIXLAB\ctxadmin.

Oct 27 04:17:18 CentOS7 kernel: traps: gnome-session[19146] trap int3 ip:7f89b3bde8d3 sp:7fff8c3409d0 error:0

Oct 27 04:17:18 CentOS7 gnome-session[19146]: ERROR: Failed to connect to system bus: Exhausted all available authentication mechanisms (tried: EXTERNAL, DBUS_COOKIE_SHA1, ANONYMOUS) (available: EXTERNAL, DBUS_COOKIE_SHA1, ANONYMOUS)#012aborting...

Oct 27 04:17:18 CentOS7 gnome-session: gnome-session[19146]: ERROR: Failed to connect to system bus: Exhausted all available authentication mechanisms (tried: EXTERNAL, DBUS_COOKIE_SHA1, ANONYMOUS) (available: EXTERNAL, DBUS_COOKIE_SHA1, ANONYMOUS)

Oct 27 04:17:18 CentOS7 gnome-session: aborting...

Oct 27 04:17:18 CentOS7 citrix-ctxgfx[18981]: Exiting normally.

Oct 27 04:17:18 CentOS7 citrix-ctxhdx[8978]: Session stopped for user CITRIXLAB\ctxadmin.
<!--NeedCopy-->

Ubuntuディストリビューションの場合は、log /var/log/syslogを使用

Nov  3 11:03:52 user01-HVM-domU pulseaudio[25326]: [pulseaudio] pid.c: Stale PID file, overwriting.

Nov  3 11:03:52 user01-HVM-domU pulseaudio[25326]: [pulseaudio] bluez5-util.c: Failed to get D-Bus connection: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Nov  3 11:03:52 user01-HVM-domU pulseaudio[25326]: [pulseaudio] hashmap.c: Assertion 'h' failed at pulsecore/hashmap.c:116, function pa_hashmap_free(). Aborting.

Nov  3 11:03:52 user01-HVM-domU pulseaudio[25352]: [pulseaudio] core-util.c: Failed to connect to system bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Nov  3 11:03:52 user01-HVM-domU pulseaudio[25352]: message repeated 10 times: [ [pulseaudio] core-util.c: Failed to connect to system bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.]

Nov  3 11:03:52 user01-HVM-domU pulseaudio[25352]: [pulseaudio] pid.c: Daemon already running.Nov  3 11:03:58 user01-HVM-domU citrix-ctxgfx[24693]: Exiting normally
<!--NeedCopy-->

再起動するまで機能しないグループまたはモジュールがあります。dbusエラーメッセージがログに表示される場合、システムを再起動してから再試行することをお勧めします。

SELinuxでSSHDがホームディレクトリにアクセスできない

ユーザーはセッションを起動できますが、ログオンできません。

/var/log/xdl/ctxinstall.log:

Jan 25 23:30:31 yz-rhel72-1 setroubleshoot[3945]: SELinux is preventing /usr/sbin/sshd from setattr access on the directory /root. For complete SELinux messages. run sealert -l 32f52c1f-8ff9-4566-a698-963a79f16b81

Jan 25 23:30:31 yz-rhel72-1 python[3945]: SELinux is preventing /usr/sbin/sshd from setattr access on the directory /root.

*****  Plugin catchall_boolean (89.3 confidence) suggests   ******************

If you want to allow polyinstantiation to enabled

   Then you must tell SELinux about this by enabling the 'polyinstantiation_enabled' boolean.

You can read 'None' man page for more details.

    Do

       setsebool -P polyinstantiation_enabled 1

*****  Plugin catchall (11.6 confidence) suggests   **************************

If you believe that sshd should be allowed setattr access on the root directory by default.

Then you should report this as a bug.

You can generate a local policy module to allow this access.

      Do

       allow this access for now by executing:

       # grep sshd /var/log/audit/audit.log | audit2allow -M mypol

# semodule -i mypol.pp
<!--NeedCopy-->

この問題を解決するには、次の手順を実行します:

  1. /etc/selinux/configに次の変更を加えることで、SELinuxを無効にします。

    SELINUX=disabled

  2. VDAを再起動します。

簡単インストールによるドメイン参加済みVDAの作成