SUSE に Linux VDA を手動でインストールする

最終公開日 : Nov 13, 2026
重要:
新規インストールの場合、迅速なインストールには簡易インストールを使用することをお勧めします。簡易インストールは、時間と労力を節約し、この記事で詳述されている手動インストールよりもエラーが発生しにくいです。

ステップ1:構成情報とLinuxマシンの準備

ステップ1a:YaSTツールの起動

SUSE Linux Enterprise YaSTツールは、オペレーティングシステムのあらゆる側面を構成するために使用されます。
テキストベースのYaSTツールを起動するには:
su -

yast
UIベースのYaSTツールを起動するには:
su -

yast2 &

ステップ1b:ネットワークの構成

以下のセクションでは、Linux VDAで使用されるさまざまなネットワーク設定とサービスの構成に関する情報を提供します。ネットワークの構成は、Network Managerなどの他の方法ではなく、YaSTツールを介して実行されます。これらの手順は、UIベースのYaSTツールを使用することに基づいています。テキストベースのYaSTツールも使用できますが、ここでは文書化されていない異なるナビゲーション方法があります。

ホスト名とドメインネームシステム(DNS)の構成

  1. UIベースのYaSTツールを起動します。
  2. Systemを選択し、次にNetwork Settingsを選択します。
  3. Hostname/DNSタブを開きます。
  4. Set Hostname via DHCPでnoオプションを選択します。
  5. Modify DNS ConfigurationでUse Custom Policyオプションを選択します。
  6. ネットワーク設定を反映するように、以下を編集します。
    • 静的ホスト名 – マシンのDNSホスト名を追加します。
    • ネームサーバー – DNSサーバーのIPアドレスを追加します。通常、これはADドメインコントローラーのIPアドレスです。
    • ドメイン検索リスト – DNSドメイン名を追加します。
  7. /etc/hostsファイルの次の行を変更して、FQDNとホスト名を最初の2つのエントリとして含めます。
    127.0.0.1 <FQDN of the VDA> <hostname of the VDA> localhost
注:
Linux VDAは現在、NetBIOS名の切り捨てをサポートしていません。したがって、ホスト名は15文字を超えてはなりません。 ヒント:
a~z、A~Z、0~9、およびハイフン (-) の文字のみを使用してください。アンダースコア (\_)、スペース、その他の記号は避けてください。ホスト名を数字で始めたり、ハイフンで終わらせたりしないでください。この規則は、Delivery Controllerのホスト名にも適用されます。

ホスト名の確認

ホスト名が正しく設定されていることを確認します。
hostname
このコマンドは、マシンのホスト名のみを返し、完全修飾ドメイン名 (FQDN) は返しません。
FQDNが正しく設定されていることを確認します。
hostname -f
このコマンドは、マシンのFQDNを返します。

名前解決とサービスの到達可能性の確認

FQDNを解決し、ドメインコントローラーとDelivery Controller™にpingできることを確認します。
nslookup domain-controller-fqdn

ping domain-controller-fqdn

nslookup delivery-controller-fqdn

ping delivery-controller-fqdn
FQDNを解決できない場合、またはこれらのマシンのいずれかにpingできない場合は、続行する前に手順を確認してください。

ステップ 1c: NTPサービスを構成する

VDA、Delivery Controller、およびドメインコントローラー間で正確なクロック同期を維持することが重要です。Linux VDAを仮想マシン(VM)としてホストすると、クロックスキューの問題が発生する可能性があります。このため、リモートNTPサービスを使用して時刻を維持することが推奨されます。デフォルトのNTP設定にいくつかの変更が必要になる場合があります。
SUSE 15.6の場合:
  1. UIベースのYaSTツールを起動します。
  2. 「ネットワークサービス」を選択し、次に「NTP構成」を選択します。
  3. 「NTPデーモンの開始」セクションで、「今すぐ起動時」を選択します。
  4. 「構成ソース」に「動的」を選択します。
  5. 必要に応じてNTPサーバーを追加します。NTPサービスは通常、Active Directoryドメインコントローラーでホストされます。
  6. /etc/chrony.confに次の行が存在する場合は、削除またはコメントアウトします。
    include /etc/chrony.d/*.conf
    chrony.confを編集した後、chronydサービスを再起動します。
    sudo systemctl restart chronyd.service

ステップ 1d: Linux VDAの依存パッケージをインストールする

SUSE Linux Enterprise用Linux VDAソフトウェアは、次のパッケージに依存します。
  • Open Motif ランタイム環境 2.3.1 以降
  • Cups 1.6.0 以降
  • ImageMagick 6.8 以降

リポジトリを追加する

ほとんどの必須パッケージ(ImageMagickを除く)は公式リポジトリから入手できます。ImageMagickパッケージを入手するには、YaSTまたは以下のコマンドを使用してsle-module-desktop-applicationsリポジトリを有効にします。
SUSEConnect -p sle-module-desktop-applications/<version number>/x86_64

Kerberosクライアントをインストールする

Linux VDAとDelivery Controller間の相互認証のためにKerberosクライアントをインストールします。
sudo zypper install krb5-client
Kerberosクライアントの構成は、使用されるActive Directory統合アプローチによって異なります。以下の説明を参照してください。

使用するデータベースをインストールして指定する

注:
  • VDIモードでのみSQLiteを使用し、ホスト型共有デスクトップ配信モデルにはPostgreSQLを使用することをお勧めします。
  • 簡単インストールおよびMCSの場合、SQLiteまたはPostgreSQLを手動でインストールすることなく使用するように指定できます。/etc/xdl/db.confで特に指定がない限り、Linux VDAはデフォルトでPostgreSQLを使用します。Linuxディストリビューションによって提供されるバージョンではなく、カスタムバージョンのPostgreSQLが必要な場合は、指定されたバージョンを手動でインストールし、/etc/xdl/db.confを編集して新しいバージョンを反映させ、簡単インストールスクリプト(ctxinstall.sh)またはMCSスクリプト(deploymcs.sh)を実行する前にPostgreSQLサービスを開始する必要があります。
  • 手動インストールの場合、SQLite、PostgreSQL、またはその両方を手動でインストールする必要があります。Linuxディストリビューションによって提供されるバージョンではなく、カスタムバージョンのPostgreSQLを使用できます。SQLiteとPostgreSQLの両方をインストールした場合、Linux VDAパッケージのインストール後に**/etc/xdl/db.conf**を編集して、どちらか一方を使用するように指定できます。
