Horizon Agent for Linux をインストールするには、Linux オペレーティング システム、Linux 仮想マシン、VMware Horizon システム コンポーネント、vSphere プラットフォームの特定の要件を満たす必要があります。

Horizon Agent でサポートされる Linux バージョン

次の表に、Horizon Agent でサポートされている Linux オペレーティング システムを示します。

表 1. Horizon Agent でサポートされる Linux オペレーティング システム
Linux ディストリビューション アーキテクチャ
Ubuntu 20.04 および 18.04 x64
Red Hat Enterprise Linux (RHEL) Workstation 7.2、7.3、7.4、7.5、7.6、7.7、7.8、7.9、8.0、8.1、8.2、8.3 および 8.4 x64
Red Hat Enterprise Linux (RHEL) Server 7.8、7.9、8.2、8.3、および 8.4 x64
CentOS 7.2、7.3、7.4、7.5、7.6、7.7、7.8、7.9、8.0、8.1、8.2、8.3 および 8.4 x64
SUSE Linux Enterprise Desktop (SLED) 12 SP3、15 SP1、15 SP2 x64
SUSE Linux Enterprise Server (SLES) 12 SP3、12 SP5、15 SP1、15 SP2 x64
注: Horizon Agent は、一部の Linux ディストリビューションで依存パッケージを使用します。詳細については、 Horizon Agent 用依存パッケージのインストールを参照してください。

一部の機能は、Linux オペレーティング システムのサブセットでのみサポートされます。詳細については、このドキュメントで特定の機能を説明するセクションを参照してください。

必須のプラットフォームとソフトウェア バージョン

Horizon Agent for Linux をインストールして使用するには、環境が vSphere プラットフォーム、Horizon Connection Server、Horizon Client ソフトウェアの特定の要件を満たしている必要があります。

表 2. 必須のプラットフォームと VMware Horizon ソフトウェア バージョン
プラットフォームとソフトウェア サポートされているバージョン
vSphere プラットフォームのバージョン
  • vSphere 6.0 U2 以降のリリース
  • vSphere 6.5 U1 以降のリリース
  • vSphere 6.7 以降のリリース
Horizon 環境
  • Horizon Connection Server 2106
Horizon Client ソフトウェア
  • Horizon Client for Android 2106
  • Horizon Client for Windows 2106
  • Horizon Client for Linux 2106
  • Horizon Client for Mac 2106
  • Horizon Client for iOS 2106
  • Chrome および Firefox での HTML Access 2106
  • VMware Blast プロトコルをサポートするゼロ クライアント
    注: Teradici PCoIP ゼロ クライアントはサポートされていません。

Linux 仮想マシンにより使用される TCP/UDP ポート

Horizon 8 Agent と Horizon Client は、互いのネットワーク アクセスや各種 Horizon 8 サーバ コンポーネント間のネットワーク アクセスに TCP または UDP ポートを使用します。

表 3. Linux 仮想マシンにより使用される TCP/UDP ポート
ソース ポート 送信先 ポート プロトコル 説明
Horizon Client * Linux Agent 22443 TCP/UDP Blast Security Gateway が使用される場合は Blast
Horizon 8 Connection Server または Unified Access Gateway アプライアンス * Linux Agent 22443 TCP/UDP Blast Security Gateway が使用される場合は Blast
Horizon 8 Agent * Horizon 8 Connection Server 4001、4002 TCP JMS SSL トラフィック
注: クライアントが使用する TCP および UDP ポートの詳細については、『 Horizon のセキュリティ』ドキュメントと VMware Horizon のネットワーク ポートを参照してください。

ユーザーが自分の Linux デスクトップに接続できるようにするには、Horizon Client デバイス、Unified Access Gateway、および Horizon Connection Server から受信する TCP 接続をデスクトップが受け入れることができる必要があります。

Ubuntu ディストリビューションでは、iptables ファイアウォールがデフォルトで構成されており、入力ポリシーが ACCEPT に設定されています。

RHEL および CentOS ディストリビューションでは、可能な場合、Horizon Agent インストーラ スクリプトが、入力ポリシーを ACCEPT にして iptables ファイアウォールを構成します。

RHEL や CentOS ゲスト OS の iptables では、Blast ポート 22443 からの新しい接続について入力ポリシーが ACCEPT になっていることを確認します。

