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

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

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

ステップ1a:ホスト名の設定

マシンのホスト名が正しく報告されるように、/etc/hostnameファイルを変更して、マシンのホスト名のみが含まれるようにします。
hostname

ステップ1b:ホスト名にループバックアドレスを割り当てる

マシンのDNSドメイン名と完全修飾ドメイン名(FQDN)が正しく報告されることを確認してください。そのためには、/etc/hostsファイルの次の行を変更して、FQDNとホスト名を最初の2つのエントリとして含めます。
127.0.0.1 hostname-fqdn hostname localhost
例:
127.0.0.1 vda01.example.com vda01 localhost
ファイル内の他のエントリからhostname-fqdnまたはhostnameへの他の参照をすべて削除します。
注:
Linux VDAは現在、NetBIOS名の切り詰めをサポートしていません。ホスト名は15文字を超えてはなりません。
ヒント:
a~z、A~Z、0~9、およびハイフン(-)文字のみを使用してください。アンダースコア(\_)、スペース、その他の記号は避けてください。ホスト名を数字で始めたり、ハイフンで終わらせたりしないでください。このルールは、Delivery Controllerのホスト名にも適用されます。

ステップ1c:ホスト名の確認

マシンを再起動し、ホスト名が正しく設定されていることを確認します。
hostname
このコマンドは、マシンのホスト名のみを返し、FQDNは返しません。
FQDNが正しく設定されていることを確認します。
hostname -f
このコマンドは、マシンのFQDNを返します。

ステップ 1d: マルチキャスト DNS を無効にする

デフォルト設定ではマルチキャスト DNS (mDNS) が有効になっており、名前解決の結果が一貫しなくなる可能性があります。
mDNS を無効にするには、/etc/nsswitch.conf を編集し、次の行を変更します。
hosts: files mdns_minimal [NOTFOUND=return] dns
に変更します。
hosts: files dns

ステップ 1e: 名前解決とサービス到達可能性を確認する

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

ping domain-controller-fqdn

nslookup delivery-controller-fqdn

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

ステップ 1f: クロック同期を構成する (chrony)

VDA、Delivery Controller、およびドメインコントローラー間で正確なクロック同期を維持することは非常に重要です。Linux VDA を仮想マシン (VM) としてホストすると、クロックスキューの問題が発生する可能性があります。このため、リモート時刻サービスとの時刻同期が推奨されます。
chrony をインストールします。
apt-get install chrony
root ユーザーとして、/etc/chrony/chrony.conf を編集し、各リモートタイムサーバーのサーバーエントリを追加します。
server peer1-fqdn-or-ip-address iburst
server peer2-fqdn-or-ip-address iburst
一般的な展開では、ローカルドメインコントローラーから時刻を同期し、公開 NTP プールサーバーから直接同期しないでください。ドメイン内の各 Active Directory ドメインコントローラーのサーバーエントリを追加します。
ループバック IP アドレス、localhost、および公開サーバー *.pool.ntp.org エントリを含む、リストされている他の server または pool エントリを削除します。
変更を保存し、Chrony デーモンを再起動します。
sudo systemctl restart chrony

ステップ 1g: パッケージをインストールする

sudo apt-get install -y libsasl2-2

sudo apt-get install -y libgtk2.0-0

ステップ1h:必要な依存関係をインストールするためのリポジトリを追加する

Debian 11の場合、/etc/apt/sources.list ファイルに deb http://deb.debian.org/debian/ bullseye main 行を追加します。

ステップ1i:使用するデータベースをインストールして指定する

注:
  • VDIモードでのみSQLiteを使用し、ホスト型共有デスクトップ配信モデルにはPostgreSQLを使用することをお勧めします。
  • 簡単なインストールとMCSの場合、SQLiteまたはPostgreSQLを手動でインストールすることなく使用するように指定できます。/etc/xdl/db.conf で特に指定しない限り、Linux VDAはデフォルトでPostgreSQLを使用します。
  • 手動インストールの場合、SQLite、PostgreSQL、またはその両方を手動でインストールする必要があります。SQLiteとPostgreSQLの両方をインストールした場合、Linux VDAパッケージのインストール後に /etc/xdl/db.conf を編集して、どちらか一方を使用するように指定できます。
このセクションでは、PostgreSQLとSQLiteのインストール方法、およびどちらか一方を使用するように指定する方法について説明します。

PostgreSQLをインストールする

PostgreSQLをインストールするには、次のコマンドを実行します。
sudo apt-get update