PostgreSQLをインストールする
このセクションでは、Linuxディストリビューションによって提供されるPostgreSQLのバージョンをインストールする方法について説明します。カスタムバージョンのPostgreSQLが必要な場合は、特定の要件に基づいてインストールできます。
Postgresqlをインストールするには、以下のコマンドを実行します。
sudo zypper install postgresql-server

sudo zypper install postgresql-jdbc
マシンの起動時または即座にPostgreSQLを開始するには、以下のコマンドを実行します。
sudo systemctl enable postgresql

sudo systemctl restart postgresql
SQLiteをインストールする
SUSEの場合、SQLiteをインストールするには以下のコマンドを実行します。
sudo zypper install sqlite3
使用するデータベースを指定する
SQLiteとPostgreSQLの両方をインストールした場合、Linux VDAパッケージのインストール後に**/etc/xdl/db.conf**を編集して、どちらか一方を使用するように指定できます。
  1. /opt/Citrix/VDA/sbin/ctxcleanup.shを実行します。新規インストールの場合、この手順は省略してください。
  2. 使用するデータベースを指定するために /etc/xdl/db.conf を編集します。以下は db.conf ファイルの例です。
    # database configuration file for Linux VDA

    ## database choice
    # possible choices are:
    #     SQLite
    #     PostgreSQL
    # default choice is PostgreSQL
    DbType="PostgreSQL"


    ## database port
    # specify database port for the database.
    # if not specified, default port will be used:
    # SQLite: N/A
    # PostgreSQL: 5432
    DbPort=5432


    ## PostgreSQL customized
    # only the following value means true, otherwise false:
    #     true
    #     yes
    #     y
    #     YES
    #     Y
    # default is false
    DbCustomizePostgreSQL=false

    ## PostgreSQL service name
    # specify the service name of PostgreSQL for Linux VDA
    # default is "postgresql"
    DbPostgreSQLServiceName="postgresql"
    カスタムバージョンのPostgreSQLを使用するには、DbCustomizePostgreSQL をtrueに設定します。
  3. ctxsetup.shを実行します。
注:
PostgreSQLのポート番号を設定するために、/etc/xdl/db.confを使用することもできます。

ステップ2:ハイパーバイザーを準備する

サポートされているハイパーバイザー上でLinux VDAをVMとして実行する場合、いくつかの変更が必要です。使用しているハイパーバイザープラットフォームに基づいて、以下の変更を行ってください。Linuxマシンをベアメタルハードウェアで実行している場合、変更は不要です。

XenServer (旧Citrix Hypervisor™) での時刻同期を修正する

XenServer®の時刻同期機能が有効になっている場合、各準仮想化Linux VM内でNTPとXenServerの両方で問題が発生します。両方ともシステムクロックを管理しようとします。クロックが他のサーバーと同期しなくなるのを避けるため、各Linuxゲスト内のシステムクロックをNTPと同期させてください。この場合、ホストの時刻同期を無効にする必要があります。HVMモードでは変更は不要です。
XenServer VM Toolsがインストールされた準仮想化Linuxカーネルを実行している場合、Linux VM内からXenServerの時刻同期機能が存在し、有効になっているかを確認できます。
su -

cat /proc/sys/xen/independent_wallclock
このコマンドは0または1を返します。
  • 0 - 時刻同期機能が有効になっており、無効にする必要があります。
  • 1 - 時刻同期機能が無効になっており、それ以上の操作は不要です。
「/proc/sys/xen/independent\_wallclock」ファイルが存在しない場合、以下の手順は不要です。
有効になっている場合は、ファイルに「1」を書き込むことで、時刻同期機能を無効にします。
sudo echo 1 > /proc/sys/xen/independent_wallclock
この変更を再起動後も永続的に適用するには、「/etc/sysctl.conf」ファイルを編集して次の行を追加します。
xen.independent_wallclock = 1
これらの変更を確認するには、システムを再起動します。
reboot
再起動後、設定が正しいことを確認します。
su -

cat /proc/sys/xen/independent_wallclock
このコマンドは値1を返します。

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