BSG が有効な場合、クライアント接続は Horizon Connection Server の BSG を介して Horizon Client デバイスから Linux デスクトップに送られます。BSG が有効ではない場合、Horizon Client デバイスは Linux デスクトップに直接接続されます。

Linux 仮想マシンにより使用される Linux アカウントの確認

次の表は、Linux 仮想マシンにより使用されるアカウント名とアカウント タイプを示しています。

表 4. アカウント名およびアカウント タイプ
アカウント名 アカウント タイプ 使用
ルート Linux OS に組み込み Java Standalone Agent、mksvchanserver、シェル スクリプト
vmwblast Linux Agent インストーラが作成 VMwareBlastServer
<現在のログイン ユーザー> Linux OS に組み込み、Active Directory ユーザー、または LDAP ユーザー Python スクリプト

デスクトップ環境

Horizon Agent for Linux は、異なる Linux ディストリビューションで複数のデスクトップ環境をサポートします。以下の表に、各 Linux ディストリビューションのデフォルトのデスクトップ環境と Horizon Agent for Linux でサポートされる追加のデスクトップ環境の一覧を示します。
表 5. サポート対象のデスクトップ環境
Linux ディストリビューション デフォルトのデスクトップ環境 Horizon Agent for Linux でサポートされるデスクトップ環境
Ubuntu 20.04/18.04 Gnome Gnome Ubuntu、K デスクトップ環境 (KDE)、MATE
RHEL/CentOS 7.x Gnome Gnome、KDE
RHEL/CentOS 8.x Gnome Gnome
SLED/SLES Gnome Gnome
注: Gnome Display Manager (GDM) は、Linux デスクトップでサポートされる唯一のディスプレイ マネージャです。詳細については、 ナレッジベースの記事 87459 を参照してください。

KDE と MATE デスクトップ環境のシングル サインオン (SSO) は、Linux デスクトップが GDM3 のログイン画面を使用している場合にのみ機能します。KDE と MATE は、デスクトップ環境のインストール コマンドにあるコマンドでインストールする必要があります。

RHEL/CentOS 7.x または Ubuntu ディストリビューションを使用している場合、ロックされた KDE セッションを SSO でロック解除することはできません。パスワードを入力して、手動でロックされているセッションを手動でロック解除する必要があります。

サポートされている Linux ディストリビューションのいずれかで使用するデフォルト デスクトップ環境を変更するには、次の手順に従って、Linux デスクトップに適切なコマンドを使用する必要があります。

  1. デフォルトのデスクトップ環境の設定を使用して、サポートされている Linux ディストリビューションのオペレーティング システムをインストールします。
  2. 以下の表を参照して、特定の Linux ディストリビューションに適切なコマンドを実行します。
    表 6. デスクトップ環境のインストール コマンド
    Linux ディストリビューション 新しいデフォルトのデスクトップ環境 デフォルトのデスクトップ環境を変更するコマンド
    RHEL/CentOS 7.x KDE
    # yum groupinstall "KDE Plasma Workspaces"
    Ubuntu 20.04/18.04 KDE
    # apt install plasma-desktop
    Ubuntu 20.04/18.04 MATE 1.225
    # apt install ubuntu-mate-desktop
  3. 新しいデフォルトのデスクトップ環境を開始するには、デスクトップを再起動します。
複数のデスクトップ環境がインストールされている Linux デスクトップで SSO を有効にした場合は、次の情報を使用して、SSO セッションで使用するデスクトップ環境を選択します。
  • Ubuntu 20.04/18.04、RHEL/CentOS 7.x の場合には、以下の表の情報を使用して、/etc/vmware/viewagent-custom.conf ファイルに SSODesktopType オプションを設定し、SSO で使用するデスクトップ環境を指定します。
    表 7. SSODesktopType オプション
    デスクトップ タイプ SSODesktopType オプションの設定
    MATE SSODesktopType=UseMATE
    GnomeUbuntu SSODesktopType=UseGnomeUbuntu
    GnomeFlashback SSODesktopType=UseGnomeFlashback
    KDE SSODesktopType=UseKdePlasma
    GnomeClassic SSODesktopType=UseGnomeClassic
  • RHEL/CentOS 8.x で SSO ログイン セッションに Gnome Classic を使用する場合には、Gnome Classic スタートアップ ファイルを除く、すべてのデスクトップ スタートアップ ファイルを /usr/share/xsession ディレクトリから削除します。たとえば、次のコマンド セットを使用します。
    # cd /usr/share/xsessions
    # mkdir backup
    # mv *.desktop backup
    # mv backup/gnome-classic.desktop ./
    次の SSO セッションでデフォルトのデスクトップとして Gnome Classic を使用するには、初期セットアップの後、エンド ユーザーは Linux デスクトップからログアウトするか、システムを再起動する必要があります。