sudo apt-get install -y postgresql

sudo apt-get install -y libpostgresql-jdbc-java
マシンの起動時または即座にPostgreSQLを開始するには、次のコマンドをそれぞれ実行します。
sudo systemctl enable postgresql

sudo systemctl start postgresql

SQLiteをインストールする

Debianの場合、SQLiteをインストールするには、次のコマンドを実行します。
sudo apt-get install -y sqlite3

使用するデータベースを指定する

SQLiteとPostgreSQLの両方をインストールした場合、Linux VDAパッケージのインストール後に /etc/xdl/db.conf を編集して、どちらか一方を使用するように指定できます。
  1. /opt/Citrix/VDA/sbin/ctxcleanup.sh を実行します。新規インストールの場合、この手順は省略してください。
  2. 使用するデータベースを指定するために、/etc/xdl/db.conf を編集します。
  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
これらの変更を確認するには、システムを再起動します。
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. 仮想マシンのプロパティダイアログで、オプションタブを開きます。
  4. VMware Toolsを選択します。
  5. Advanced ボックスで、Synchronize guest time with host のチェックを外します。

手順 3:Linux VM を Windows ドメインに追加する

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

サンバ Winbind

必要なパッケージをインストールまたは更新する

sudo apt-get install winbind samba libnss-winbind libpam-winbind krb5-config krb5-locales krb5-user

マシンの起動時に Winbind デーモンが起動するように有効にする

Winbind デーモンは、マシンの起動時に開始するように構成する必要があります。
sudo systemctl enable winbind
注:
winbind スクリプトが /etc/init.d にあることを確認してください。

Kerberos を構成する

ルートユーザーとして /etc/krb5.conf を開き、次の設定を行います。
注:
AD インフラストラクチャに基づいて Kerberos を構成します。次の設定は、単一ドメイン、単一フォレストモデルを対象としています。
[libdefaults]
default_realm = REALM
dns_lookup_kdc = false
[realms]
REALM = {
admin_server = domain-controller-fqdn
kdc = domain-controller-fqdn
}
[domain_realm]
domain-dns-name = REALM
.domain-dns-name = REALM
このコンテキストでの domain-dns-name パラメーターは、example.com のような DNS ドメイン名です。REALM は、EXAMPLE.COM のような大文字の Kerberos レルム名です。

Winbind 認証を構成する

vim /etc/samba/smb.conf コマンドを実行して /etc/samba/smb.conf を開き、次の設定を行います。
[global]
workgroup = WORKGROUP
security = ADS
realm = REALM
encrypt passwords = yes
idmap config *:range = 16777216-33554431
kerberos method = secrets and keytab
winbind refresh tickets = yes
template shell = /bin/bash
WORKGROUP は REALM の最初のフィールドであり、REALM は大文字の Kerberos レルム名です。

nsswitch を設定する

/etc/nsswitch.conf を開いて、以下の行に winbind を追加します:
passwd: files systemd winbind
group: files systemd winbind

Windows ドメインに参加する

ドメインコントローラーに到達可能である必要があり、コンピューターをドメインに追加する権限を持つ Active Directory ユーザーアカウントが必要です:
sudo net ads join <Kerberos realm name in uppercase> -U <domain user with permission to add computers to the domain>

Winbind を再起動する

sudo systemctl restart winbind

Winbind 用の PAM を設定する

次のコマンドを実行し、Winbind NT/Active Directory authentication および Create home directory on login オプションが選択されていることを確認します:
sudo pam-auth-update
ヒント:
winbind デーモンは、マシンがドメインに参加している場合にのみ実行され続けます。

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

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

Kerberos の構成を確認する

Kerberos が Linux VDA で使用するために正しく構成されていることを確認するには、システム keytab ファイルが作成され、有効なキーが含まれていることを確認します:
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
注:
SSH コマンドを正常に実行するには、SSH が有効になっており、正しく機能していることを確認してください。
id -u コマンドによって返された uid に対応する Kerberos 資格情報キャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
ユーザーの Kerberos 資格情報キャッシュ内のチケットが有効で、期限切れになっていないことを確認します。
klist
セッションを終了します。
exit
同様のテストは、Gnome または KDE コンソールに直接ログオンして実行できます。ドメイン参加の確認後、手順 6: Linux VDA のインストール に進みます。
ヒント:
ユーザー認証に成功しても、ドメインアカウントでログオンしたときにデスクトップが表示されない場合は、マシンを再起動して再試行してください。

Quest 認証サービス

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

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

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

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