Hyper-V Linux Integration ServicesがインストールされているLinux VMは、Hyper-Vの時刻同期機能を使用してホストオペレーティングシステムの時刻を利用できます。システムクロックの精度を維持するため、NTPサービスと並行してこの機能を有効にしてください。
管理オペレーティングシステムから:
  1. Hyper-Vマネージャーコンソールを開きます。
  2. Linux VMの設定で、「統合サービス」を選択します。
  3. 「時刻の同期」が選択されていることを確認します。
注:
このアプローチは、NTPとの競合を避けるためにホストの時刻同期が無効になっているVMwareやXenServer(旧Citrix Hypervisor)とは異なります。Hyper-Vの時刻同期は、NTP時刻同期と共存し、補完することができます。

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

VMwareの時刻同期機能が有効になっている場合、各準仮想化Linux VM内でNTPとハイパーバイザーとの間で問題が発生します。両方ともシステムクロックを同期しようとします。クロックが他のサーバーと同期しなくなるのを避けるため、各Linuxゲスト内のシステムクロックをNTPと同期させてください。この場合、ホストの時刻同期を無効にする必要があります。
VMware Toolsがインストールされた準仮想化Linuxカーネルを実行している場合:
  1. vSphere Clientを開きます。
  2. Linux VMの設定を編集します。
  3. Virtual Machine Propertiesダイアログで、Optionsタブを開きます。
  4. VMware Toolsを選択します。
  5. Advancedボックスで、Synchronize guest time with hostのチェックを外します。

ステップ3:Linux VMをWindowsドメインに追加する

LinuxマシンをActive Directory(AD)ドメインに追加するには、次の方法があります。
選択した方法に基づいて指示に従ってください。
注:
Linux VDAのローカルアカウントとADのアカウントで同じユーザー名を使用すると、セッションの起動に失敗する場合があります。

サンバ ウィンバインド

Windows ドメインに参加

ドメインコントローラーに到達可能である必要があり、マシンをドメインに追加する権限を持つActive Directoryユーザーアカウントが必要です。
  1. YaSTを起動し、ネットワークサービス、次にWindowsドメインメンバーシップを選択します。
  2. 次の変更を行います。
    • ドメインまたはワークグループをActive Directoryドメインの名前またはドメインコントローラーのIPアドレスに設定します。ドメイン名が大文字であることを確認してください。
    • Linux認証にSMB情報を使用をオンにします。
      • ログイン時にホームディレクトリを作成をオンにします。
      • SSHのシングルサインオンをオンにします。
      • オフライン認証がオフになっていることを確認します。このオプションはLinux VDAと互換性がありません。
  3. OKをクリックします。一部のパッケージのインストールを求められた場合は、インストールをクリックします。
  4. ドメインコントローラーが見つかった場合、ドメインに参加するかどうかを尋ねられます。はいをクリックします。
  5. プロンプトが表示されたら、マシンをドメインに追加する権限を持つドメインユーザーの資格情報を入力し、OKをクリックします。
  6. サービスを手動で再起動するか、マシンを再起動します。マシンを再起動することをお勧めします。
    su -
    reboot

ドメインメンバーシップの確認

Delivery Controllerは、すべてのVDAマシン(WindowsおよびLinux VDA)がActive Directoryにコンピューターオブジェクトを持っていることを要求します。
Samba の net ads コマンドを実行して、マシンがドメインに参加していることを確認します。
sudo net ads testjoin
追加のドメインおよびコンピューターオブジェクト情報を確認するには、次のコマンドを実行します。
sudo net ads info

Kerberos構成の確認

システムキーファイルが作成され、有効なキーが含まれていることを確認します。
sudo klist –ke
このコマンドは、プリンシパル名と暗号スイートのさまざまな組み合わせで利用可能なキーのリストを表示します。これらのキーを使用してドメインコントローラーでマシンを認証するには、Kerberos kinit コマンドを実行します。
sudo kinit -k MACHINE\$@REALM
マシン名とレルム名は大文字で指定する必要があります。ドル記号 ($) は、シェル置換を防ぐためにバックスラッシュ (\\) でエスケープする必要があります。一部の環境では、DNS ドメイン名が Kerberos レルム名と異なる場合があります。レルム名が使用されていることを確認してください。このコマンドが成功した場合、出力は表示されません。
マシンアカウントの TGT チケットがキャッシュされていることを確認するには、次を使用します。
sudo klist
マシンアカウントの詳細を確認するには、次を使用します。
sudo net ads status

ユーザー認証の確認

wbinfo ツールを使用して、ドメインユーザーがドメインで認証できることを確認します。
wbinfo --krb5auth=domain\\username%password
ここで指定するドメインは AD ドメイン名であり、Kerberos レルム名ではありません。bash シェルの場合、バックスラッシュ (\\) 文字は別のバックスラッシュでエスケープする必要があります。このコマンドは、成功または失敗を示すメッセージを返します。
Winbind PAM モジュールが正しく構成されていることを確認します。これを行うには、以前使用したことのないドメインユーザーアカウントを使用して Linux VDA にログオンします。
ssh localhost -l domain\\username
id -u
id -u コマンドによって返された uid に対応する Kerberos 資格情報キャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
ユーザーの Kerberos 資格情報キャッシュ内のチケットが有効で期限切れになっていないことを確認します。
klist
セッションを終了します。
exit
同様のテストは、GnomeまたはKDEコンソールに直接ログオンして実行できます。ドメイン参加の検証後、ステップ6:Linux VDAのインストールに進みます。

Quest認証サービス

ドメインコントローラーでのQuestの構成