複数のデスクトップ環境がインストールされている Linux デスクトップで SSO を無効にした場合には、前述の手順を行う必要はありません。エンド ユーザーが Linux デスクトップにログインするときに、必要なデスクトップ環境を選択します。

ネットワーク要件

VMware Blast Extreme は、UDP ( ユーザー データグラム プロトコル) と TCP (伝送制御プロトコル) の両方をサポートします。ネットワーク条件は、UDP と TCP のパフォーマンスに影響を及ぼします。最高のユーザー エクスペリエンスを実現するには、ネットワーク条件に応じて UDP または TCP を選択します。
  • ローカル エリア ネットワーク (LAN) 環境など、ネットワーク条件が良好な場合には TCP を選択します。
  • パケット損失や遅延が発生するワイド エリア ネットワーク (WAN) 環境など、ネットワーク条件が良好でない場合には UDP を選択します。
Wireshark などのネットワーク アナライザ ツールを使用して、VMware Blast Extreme が TCP と UDP のどちらを使用するかを確認します。次の手順を行います。ここでは例として Wireshark を使用しています。
  1. Linux 仮想マシンに Wireshark をダウンロードして、インストールします。
    RHEL/CentOS の場合:
    sudo yum install wireshark
    Ubuntu の場合:
    sudo apt install tshark
  2. VMware Horizon Client を使用して、Linux デスクトップに接続します。
  3. ターミナル ウィンドウを開き、次のコマンドを実行します。VMware Blast Extreme が使用する TCP パッケージまたは UDP パッケージが表示されます。
    sudo tshark -i any | grep 22443
USB リダイレクトとクライアント ドライブのリダイレクト (CDR) 機能はネットワーク条件に依存します。パケット ロスや遅延でバンド幅に制限があるなど、ネットワーク条件が良好でないと、ユーザー エクスペリエンスが低下します。このような場合、次のいずれかが発生する可能性があります。
  • リモート ファイルのコピーが低速になる。この場合、サイズの小さいファイルを送信します。
  • USB デバイスがリモートの Linux デスクトップに表示されない。
  • USB データの転送が不完全になります。たとえば、サイズの大きいファイルをコピーした場合、元のファイルよりもサイズが小さくなる可能性があります。

USB リダイレクトのための VHCI ドライバ

USB リダイレクト機能は、USB VHCI (Virtual Host Controller Interface) カーネル ドライバに依存します。USB 3.0 と USB リダイレクト機能をサポートするには、次の手順を行う必要があります。

  1. https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/ から USB VHCI ソース コードをダウンロードします。
  2. VHCI ドライバのソース コードをコンパイルして、その結果のバイナリを Linux システムにインストールするには、以下の表のコマンドを使用します。
    たとえば、インストール ファイル VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz/install_tmp/ ディレクトリに展開する場合、 full-path_to_patch-file/install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch になり、使用する patch コマンドは次のようになります。
    # patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/vhci/patch/vhci.patch
注: Horizon 8 for Linux をインストールする前に、VHCI ドライバをインストールする必要があります。
表 8. USB VHCI ドライバのコンパイルとインストール
Linux ディストリビューション USB VHCI ドライバのコンパイルとインストールの手順
Ubuntu 20.04/18.04
  1. 依存パッケージをインストールします。
    # apt-get install make
    # apt-get install gcc
    # apt-get install libelf-dev
  2. VHCI ドライバをコンパイルし、インストールします。
    # tar -xzvf vhci-hcd-1.15.tar.gz
    # cd vhci-hcd-1.15
    # patch -p1 < full-path_to_patch-file
    # make clean && make && make install

RHEL/CentOS 7.x

RHEL/CentOS 8.x

  1. 依存パッケージをインストールします。
    # yum install gcc-c++
    # yum install kernel-devel-$(uname -r)
    # yum install kernel-headers-$(uname -r)
    # yum install patch
    # yum install elfutils-libelf-devel
  2. VHCI ドライバをコンパイルし、インストールします。
    # tar -xzvf vhci-hcd-1.15.tar.gz
    # cd vhci-hcd-1.15
    # patch -p1 < full-path_to_patch-file
    # make clean && make && make install
  3. (RHEL/CentOS 8.x) VHCI ドライバが USB リダイレクトで正常に動作するようには、USB ドライバの署名設定を行います。
    1. USB ドライバの SSL キー ペアを作成します。
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. USB ドライバに署名します。
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    3. UEFI セキュア ブートにキーを登録します。
      sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    4. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

