Horizon 7 for Linux をインストールするには、Linux システムがオペレーティング システム、Horizon 7 および vSphere プラットフォームの特定の要件を満たしている必要があります。

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

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

表 1. Horizon Agent でサポートされる Linux オペレーティング システム
Linux ディストリビューション アーキテクチャ
Ubuntu 16.04 および 18.04
注: VMware ナレッジベースの記事 http://kb.vmware.com/kb/2151294 で説明されている解決策のいずれかを行う必要があります。
x64
RHEL 6.6、6.7、6.8、6.9、6.10、7.2、7.3、7.4、7.5、7.6 および 8 x64
CentOS 6.6、6.7、6.8、6.9、6.10、7.2、7.3、7.4、7.5 および 7.6 x64
NeoKylin 6 Update 1 x64
SLED 12.x SP1/SP2/SP3 x64
SLES 12.x SP1/SP2/SP3 x64
注: Linux エージェントは、一部の Linux ディストリビューションで依存パッケージを使用します。詳細については、 Horizon Agent 用依存パッケージのインストールを参照してください。
注: RHEL 8 システムの場合、Horizon Agent は X11 ディスプレイ サーバ プロトコルのみをサポートします。Wayland プロトコルはサポートされていません。

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

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

表 2. 必須のプラットフォームと Horizon 7 ソフトウェア バージョン
プラットフォームとソフトウェア サポートされているバージョン
vSphere プラットフォームのバージョン
  • vSphere 6.0 U2 以降のリリース
  • vSphere 6.5 U1 以降のリリース
  • vSphere 6.7 以降のリリース
Horizon 環境
  • Horizon Connection Server 7.9
Horizon Client ソフトウェア
  • Horizon Client 5.1.0 for Android
  • Horizon Client 5.1.0 for Windows
  • Horizon Client 5.1.0 for Linux
  • Horizon Client 5.1.0 for Mac OS X
  • Horizon Client 5.1.0 for iOS (iPad Pro)
  • Chrome、Firefox、Internet Explorer での HTML Access 5.1.0
  • ゼロ クライアントはサポートされません。

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

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

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

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

Ubuntu および Kylin ディストリビューションでは、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 スタンドアローン エージェント、mksvchanserver、シェル スクリプト
vmwblast Linux Agent インストーラが作成 VMwareBlastServer
<現在のログイン ユーザー> Linux OS に組み込み、Active Directory ユーザー、または LDAP ユーザー Python スクリプト

デスクトップ環境

Horizon 7 for Linux は、異なる Linux ディストリビューションで複数のデスクトップ環境をサポートします。 サポート対象のデスクトップ環境に、各 Linux ディストリビューションのデフォルトのデスクトップ環境と Horizon 7 for Linux でサポートされる追加のデスクトップ環境の一覧を示します。
表 5. サポート対象のデスクトップ環境
Linux ディストリビューション デフォルトのデスクトップ環境 Horizon 7 for Linux デスクトップでサポートされるデスクトップ環境
Ubuntu 18.04 Gnome Gnome Ubuntu、K デスクトップ環境 (KDE)、MATE
Ubuntu 16.04 Unity Gnome Flashback (Metacity)、KDE、MATE
RHEL/CentOS 6.x Gnome Gnome、KDE
RHEL/CentOS 7.x Gnome Gnome、KDE
RHEL 8 Gnome Gnome
SLED 12 SP1/SP2/SP3 Gnome Gnome
SLES 12 SP1/SP2/SP3 Gnome Gnome
NeoKylin 6 Update 1 Mate Mate
サポートされている Linux ディストリビューションのいずれかで使用するデフォルト デスクトップ環境を変更するには、次の手順に従って、Linux デスクトップに適切なコマンドを使用する必要があります。
注: KDE と MATE デスクトップ環境のシングル サインオン (SSO) は、Linux デスクトップがデフォルトのログイン画面を使用している場合にのみ機能します。 デスクトップ環境のインストール コマンドにあるコマンドを使用して、KDE と MATE をインストールする必要があります。

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

  1. デフォルトのデスクトップ環境の設定を使用して、サポートされている Linux ディストリビューションのオペレーティング システムをインストールします。
  2. ご使用の Linux ディストリビューションに適切なコマンドを実行します。実行するコマンドについては、 デスクトップ環境のインストール コマンドを参照してください。
    表 6. デスクトップ環境のインストール コマンド
    Linux ディストリビューション 新しいデフォルトのデスクトップ環境 デフォルトのデスクトップ環境を変更するコマンド
    RHEL/CentOS 6 KDE
    # yum	groupinstall "X Window System" "KDE Desktop"
    RHEL/CentOS 7 KDE
    # yum	groupinstall "KDE Plasma Workspaces"
    Ubuntu 18.04/16.04 KDE
    # apt install plasma-desktop
    Ubuntu 18.04 MATE 1.225
    # apt install	ubuntu-mate-desktop
    Ubuntu 16.04 MATE 1.16
    # apt-add-repository ppa:ubuntu-mate-dev/xenial-mate 
    # apt update
    # apt upgrade
    # apt install	mate
    # apt install	ubuntu-mate-themes
    Ubuntu 16.04 Gnome Flashback (Metacity)
    # apt install gnome-session-flashback
  3. 新しいデフォルトのデスクトップ環境を開始するには、デスクトップを再起動します。