ドメインコントローラーにQuestソフトウェアをインストールして構成済みであり、Active Directoryでコンピューターオブジェクトを作成するための管理者権限が付与されていると仮定します。

ドメインユーザーがLinux VDAマシンにログオンできるようにする

ドメインユーザーがLinux VDAマシンでHDX™セッションを確立できるようにするには:
  1. Active Directoryユーザーとコンピューター管理コンソールで、そのユーザーアカウントのActive Directoryユーザープロパティを開きます。
  2. Unix Accountタブを選択します。
  3. Unix-enabledをオンにします。
  4. Primary GID Numberを実際のドメインユーザーグループのグループIDに設定します。
注:
これらの手順は、コンソール、RDP、SSH、またはその他のリモートプロトコルを使用してログオンするドメインユーザーを設定する場合にも同様に適用されます。

Linux VDAでのQuestの構成

VASデーモンの構成
Kerberosチケットの自動更新を有効にして切断する必要があります。認証(オフラインログオン)は無効にする必要があります。
sudo /opt/quest/bin/vastool configure vas vasd auto-ticket-renew-interval 32400

sudo /opt/quest/bin/vastool configure vas vas_auth allow-disconnected-auth false
このコマンドは、更新間隔を9時間(32,400秒)に設定します。これは、デフォルトの10時間のチケット有効期間より1時間短いです。チケット有効期間が短いシステムでは、このパラメーターをより小さい値に設定してください。
PAMとNSSを構成する
HDXおよびsu、ssh、RDPなどの他のサービスを介したドメインユーザーのログオンを有効にするには、PAMとNSSを手動で構成します。
sudo /opt/quest/bin/vastool configure pam

sudo /opt/quest/bin/vastool configure nss

Windowsドメインに参加する

Quest vastool コマンドを使用して、LinuxマシンをActive Directoryドメインに参加させます。
sudo /opt/quest/bin/vastool -u user join domain-name
user は、マシンをActive Directoryドメインに参加させる権限を持つ任意のドメインユーザーです。domain-name は、ドメインのDNS名です(例:example.com)。
ドメイン参加後、Linuxマシンを再起動します。

ドメインメンバーシップを確認する

Delivery Controllerは、すべてのVDAマシン(WindowsおよびLinux VDA)が Active Directory にコンピューターオブジェクトを持つことを要求します。Questに参加しているLinuxマシンがドメイン上にあることを確認するには:
sudo /opt/quest/bin/vastool info domain
マシンがドメインに参加している場合、このコマンドはドメイン名を返します。マシンがどのドメインにも参加していない場合、次のエラーが表示されます。
ERROR: No domain could be found.
ERROR: VAS_ERR_CONFIG: at ctx.c:414 in _ctx_init_default_realm default_realm not configured in vas.conf. Computer may not be joined to domain

ユーザー認証を確認する

QuestがPAMを介してドメインユーザーを認証できることを確認します。これを行うには、以前使用したことのないドメインユーザーアカウントを使用してLinux VDAにログオンします。
ssh localhost -l domain\\username
id -u
id -u コマンドによって返されたuidに対応するKerberos資格情報キャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
Kerberos資格情報キャッシュ内のチケットが有効で、期限切れになっていないことを確認します。
/opt/quest/bin/vastool klist
セッションを終了します。
exit
同様のテストは、GnomeまたはKDEコンソールに直接ログオンすることで実行できます。ドメイン参加の検証後、手順6:Linux VDAをインストールする に進みます。

セントリファイ ダイレクトコントロール

Windowsドメインへの参加

Centrify DirectControl Agentがインストールされたら、Centrifyのadjoinコマンドを使用してLinuxマシンをActive Directoryドメインに参加させます。
sudo adjoin -w -V -u user domain-name
userは、マシンをActive Directoryドメインに参加させる権限を持つActive Directoryドメインユーザーです。domain-nameは、Linuxマシンを参加させるドメインの名前です。

ドメインメンバーシップの確認

Delivery Controllerは、すべてのVDAマシン(WindowsおよびLinux VDA)がActive Directoryにコンピューターオブジェクトを持つことを要求します。Centrifyに参加したLinuxマシンがドメイン上にあることを確認するには、次のようにします。
sudo adinfo
Joined to domainの値が有効であり、CentrifyDCのmodeがconnectedを返すことを確認します。モードが開始状態のままになっている場合、Centrifyクライアントはサーバー接続または認証の問題を抱えています。
より包括的なシステムおよび診断情報は、以下を使用して利用できます。
adinfo --sysinfo all

adinfo –diag
さまざまなActive DirectoryおよびKerberosサービスへの接続をテストします。
adinfo --test
ドメイン参加の確認後、手順6:Linux VDAのインストールに進みます。

SSSD

SUSEでSSSDを使用している場合は、このセクションの指示に従ってください。このセクションには、Linux VDAマシンをWindowsドメインに参加させるための指示と、Kerberos認証を構成するためのガイダンスが含まれています。
SUSEでSSSDをセットアップするには、次の手順を完了します。
  1. ドメインに参加し、ホストキータブを作成する
  2. SSSD用にPAMを構成する
  3. SSSD をセットアップする
  4. SSSD を有効にする
  5. ドメインメンバーシップを確認する
  6. Kerberos の構成を確認する
  7. ユーザー認証を確認する

ドメインに参加し、ホストキーテーブルを作成する