SLED/SLES 12.x

SLED/SLES 15.x

  1. 現在のカーネル パッケージのバージョンを検索します。
    # rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2)

    現在インストールされているカーネル パッケージの名前が出力されます。たとえば、パッケージ名が kernel-default-3.0.101-63.1 の場合、現在のカーネル パッケージのバージョンは 3.0.101-63.1 になります。

  2. kernel-develkernel-default-develkernel-macrospatch パッケージをインストールします。
    # zypper install --oldpackage kernel-devel-<kernel-package-version> \
    kernel-default-devel-<kernel-package-version> kernel-macros-<kernel-package-version> patch
    例:
    # zypper install --oldpackage kernel-devel-4.4.21-90.1 kernel-default-devel-4.4.21-90.1 kernel-macros-4.4.21-90.1 patch
  3. VHCI ドライバをコンパイルし、インストールします。
    # tar -xzvf vhci-hcd-1.15.tar.gz
    # cd vhci-hcd-1.15
    # patch -p1 < full-path_to_patch-file
    # mkdir -p linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    # cp /lib/modules/$(uname -r)/source/include/linux/usb/hcd.h linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
    # make clean && make && make install
  4. (SLED/SLES 15.x) VHCI ドライバが USB リダイレクトで正常に動作するようには、USB ドライバの署名設定を行います。
    1. USB ドライバの SSL キー ペアを作成します。
      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
    2. USB ドライバの署名ファイルのパスを検索します。
      find / -name sign-file

      このコマンドを実行すると、システム上にあるすべての署名ファイルへのパスが返されます。USB ドライバの署名ファイルのパスは、次のようになります。

      /usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
    3. USB ドライバに署名します。次のコマンドで、<sign-file-path> は、手順 4b で確認した署名ファイルのパスです。
      # sudo /<sign-file-path>/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      # sudo /<sign-file-path>/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    4. UEFI セキュア ブートにキーを登録します。
      # sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    5. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

また、次のガイドラインに従ってください。

  • Linux カーネルが新しいバージョンが変更された場合は、VHCI ドライバを再コンパイルして再インストールする必要がありますが、Horizon for Linux を再インストールする必要はありません。
  • また、Ubuntu システムの場合、次の例に類似した手順で動的カーネル モジュール サポート (DKMS) を VHCI ドライバに追加できます。
    1. カーネル ヘッダーをインストールします。
      # apt install linux-headers-`uname -r`
    2. 次のコマンドを使用して、dkms をインストールします。
      # apt install dkms
    3. VHCI TAR ファイルを展開し、パッチを適用します。
      # tar xzvf vhci-hcd-1.15.tar.gz
      # cd vhci-hcd-1.15
      # patch -p1 <full-path_to_patch-file>
      # cd ..
    4. 展開した VHCI ソース ファイルを /usr/src ディレクトリにコピーします。
      # cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
    5. dkms.conf という名前のファイルを作成し、/usr/src/usb-vhci-hcd-1.15 ディレクトリに配置します。
      # touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
    6. 次の行を dkms.conf ファイルに追加します。
      PACKAGE_NAME="usb-vhci-hcd"
      PACKAGE_VERSION=1.15
      MAKE_CMD_TMPL="make KVERSION=$kernelver"
      
      CLEAN="$MAKE_CMD_TMPL clean"
      
      BUILT_MODULE_NAME[0]="usb-vhci-iocifc"
      DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"
      MAKE[0]="$MAKE_CMD_TMPL"
      
      BUILT_MODULE_NAME[1]="usb-vhci-hcd"
      DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"
      MAKE[1]="$MAKE_CMD_TMPL"
      
      AUTOINSTALL="YES"
    7. この VHCI ドライバを dkms に追加します。
      # dkms add usb-vhci-hcd/1.15
    8. VHCI ドライバをビルドします。
      # dkms build usb-vhci-hcd/1.15
    9. VHCI ドライバをインストールします。
      # dkms install usb-vhci-hcd/1.15