Linux VDAでQuestを構成する

SELinuxポリシーの適用を回避する
デフォルトのRHEL環境では、SELinuxが完全に適用されています。この適用により、Questが使用するUnixドメインソケットIPCメカニズムが妨げられ、ドメインユーザーがログオンできなくなります。
この問題を回避する便利な方法は、SELinuxを無効にすることです。rootユーザーとして、/etc/selinux/configを編集し、SELinux設定を変更します。
SELINUX=disabled
この変更にはマシンの再起動が必要です。
reboot
重要:
この設定は慎重に使用してください。無効にした後にSELinuxポリシーの適用を再度有効にすると、rootユーザーや他のローカルユーザーであっても、完全にロックアウトされる可能性があります。
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
ユーザーは、コンピューターをActive Directoryドメインに参加させる権限を持つ任意のドメインユーザーです。domain-nameは、ドメインのDNS名です(例: example.com)。
ドメイン参加後、Linuxマシンを再起動します。

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

Delivery Controllerは、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
ドメイン参加の検証後、(/ja-jp/linux-virtual-delivery-agent/2407/installation-overview/manual-installation-overview/debian.html#step-6-install-the-linux-vda)に進みます。

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

Windowsドメインへの参加

Centrify DirectControlエージェントがインストールされている場合、Centrify adjoinコマンドを使用してLinuxマシンをActive Directoryドメインに参加させます。
su –
adjoin -w -V -u user domain-name
user パラメーターは、コンピューターをActive Directoryドメインに参加させる権限を持つActive Directoryドメインユーザーです。domain-name パラメーターは、Linuxマシンを参加させるドメインの名前です。

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

Delivery Controllerは、WindowsまたはLinuxのすべてのVDAマシンがActive Directoryにコンピューターオブジェクトを持つことを要求します。Centrifyに参加しているLinuxマシンがドメイン上にあることを確認するには:
su –

adinfo
Joined to domain の値が有効であり、CentrifyDC mode が connected を返すことを確認します。モードが開始状態のままになっている場合、Centrifyクライアントはサーバー接続または認証の問題を抱えています。
より包括的なシステムおよび診断情報は、以下を使用して利用できます。
adinfo --sysinfo all

adinfo --diag
さまざまなActive DirectoryおよびKerberosサービスへの接続をテストします。
adinfo --test
ドメイン参加の検証後、(/ja-jp/linux-virtual-delivery-agent/2407/installation-overview/manual-installation-overview/debian.html#step-6-install-the-linux-vda)に進みます。

SSSD

Kerberosの構成

Kerberosをインストールするには、次のコマンドを実行します。
sudo apt-get install krb5-user
Kerberos を構成するには、root として /etc/krb5.conf を開き、パラメーターを設定します。
注:
Kerberos は AD インフラストラクチャに基づいて構成します。以下の設定は、単一ドメイン、単一フォレストモデルを対象としています。
[libdefaults]
default_realm = REALM
dns_lookup_kdc = false
rdns = false
[realms]
REALM = {
admin_server = domain-controller-fqdn
kdc = domain-controller-fqdn
}
[domain_realm]
domain-dns-name = REALM
.domain-dns-name = REALM
このコンテキストでの domain-dns-name パラメーターは、example.com のような DNS ドメイン名です。REALM は、EXAMPLE.COM のような大文字の Kerberos レルム名です。

ドメインへの参加

SSSD は、ID プロバイダーとして Active Directory を使用し、認証に Kerberos を使用するように構成する必要があります。ただし、SSSD は、ドメインへの参加やシステム keytab ファイルの管理のための AD クライアント機能を提供しません。代わりに、adcli、realmd、または Samba を使用できます。
注:
このセクションでは、adcli と Samba の情報のみを提供します。
  • adcli を使用してドメインに参加する場合は、次の手順を実行します。
  1. adcli をインストールします。
    sudo apt-get install adcli
  2. adcli を使用してドメインに参加します。
    古いシステムキーtabファイルを削除し、以下を使用してドメインに参加します。
    su -

    rm -rf /etc/krb5.keytab

    adcli join domain-dns-name -U user -H hostname-fqdn
    「user」は、マシンをドメインに追加する権限を持つドメインユーザーです。「hostname-fqdn」は、マシンのFQDN形式のホスト名です。
    「-H」オプションは、Linux VDAが必要とするhost/hostname-fqdn@REALM形式でSPNを生成するために「adcli」に必要です。
  3. システムキーtabを確認します。
    システムキーtabファイルが作成されたことを確認するために、sudo klist -ket コマンドを実行します。
    各キーのタイムスタンプが、マシンがドメインに参加した時刻と一致することを確認します。
  • Samba を使用してドメインに参加する場合は、次の手順を完了します。
  1. パッケージをインストールします。
    sudo apt-get install samba krb5-user
  2. Samba を構成します。
    /etc/samba/smb.conf を開き、次の設定を行います。
    [global]
    workgroup = WORKGROUP
    security = ADS
    realm = REALM
    client signing = yes
    client use spnego = yes
    kerberos method = secrets and keytab
    WORKGROUP は REALM の最初のフィールドであり、REALM は大文字のKerberosレルム名です。
  3. Samba を使用してドメインに参加します。
    ドメインコントローラーに到達可能であり、コンピューターをドメインに追加する権限を持つWindowsアカウントが必要です。
    sudo net ads join <the Kerberos realm name in uppercase> -U <domain user with permission to add computers to the domain>

SSSD をセットアップする

必要なパッケージをインストールまたは更新する:
必要な SSSD および構成パッケージがまだインストールされていない場合は、インストールします。
sudo apt-get install sssd
パッケージがすでにインストールされている場合は、更新することをお勧めします。
sudo apt-get install --only-upgrade sssd

SSSD を構成する

SSSD デーモンを開始する前に、SSSD の構成変更が必要です。SSSD の一部のバージョンでは、/etc/sssd/sssd.conf 構成ファイルはデフォルトではインストールされておらず、手動で作成する必要があります。root として、/etc/sssd/sssd.conf を作成または開いて、次の設定を行います。
[sssd]
services = nss, pam
config_file_version = 2
domains = domain-dns-name
[domain/domain-dns-name]
id_provider = ad
access_provider = ad
auth_provider = krb5
krb5_realm = REALM
# Set krb5_renewable_lifetime higher if TGT renew lifetime is longer than 14 days
krb5_renewable_lifetime = 14d
# Set krb5_renew_interval to lower value if TGT ticket lifetime is shorter than 2 hours
krb5_renew_interval = 1h
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U
# This ldap_id_mapping setting is also the default value
ldap_id_mapping = true
override_homedir = /home/%d/%u
default_shell = /bin/bash
ad_gpo_map_remote_interactive = +ctxhdx
注:
ldap\_id\_mapping は true に設定されており、SSSD 自体が Windows SID を Unix UID にマッピングする処理を行います。そうでない場合、Active Directory は POSIX 拡張機能を提供できる必要があります。PAM サービス ctxhdx が ad\_gpo\_map\_remote\_interactive に追加されます。
このコンテキストでの domain-dns-name パラメーターは、example.com のような DNS ドメイン名です。REALM は、EXAMPLE.COM のような大文字の Kerberos レルム名です。NetBIOS ドメイン名を構成する必要はありません。
構成設定の詳細については、sssd.conf および sssd-ad の man ページを参照してください。
SSSD デーモンは、構成ファイルが所有者読み取り権限のみを持つことを要求します。
sudo chmod 0600 /etc/sssd/sssd.conf

SSSD デーモンを開始する

SSSD デーモンを今すぐ開始し、マシンの起動時にデーモンが開始されるようにするには、次のコマンドを実行します。
sudo systemctl start sssd

sudo systemctl enable sssd

PAM設定

次のコマンドを実行し、SSS authentication と Create home directory on login オプションが選択されていることを確認します。
sudo pam-auth-update

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

Delivery Controllerでは、すべてのVDAマシン(WindowsおよびLinux VDA)がActive Directoryにコンピューターオブジェクトを持っている必要があります。
  • ドメインメンバーシップの確認にadcliを使用する場合は、sudo adcli info domain-dns-nameコマンドを実行してドメイン情報を表示します。
  • ドメインメンバーシップの確認にSambaを使用する場合は、sudo net ads testjoinコマンドを実行してマシンがドメインに参加していることを確認し、sudo net ads infoコマンドを実行して追加のドメインおよびコンピューターオブジェクト情報を確認します。

Kerberos構成の確認

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

ユーザー認証の確認

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

id -u

klist

exit
klistコマンドによって返されるKerberosチケットがそのユーザーに対して正しく、期限切れになっていないことを確認します。
ルートユーザーとして、以前の id -u コマンドによって返された uid に対応するチケットキャッシュファイルが作成されたことを確認します。
ls /tmp/krb5cc_uid
同様のテストは、KDEまたはGnomeディスプレイマネージャーにログオンすることで実行できます。ドメイン参加の検証後、(/ja-jp/linux-virtual-delivery-agent/2407/installation-overview/manual-installation-overview/debian.html#step-6-install-the-linux-vda)に進みます。

PBIS

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

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

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

sudo chmod +x pbis-open-9.1.0.551.linux.x86_64.deb.sh

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

sudo sh pbis-open-9.1.0.551.linux.x86_64.deb.sh

Windowsドメインに参加する

ドメインコントローラーに到達可能であり、コンピューターをドメインに追加する権限を持つActive Directoryユーザーアカウントが必要です。
sudo /opt/pbis/bin/domainjoin-cli join domain-name user
user は、コンピューターをActive Directoryドメインに追加する権限を持つドメインユーザーです。domain-name は、ドメインのDNS名です(例: example.com)。
注: Bashをデフォルトシェルとして設定するには、sudo /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にログオンします。
sudo 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 が必要です。
お使いの Linux ディストリビューションに必要な .NET バージョンが含まれている場合は、組み込みのフィードからインストールします。そうでない場合は、Microsoft パッケージフィードから .NET をインストールします。詳しくは、<https://docs.microsoft.com/ja-jp/dotnet/core/install/linux-package-managers> を参照してください。
.NET のインストール後、which dotnet コマンドを実行してランタイムパスを見つけます。
コマンド出力に基づいて、.NET ランタイムバイナリパスを設定します。たとえば、コマンド出力が /aa/bb/dotnet の場合、/aa/bb を .NET バイナリパスとして使用します。

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

  1. Citrix Virtual Apps and Desktops ダウンロードページ に移動します。
  2. Citrix Virtual Apps and Desktops の適切なバージョンを展開します。
  3. Components を展開して Linux VDA を見つけます。例:
    Citrix Virtual Apps and Desktops のコンポーネント
  4. Linux VDA のリンクをクリックして、Linux VDA のダウンロードにアクセスします。
    Linux VDA のダウンロード
  5. お使いのLinuxディストリビューションに一致するLinux VDAパッケージをダウンロードします。
  6. Linux VDAパッケージの整合性を検証するために使用できるGPG公開鍵をダウンロードします。例:
    GPG公開鍵(/en-us/linux-virtual-delivery-agent/2407/media/gpg-key.png)
    Linux VDAパッケージの整合性を検証するには、次のコマンドを実行して公開鍵をDEBデータベースにインポートし、パッケージの整合性を確認します。
    sudo apt-get install dpkg-sig
    gpg --import <path to the public key>
    dpkg-sig --verify <path to the Linux VDA package>

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

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

Debianパッケージマネージャーを使用してLinux VDAソフトウェアをインストールします。
Debian 12.5の場合:
sudo dpkg -i xendesktopvda_<version>.debian12_amd64.deb
Debian 11の場合:
sudo dpkg -i xendesktopvda_<version>.debian11_amd64.deb
Debian 12.5の依存関係リスト:
openjdk-17-jdk >= 17

imagemagick >= 8:6.9.11

ufw >= 0.36

desktop-base >= 12.0.6

libxrandr2 >= 2:1.5.2

libxtst6 >= 2:1.2.3

libxm4 >= 2.3.8

util-linux >= 2.38

gtk3-nocsd >= 3

bash >= 5.2

findutils >= 4.9.0

sed >= 4.9

cups >= 2.4

ghostscript >= 10.0.0~

libmspack0 >= 0.11

ibus >= 1.5

libgoogle-perftools4 >= 2.10~

libpython3.11 >= 3.11~

libsasl2-modules-gssapi-mit >= 2.1.~

libnss3-tools >= 2:3.87

libqt5widgets5 >= 5.15~

mutter >= 43.8

libqrencode4 >= 4.1.1

libimlib2 >= 1.10.0

libfuse2 >= 2.9.9

pulseaudio-utils >= 16.1
Debian 11の依存関係リスト:
libnss3-tools >= 2:3.61

libfuse2 >= 2.9

openjdk-11-jdk >= 11

imagemagick >= 8:6.9.10

ufw >= 0.36

desktop-base >= 10.0.2

libxrandr2 >= 2:1.5.1

libxtst6 >= 2:1.2.3

libxm4 >= 2.3.8

util-linux >= 2.33

gtk3-nocsd >= 3

bash >= 5.0

findutils >= 4.6.0

sed >= 4.7

cups >= 2.2

ghostscript >= 9.53~

libmspack0 >= 0.10

ibus >= 1.5

libgoogle-perftools4 >= 2.7~

libpython3.9 >= 3.9~

libsasl2-modules-gssapi-mit >= 2.1.~

libqt5widgets5 >= 5.5~

mutter >= 3.38.6~

libqrencode4 >= 4.0.0

libimlib2 >= 1.5.1
注:
このバージョンのLinux VDAがサポートするLinuxディストリビューションとXorgバージョンのマトリックスについては、システム要件を参照してください。

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

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

sudo apt-get install -f
注:
  • 既存のインストールをアップグレードすると、/etc/xdlの下にある構成ファイルが上書きされます。アップグレードを実行する前に、必ずファイルをバックアップしてください。
  • 2407リリース以降、Linux VDAは、アップグレード中に構成ファイルを処理するために、パッケージマネージャーのrpmまたはdpkgに委任します。以下に、rpmとdpkgが構成ファイルの変更とどのように相互作用するかを説明します。
    • rpm: デフォルトではローカルバージョンを保持し、パッケージからの新しいバージョンを.rpmnew拡張子で保存します。
    • dpkg: 対話形式で、どのように続行するかを選択するよう求めます。ローカル構成ファイルを保持し、新しいパッケージバージョンを**.dpkg-newまたは.dpkg-dist**として保存しながら、Linux VDAをサイレントアップグレードするには、次のコマンドを使用します。
      dpkg --force-confold -i package.deb  # Always keep your version, then save new package's version as *.dpkg-new or *.dpkg-dist

ステップ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にゲストVMドライバーをインストールします。

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

注:
ランタイム環境をセットアップする前に、en_US.UTF-8ロケールがOSにインストールされていることを確認してください。ロケールが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/kde/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|kde|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=sssd|winbind|centrify|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|kde|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 /opt/Citrix/VDA/sbin/ctxcleanup.sh --help
構成の変更を削除するには:
sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh
重要:
このスクリプトは、データベースからすべての構成データを削除し、Linux VDA を動作不能にします。

構成ログ

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

Linux VDAソフトウェアのアンインストール

Linux VDAがインストールされているかどうかを確認し、インストールされているパッケージのバージョンを表示するには:
dpkg -l xendesktopvda
詳細情報を表示するには:
apt-cache show xendesktopvda
Linux VDAソフトウェアをアンインストールするには:
dpkg -r xendesktopvda
注:
Linux VDAソフトウェアをアンインストールすると、関連するPostgreSQLおよびその他の構成データが削除されます。ただし、Linux VDAのインストール前に設定されたPostgreSQLパッケージおよびその他の依存パッケージは削除されません。
ヒント:
このセクションの情報は、PostgreSQLを含む依存パッケージの削除については対象としていません。

ステップ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 マシン用のマシンカタログを作成するプロセスとは異なるいくつかの制限があります。
  • オペレーティングシステムには、以下を選択します。
    • ホストされた共有デスクトップ配信モデルの場合は、マルチセッション OS オプション。
    • VDI 専用デスクトップ配信モデルの場合は、シングルセッション OS オプション。
  • 同じマシンカタログに Linux VDA マシンと Windows VDA マシンを混在させないでください。
注:
Citrix Studio の初期バージョンでは、「Linux OS」という概念はサポートされていませんでした。ただし、Windows Server OS または Server OS オプションを選択すると、同等のホストされた共有デスクトップ配信モデルが暗示されます。Windows Desktop OS または Desktop OS オプションを選択すると、マシンごとに単一ユーザーの配信モデルが暗示されます。
ヒント:
Active Directoryドメインからマシンを削除して再参加させる場合、マシンをマシンカタログから削除して再度追加する必要があります。

ステップ12:デリバリーグループを作成する

デリバリーグループを作成し、Linux VDAマシンを含むマシンカタログを追加するプロセスは、Windows VDAマシンとほぼ同じです。これらのタスクを完了する方法の詳細については、「デリバリーグループの作成」を参照してください。
Linux VDAマシンカタログを含むデリバリーグループを作成する場合、以下の制限が適用されます。
  • 選択したADユーザーとグループが、Linux VDAマシンにログオンできるように適切に構成されていることを確認してください。
  • 認証されていない(匿名)ユーザーのログオンを許可しないでください。
  • デリバリーグループをWindowsマシンを含むマシンカタログと混在させないでください。
マシンカタログとデリバリーグループの作成方法については、「Citrix Virtual Apps and Desktops 7 2407」を参照してください。