SSSD は、ドメインへの参加やシステムキーテーブルファイルの管理のための Active Directory クライアント機能を提供しません。代わりに Samba のアプローチを使用できます。SSSD を構成する前に、以下の手順を完了してください。
  1. ネームサービスキャッシュデーモン (NSCD) デーモンを停止して無効にします。
    sudo systemctl stop nscd
    sudo systemctl disable nscd
  2. ホスト名と Chrony の時刻同期を確認します。
    hostname
    hostname -f
    chronyc traking
  3. 必要なパッケージをインストールまたは更新します。
    sudo zypper install samba-client sssd-ad
  4. ルートユーザーとして /etc/krb5.conf ファイルを編集し、kinit ユーティリティがターゲットドメインと通信できるようにします。、、および セクションの下に、次のエントリを追加します。
    注:
    AD インフラストラクチャに基づいて Kerberos を構成します。以下の設定は、単一ドメイン、単一フォレストモデルを対象としています。
    [libdefaults]

        dns_canonicalize_hostname = false

        rdns = false

        default_realm = REALM

        forwardable = true

    [realms]

        REALM = {

            kdc = fqdn-of-domain-controller

            default_domain = realm

            admin_server = fqdn-of-domain-controller
        }
    [domain_realm]

        .realm = REALM
    realm は Kerberos レルム名(例: example.com)です。REALM は大文字の Kerberos レルム名(例: EXAMPLE.COM)です。
  5. ルートユーザーとして /etc/samba/smb.conf を編集し、net ユーティリティがターゲットドメインと通信できるようにします。 セクションの下に、次のエントリを追加します。
    [global]
        workgroup = domain

        client signing = yes

        client use spnego = yes

        kerberos method = secrets and keytab

        realm = REALM

        security = ADS
    domain は、Active Directory ドメインの短い NetBIOS 名(例: EXAMPLE)です。
  6. ユーザーとグループを解決する際にSSSDを参照するように、/etc/nsswitch.conf ファイルの passwd および group エントリを変更します。
    passwd: compat sss

    group: compat sss
  7. 構成済みのKerberosクライアントを使用して、ターゲットドメインに管理者として認証します。
    kinit administrator
  8. net ユーティリティを使用して、システムをドメインに参加させ、システムキータブファイルを生成します。
    net ads join osname="SUSE Linux Enterprise Server" osVersion=15 -U administrator

SSSD 用に PAM を構成する

SSSD 用に PAM を構成する前に、必要なパッケージをインストールまたは更新します。
sudo zypper install sssd sssd-ad
SSSD を介したユーザー認証のために PAM モジュールを構成し、ユーザーログオン用のホームディレクトリを作成します。
sudo pam-config --add  --sss
sudo pam-config --add --mkhomedir

SSSD をセットアップする

  1. ルートユーザーとして /etc/sssd/sssd.conf を編集し、SSSD デーモンがターゲットドメインと通信できるようにします。sssd.conf の構成例(必要に応じて追加オプションを追加できます):
    [sssd]
        config_file_version = 2
        services = nss,pam
        domains = domain-dns-name

    [domain/domain-dns-name]
        id_provider = ad
        auth_provider = ad
        access_provider = ad
        ad_domain = domain-dns-name
        ad_server = fqdn-of-domain-controller
        ldap_id_mapping = true
        ldap_schema = ad

    # Kerberos settings
        krb5_ccachedir = /tmp
        krb5_ccname_template = FILE:%d/krb5cc_%U

    # Comment out if the users have the shell and home dir set on the AD side

        fallback_homedir = /home/%d/%u
        default_shell = /bin/bash

    # Uncomment and adjust if the default principal SHORTNAME$@REALM is not available

    # ldap_sasl_authid = host/client.ad.example.com@AD.EXAMPLE.COM

        ad_gpo_access_control = permissive
    domain-dns-name は、example.com などの DNS ドメイン名です。
    注:
    ldap_id_mapping は true に設定されており、SSSD 自体が Windows SID を Unix UID にマッピングします。そうでない場合、Active Directory は POSIX 拡張機能を提供できる必要があります。Linux セッションでの無効なログオンエラーを防ぐために、ad_gpo_access_control は permissive に設定されています。sssd.conf および sssd-ad の man ページを参照してください。
  2. sssd.conf のファイルの所有権と権限を設定します。
    sudo chmod 0600 /etc/sssd/sssd.conf

SSSD を有効にする

システム起動時に SSSD デーモンを有効にして開始するには、次のコマンドを実行します。
sudo systemctl enable sssd
sudo systemctl start sssd

ドメインメンバーシップを確認する

  1. Samba の net ads コマンドを実行して、マシンがドメインに参加していることを確認します。
    sudo net ads testjoin
  2. 追加のドメインおよびコンピューターオブジェクト情報を検証するには、次のコマンドを実行します。
    sudo net ads info

Kerberos構成の検証

システムキーファイルが作成され、有効なキーが含まれていることを確認します。
sudo klist -ke
このコマンドは、プリンシパル名と暗号スイートのさまざまな組み合わせで利用可能なキーのリストを表示します。
これらのキーを使用してドメインコントローラーでマシンを認証するには、Kerberosのkinitコマンドを実行します。
sudo kinit –k MACHINE\$@REALM
マシン名とレルム名は大文字で指定する必要があります。ドル記号($)は、シェル置換を防ぐためにバックスラッシュ(**\&ast;*)でエスケープする必要があります。一部の環境では、DNSドメイン名がKerberosレルム名と異なる場合があります。レルム名が使用されていることを確認してください。このコマンドが成功した場合、出力は表示されません。
マシンアカウントのTGTチケットがキャッシュされていることを確認するには、次を使用します。
sudo klist