複数のデスクトップ環境がインストールされている Linux デスクトップで SSO を有効にした場合は、次の情報を使用して、SSO セッションで使用するデスクトップ環境を選択します。
  • Ubuntu 18.04/16.04、RHEL/CentOS 7.x の場合には、SSODesktopType オプションの情報を使用して、/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 6.x で SSO ログイン セッションに KDE を使用する場合には、KDE スタートアップ ファイルを除く、すべてのデスクトップ スタートアップ ファイルを /usr/share/xsession ディレクトリから削除します。たとえば、次のコマンド セットを使用します。
    # cd /usr/share/xsessions
    # mkdir backup
    # mv *.desktop backup
    # mv backup/kde*.desktop ./
    次の SSO セッションでデフォルトのデスクトップとして KDE を使用するには、初期セットアップの後、エンド ユーザーは Linux デスクトップからログアウトするか、システムを再起動する必要があります。
  • RHEL 8 で 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 6 の場合:
    sudo yum install wireshark
    Ubuntu 18.04/16.04 の場合:
    sudo apt install tshark
    SLED/SLES 12 の場合:
    sudo zypper install wireshark
  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 システムにインストールするには、 USB VHCI ドライバのコンパイルとインストール のコマンドを使用します。
    たとえば、インストール ファイル VMware-horizonagent-linux-x86_64-<version>-<build-number>.tar.gz/install_tmp/ ディレクトリに展開する場合、 full-path_to_patch-file/install_tmp/VMware-horizonagent-linux-x86_64-<version>-<buildnumber>/resources/vhci/patch/vhci.patch になり、使用する patch コマンドは次のようになります。
    # patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-<version>-<build-number>/resources/vhci/patch/vhci.patch
注: Horizon for Linux をインストールする前に、VHCI ドライバをインストールする必要があります。
表 8. USB VHCI ドライバのコンパイルとインストール
Linux ディストリビューション USB VHCI ドライバのコンパイルとインストールの手順
Ubuntu 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

Ubuntu 16.04

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 6.9/6.10

RHEL/CentOS 7.x

RHEL 8

  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 8) VHCI ドライバが RHEL 8 の 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/"
    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 セキュア ブートを設定するには、RHEL 8 システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

SLED/SLES 12 SP2

  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

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

  • Linux カーネルが新しいバージョンが変更された場合は、VHCI ドライバを再コンパイルして再インストールする必要がありますが、Horizon for Linux を再インストールする必要はありません。
  • また、Ubuntu 18.04/16.04 システムの場合、次の例に類似した手順で動的カーネル モジュール サポート (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