ユーザー認証の検証

SSSDは、デーモンで認証を直接テストするためのコマンドラインツールを提供しておらず、PAMを介してのみ実行できます。
SSSD PAMモジュールが正しく構成されていることを確認するには、これまで使用したことのないドメインユーザーアカウントを使用してLinux VDAにログオンします。
ssh localhost -l domain\\username

id -u

klist

exit
klistコマンドによって返されたKerberosチケットがそのユーザーに対して正しく、期限切れになっていないことを確認します。
rootユーザーとして、以前のid -uコマンドによって返されたuidに対応するチケットキャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
同様のテストは、GnomeまたはKDEコンソールに直接ログオンすることで実行できます。ドメイン参加の検証後、手順6:Linux VDAのインストールに進みます。

PBIS

必要なPBISパッケージをダウンロードする

例:
wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86_64.rpm.sh

PBISインストールスクリプトを実行可能にする

例:
chmod +x pbis-open-9.1.0.551.linux.x86_64.rpm.sh

PBISインストールスクリプトを実行する

例:
sh pbis-open-9.1.0.551.linux.x86_64.rpm.sh

Windowsドメインに参加する

ドメインコントローラーに到達可能であり、マシンをドメインに追加する権限を持つActive Directoryユーザーアカウントが必要です。
/opt/pbis/bin/domainjoin-cli join domain-name user
user は、マシンをActive Directoryドメインに追加する権限を持つドメインユーザーです。domain-name は、ドメインのDNS名です(例: example.com)。
注: Bashをデフォルトシェルとして設定するには、/opt/pbis/bin/config LoginShellTemplate/bin/bash コマンドを実行します。

ドメインメンバーシップを確認する

Delivery Controllerは、すべてのVDAマシン(WindowsおよびLinux VDA)がActive Directoryにコンピューターオブジェクトを持つことを要求します。PBISに参加しているLinuxマシンがドメイン上にあることを確認するには:
/opt/pbis/bin/domainjoin-cli query
マシンがドメインに参加している場合、このコマンドは現在参加しているADドメインとOUに関する情報を返します。そうでない場合は、ホスト名のみが表示されます。

ユーザー認証を確認する

PBISがPAMを介してドメインユーザーを認証できることを確認します。そのためには、これまで使用されていないドメインユーザーアカウントを使用してLinux VDAにログオンします。
ssh localhost -l domain\\user

id -u
id -u コマンドによって返されたUIDに対応するKerberos資格情報キャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
セッションを終了します。
exit
ドメイン参加の検証後、手順6: Linux VDAをインストールするに進みます。

手順4: .NETをインストールする

.NET Runtime に加えて、Linux VDA をインストールまたはアップグレードする前に、サポートされているすべての Linux ディストリビューションに .ASP.NET Core Runtime をインストールする必要があります。Amazon Linux 2 にはバージョン 6 が必要です。その他のディストリビューションにはバージョン 8 が必要です。
必要な .NET バージョンが Linux ディストリビューションに含まれている場合は、組み込みのフィードからインストールします。含まれていない場合は、Microsoft パッケージフィードから .NET をインストールします。詳細については、<https://docs.microsoft.com/ja-jp/dotnet/core/install/linux-package-managers> を参照してください。
.NET のインストール後、which dotnet コマンドを実行してランタイムパスを見つけます。
コマンドの出力に基づいて、.NET ランタイムバイナリパスを設定します。たとえば、コマンドの出力が /aa/bb/dotnet の場合、.NET バイナリパスとして /aa/bb を使用します。

ステップ 5:Linux VDA パッケージをダウンロードする

  1. Citrix Virtual Apps and Desktops ダウンロードページ にアクセスします。
  2. 適切なバージョンの Citrix Virtual Apps and Desktops を展開します。
  3. コンポーネントを展開して Linux VDA を見つけます。例:
    Citrix Virtual Apps and Desktops のコンポーネント
  4. Linux VDA リンクをクリックして、Linux VDA のダウンロードにアクセスします。
    Linux VDA のダウンロード
  5. お使いの Linux ディストリビューションに一致する Linux VDA パッケージをダウンロードします。
  6. Linux VDA パッケージの整合性を検証するために使用できる GPG 公開キーをダウンロードします。例:
    GPG 公開キー
    公開キーを使用して Linux VDA パッケージの整合性を検証するには、次のコマンドを実行して公開キーを RPM データベースにインポートし、パッケージの整合性を確認します。
    rpmkeys --import <path to the public key>
    rpm --checksig --verbose <path to the Linux VDA package>

ステップ6: Linux VDAをインストールする

ステップ6a: 古いバージョンをアンインストールする

以前の2つのバージョンおよびLTSRリリース以外の以前のバージョンをインストールした場合は、新しいバージョンをインストールする前にアンインストールしてください。
  1. Linux VDAサービスを停止します:
    sudo systemctl stop ctxvda

    sudo systemctl stop ctxhdx
    注:
    ctxvdaサービスとctxhdxサービスを停止する前に、モニターサービスデーモンを停止するためにsystemctl stop ctxmonitordコマンドを実行します。そうしないと、モニターサービスデーモンが停止したサービスを再起動します。
  2. パッケージをアンインストールします:
    sudo rpm -e XenDesktopVDA
重要:
最新の2つのバージョンからのアップグレードがサポートされています。
注:
インストールされているコンポーネントは /opt/Citrix/VDA/ にあります。
コマンドを実行するには、フルパスが必要です。あるいは、/opt/Citrix/VDA/sbinと**/opt/Citrix/VDA/bin**をシステムパスに追加できます。

ステップ6b: Linux VDAをインストールする

Zypperを使用してLinux VDAソフトウェアをインストールします:
sudo zypper install XenDesktopVDA-<version>.sle15_x.x86_64.rpm

ステップ6c: Linux VDAをアップグレードする(オプション)

Linux VDAは、最新バージョンからのアップグレードをサポートしています。たとえば、Linux VDAを2308から2311に、1912 LTSRから2203 LTSRにアップグレードできます。
注:
既存のインストールをアップグレードすると、/etc/xdlの下にある構成ファイルが上書きされます。アップグレードを実行する前に、ファイルをバックアップしてください。
sudo zypper -i install <PATH>/<Linux VDA RPM>
SUSE 15のRPM依存関係リスト:
java-17-openjdk >= 17
ImageMagick >= 7.0
dbus-1 >= 1.12.2
dbus-1-x11 >= 1.12.2
xorg-x11 >= 7.6_1
libXpm4 >= 3.5.12
libXrandr2 >= 1.5.1
libXtst6 >= 1.2.3
pam >= 1.3.0
bash >= 4.4
findutils >= 4.6
gawk >= 4.2
sed >= 4.4
cups >= 2.2
cups-filters >= 1.25
libxml2-2 >= 2.9
libmspack0 >= 0.6
ibus >= 1.5
libQt5DBus5 >= 5.12
libtcmalloc4 >= 2.5
libcap-progs >= 2.26
mozilla-nss-tools >= 3.53.1
libpython3_6m1_0 >= 3.6~
libQt5Widgets5 >= 5.12
libqrencode4 >= 4.0.0
libImlib2-1 >= 1.4.10
libgtk-2_0-0 >= 2.24
libgthread-2_0-0 >= 2.48
pulseaudio-utils >= 5.0
lsb-release >= 2.0
pkexec >= 121
cyrus-sasl-gssapi >= 2.1
libfuse2 >= 2.9
重要:
アップグレード後にLinux VDAマシンを再起動します。

ステップ7:NVIDIA GRIDドライバーをインストールする

HDX 3D Proを有効にするには、ハイパーバイザーとVDAマシンにNVIDIA GRIDドライバーをインストールする必要があります。
特定のハイパーバイザーにNVIDIA GRID Virtual GPU Manager(ホストドライバー)をインストールして構成するには、以下のガイドを参照してください。
NVIDIA GRIDゲストVMドライバーをインストールして構成するには、以下の一般的な手順を実行します。
  1. ゲストVMがシャットダウンされていることを確認します。
  2. ハイパーバイザーのコントロールパネルで、VMにGPUを割り当てます。
  3. VMを起動します。
  4. ゲストVMドライバー(クラウドベンダーまたはNVIDIAから提供)をVMにインストールします。

ステップ8:Linux VDAを構成する

注:
ランタイム環境をセットアップする前に、OSにen_US.UTF-8ロケールがインストールされていることを確認してください。ロケールがOSで利用できない場合は、sudo locale-gen en_US.UTF-8コマンドを実行します。Debianの場合、/etc/locale.genファイルを編集して**# en_US.UTF-8 UTF-8**行のコメントを解除し、sudo locale-genコマンドを実行します。
パッケージのインストール後、ctxsetup.shスクリプトを実行してLinux VDAを構成する必要があります。スクリプトが変更を加える前に、環境を検証し、すべての依存関係がインストールされていることを確認します。必要に応じて、いつでもスクリプトを再実行して設定を変更できます。
スクリプトは、プロンプトに従って手動で実行することも、事前設定された応答で自動的に実行することもできます。続行する前に、スクリプトに関するヘルプを確認してください。
sudo /opt/Citrix/VDA/sbin/ctxsetup.sh –help

プロンプトによる構成

プロンプト表示される質問で手動設定を実行します。
sudo /opt/Citrix/VDA/sbin/ctxsetup.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つのFQDNまたはCNAMEを指定する必要があります。
  • CTX\_XDL\_VDI\_MODE='y\|n' – マシンを専用デスクトップ配信モデル(VDI)として構成するか、ホスト型共有デスクトップ配信モデルとして構成するか。HDX 3D Pro環境の場合、値を 'y' に設定します。
  • CTX\_XDL\_HDX\_3D\_PRO='y\|n' – Linux VDAは、リッチグラフィックアプリケーションの仮想化を最適化するために設計されたGPUアクセラレーションテクノロジーのセットであるHDX 3D Proをサポートしています。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/'<none\>' – セッションで使用するGNOME、GNOME Classic、またはMATEデスクトップ環境を指定します。'<none\>' に設定すると、VDAで構成されているデフォルトのデスクトップが使用されます。
    コマンドを実行するか、システムトレイを使用することで、デスクトップ環境を切り替えることもできます。詳細については、「デスクトップ切り替えコマンド」および「システムトレイ」を参照してください。
  • CTX\_XDL\_DOTNET\_RUNTIME\_PATH=path-to-install-dotnet-runtime – 新しいブローカーエージェントサービス(ctxvda)をサポートするために.NETをインストールするパス。デフォルトパスは '/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ポートを持つLDAP FQDNのスペース区切りリストを提供できます。たとえば、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名を指定することをサポートしています。
環境変数を設定し、構成スクリプトを実行します。
export CTX_XDL_NON_DOMAIN_JOINED='n'
export CTX_XDL_AD_INTEGRATION=sssd|winbind|centrify|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'
sudo -E /opt/Citrix/VDA/sbin/ctxsetup.sh --silent
sudoコマンドを実行するときは、既存の環境変数を新しく作成されるシェルに渡すために、-Eオプションを入力します。上記のコマンドから、最初の行に**#\!/bin/bash**を含むシェルスクリプトファイルを作成することをお勧めします。
または、単一のコマンドを使用してすべてのパラメーターを指定することもできます。
sudo CTX_XDL_NON_DOMAIN_JOINED='n' \
CTX_XDL_AD_INTEGRATION=winbind|centrify|sssd|pbis|quest \
CTX_XDL_DDC_LIST='<list-ddc-fqdns>' \
CTX_XDL_VDI_MODE='y|n' \
CTX_XDL_HDX_3D_PRO='y|n' \
CTX_XDL_START_SERVICE='y|n' \
CTX_XDL_REGISTER_SERVICE='y|n' \
CTX_XDL_ADD_FIREWALL_RULES='y|n' \
CTX_XDL_DESKTOP_ENVIRONMENT= gnome|gnome-classic|mate|'<none>' \
CTX_XDL_DOTNET_RUNTIME_PATH='<path-to-install-dotnet-runtime>' \
CTX_XDL_VDA_PORT='<port-number>' \
CTX_XDL_SITE_NAME='<dns-site-name>'|'<none>' \
CTX_XDL_LDAP_LIST='<list-ldap-servers>'|'<none>' \
CTX_XDL_SEARCH_BASE='<search-base-set>'|'<none>' \
CTX_XDL_SUPPORT_DDC_AS_CNAME='y|n' \
/opt/Citrix/VDA/sbin/ctxsetup.sh --silent

構成の変更を削除する

シナリオによっては、Linux VDAパッケージをアンインストールせずに、ctxsetup.shスクリプトによって行われた構成の変更を削除する必要がある場合があります。
続行する前に、このスクリプトに関するヘルプを確認してください。
sudo /usr/local/sbin/ctxcleanup.sh --help
構成の変更を削除するには:
sudo /usr/local/sbin/ctxcleanup.sh
重要:
このスクリプトは、データベースからすべての構成データを削除し、Linux VDAを動作不能にします。

構成ログ

ctxsetup.shおよびctxcleanup.shスクリプトは、コンソールにエラーを表示し、追加情報は構成ログファイルに書き込まれます。
/tmp/xdl.configure.log
変更を有効にするには、Linux VDAサービスを再起動します。

ステップ9: XDPingを実行する

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

ステップ10: Linux VDAを実行する

ctxsetup.shスクリプトを使用してLinux VDAを構成した後、次のコマンドを実行してLinux VDAを制御できます。
Linux VDAの起動:
Linux VDAサービスを起動するには:
sudo systemctl start ctxhdx

sudo systemctl start ctxvda
Linux VDAの停止:
Linux VDAサービスを停止するには:
sudo systemctl stop ctxvda

sudo systemctl stop ctxhdx
注:
ctxvdaサービスとctxhdxサービスを停止する前に、systemctl stop ctxmonitordコマンドを実行してモニターサービスデーモンを停止してください。そうしないと、モニターサービスデーモンが停止したサービスを再起動します。
Linux VDAの再起動:
Linux VDAサービスを再起動するには:
sudo systemctl stop ctxvda

sudo systemctl restart ctxhdx

sudo systemctl restart ctxvda
Linux VDAのステータスの確認:
Linux VDAサービスの実行ステータスを確認するには:
sudo systemctl status ctxvda

sudo systemctl status ctxhdx

ステップ11: マシンカタログを作成する

マシンカタログを作成し、Linux VDAマシンを追加するプロセスは、従来のWindows VDAのアプローチと似ています。これらのタスクを完了する方法の詳細については、「マシンカタログの作成」および「マシンカタログの管理」を参照してください。
Linux VDAマシンを含むマシンカタログを作成する場合、Windows VDAマシン用のマシンカタログを作成するプロセスとは異なるいくつかの制限があります。
  • オペレーティングシステムには、以下を選択します。
    • ホストされた共有デスクトップ配信モデルの場合は、Multi-session OSオプション。
    • VDI専用デスクトップ配信モデルの場合は、Single-session OSオプション。
  • 同じマシンカタログ内でLinux VDAマシンとWindows VDAマシンを混在させないでください。
注:
Citrix Studioの初期バージョンでは、「Linux OS」という概念はサポートされていませんでした。ただし、Windows Server OSまたはServer OSオプションを選択すると、同等のホストされた共有デスクトップ配信モデルが示唆されます。Windows Desktop OSまたはDesktop OSオプションを選択すると、マシンごとに1人のユーザーという配信モデルが示唆されます。
ヒント:
マシンを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 2503を参照してください。