2020年12月24日木曜日

Horizon 8 新機能 (Linuxによるマルチセッションホスト編)

 本投稿は、vExperts Advent Calendar 2020 への寄稿となります。


お久しぶりでございます。(またも一年ぶりの投稿となり、猛省しております。。)

ブログはなかなか更新できませんでしたが、もちろん Horizon愛 は日々温めておりましたので、また1年分の愛をみなさまへお届けできればと思います。

ご存知の方も多いとは思いますが、Horizonは今年メジャーアップデートとなるHorizon 8がリリースされました!(祝

リリースノートはこちらをご参考いただければと思いますが、主なアップデート内容(個人的な主観)は以下の通りです。

・リンククローンが廃止されました。
・インスタントクローンがStandardエディションから利用可能になりました。
・インスタントクローンにスマートプロビジョニング機能が追加されました。
・Connection Serverの並列アップグレードが可能になりました。
・デジタルウォーターマーク(透かし)を有効にできるようになりました。
・Windows タブレットでペンのリダイレクトができるようになりました。
・Microsoft Edge ブラウザでURLリダイレクトができるようになりました。
・Linux でマルチセッションのホストマシンを構成できるようになりました。
・仮想印刷機能がなくなりました。(VMware Integrated Printing 機能を利用。)

リリースノートから主要なものを抜粋させていただきましたが、個人的には「Linux OSでマルチセッションのホストマシンが構成できる」が一番気になります。

ということで、今回のテーマは「Linuxでマルチセッションのホストマシン」です。

例のごとく、ここから長文となりますので、ご興味のある方は続きをどうぞ。

さて、今回のテーマである「Linuxでマルチセッションのホストマシン」ですが、何がそんなに気になるのかというと、やはり「非Windowsであること」です。

これまで多くのHorizonを活用した仮想デスクトップや仮想アプリケーションに携ってきましたが、この素晴らしいテクノロジーを「コスト」という如何ともしがたい理由によって多くの方が諦められる姿を目にしてきました。もちろん、素晴らしいテクノロジーには相応のコストがかかることは当然ですが、コストも重要な検討材料です。コストという側面でもいくつかの選択肢があることが私は望ましいと考えています。

利用するOSはLinuxです。はい、敢えては明言しませんが、”アレ” が不要です。(笑

LinuxもVDIには対応していましたが、いよいよマルチセッションの登場です。

大まかな構築手順は以下となります。
1.ホストマシンとして利用するLinux仮想マシンを準備します。
2.Active Directory 統合を行います。
3.View Agentをインストールします。
4.ファームを作成します。
5.公開アプリケーションの設定を行います。

それでは、実際に環境を構築して設定方法と動きを見ていきたいと思います。

1.Linux仮想マシンの準備


現在、マルチセッションのホストマシンとして利用可能なLinuxは以下となります。
・RHEL 8.x/7.x
・Ubuntu 18.04

今回は「Ubuntu 18.04」を利用して環境を構築します。
# すみません、OSインストール手順は割愛させていただきます。。
# IPアドレスの設定とSSHの有効化(これは必須ではありません。)を行いました。












以下のコマンドを実行し、VMware Toolsをインストールします。
$ sudo apt-get update
$ apt-get install open-vm-tools-desktop

/etc/hostsへFQDNを追加します。
127.0.0.1       localhost
127.0.1.1       ubuntu-sbc.vlab.local ubuntu-sbc

マルチセッションに必要なパッケージをインストールします。
$ sudo apt-get install liburiparser1

2.Active Directory 統合


LinuxをActive Directoryと統合する方法はいくつかあるようですが、今回はWinbindドメイン参加ソリューションを用いて行います。

AD参加に必要なパッケージをインストールします。
$ sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind

ドキュメントだとパッケージインストール時にウィザードが表示されるとのことでしたが、私の環境(SSH接続で実施)では表示されませんでした。。

以下の手順にて正常にAD参加できましたのでご参考ください。

以下のコマンドを実行し、ユーザーログオン時にホームディレクトリが作成されるように設定します。(UIが表示されるので”Create home directory on login”にチェックを入れ、<OK>を選択してEnterキーを押します。)
$ pam-auth-update













/etc/nsswitch.conf を以下のように変更します。
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files

/etc/NetworkManager/system-connections/Wired connection 1 を以下のように変更します。
[ipv4]
dns=192.168.134.73
dns-search=vlab.local
ignore-auto-dns=true
method=aut

/etc/resolv.conf を以下のように変更します。
nameserver 192.168.134.73
search vlab.local

/etc/hosts を以下のように変更します。
127.0.0.1     localhost
127.0.1.1     ubuntu-sbc.vlab.local ubuntu-sbc
192.168.134.73   dc.vlab.local dc

/etc/samba/smb.conf を以下のように変更します。
[global]
security = ads
realm = VLAB.LOCAL
workgroup = VLAB
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum group = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true

以下のコマンドを実行し、Sambaサービスを再起動します。
$ sudo systemctl restart smbd.service

/etc/krb5.conf を以下のように変更します。
[libdefaults]
      default_realm = VLAB.LOCAL
      dns_lookup_realm = true
      dns_lookup_kdc = true

[realms]
      VLAB.LOCAL = {
            kdc = dc
            admin_server = dc
      }

[domain_realm]
      .vlab.local = VLAB.LOCAL
      vlab.local = VLAB.LOCAL

以下のコマンドを実行し、AD参加を行います。
$ sudo kinit administrator
$ sudo net ads keytab create -U administrator
$ sudo net ads join -U administrator
$ sudo systemctl restart winbind.service

ADにてコンピュータ一覧を確認すると、ばっちりドメイン参加ができています。












3.Horizon Agentをインストール


Horizon Agent をMy VMwareよりダウンロードし、Linuxマシンへ格納します。

以下のコマンドを実行し、Horizon Agentをインストールします。
$ sudo tar -xzvf VMware-horizonagent-linux-x86_64-8.0.0-16523578.tar.gz
$ cd VMware-horizonagent-linux-x86_64-8.0.0-16523578
$ sudo apt install python-dbus python-gobject
$ sudo ./install_viewagent.sh --multiple-session -M no
※今回は手動ファームで構成するため、-Mパラメータでnoを指定しています。

ただ、上記コマンドではインストールに失敗しました。。
Install multiple session agent...
The installation will install VMware Horizon Agent on your computer.
Horizon Connection Server not specified
※Connection Serverを指定する必要がある旨のメッセージが表示されます。

Horizon 8 のドキュメントには install_viewagent.sh のオプションとして Connection Server を指定するパラメータの掲載がありませんが、Horizon 6 時代あった同パラメータを指定することでインストールできました。
$ sudo ./install_viewagent.sh --multiple-session -b cs.vlab.local -d vlab.local -u administrator -p ***** -M no -A yes

私の環境だとうまく名前解決ができなかったのか、、/etc/hosts へ Connection Server の情報を登録する必要がありました。
127.0.0.1     localhost
127.0.1.1     ubuntu-sbc.vlab.local ubuntu-sbc
192.168.134.73   dc.vlab.local dc
192.168.134.74   cs.vlab.local cs

Windows Server のRDSだとこの時点で Horizon Console 上にRDSホストとして登録されていたような記憶がありますが、マルチセッションの Linux は出てこないようです。












4.ファームの作成


Horizon Agent のインストールが終わればいよいよファームを作成します。
※今回は手動ファームを構成します。

Horizon Console へログインします。
[インベントリ]-[ファーム]の順に選択し、[追加]ボタンをクリックします。












”手動ファーム”を選択し、[次へ]ボタンをクリックします。












ファームIDを入力、必要に応じてファーム設定を行い、[次へ]ボタンをクリックします。












ロードバランシングの設定を選択し、[次へ]ボタンをクリックします。
※今回はデフォルト設定にてファームを作成します。












ファームに追加するRDSホストを選択し、[次へ]ボタンをクリックします。
※ちゃんとマルチセッションの Linux が表示されました。(ほっ
※Linux でも RDS というところはご愛敬です。(笑












設定内容を確認し、[送信]ボタンをクリックします。












正しくファームが作成されたことを確認します。












5.公開アプリケーションの設定


ファームが作成できればいよいよ公開アプリケーションの設定です。
[インベントリ]-[アプリケーション]の順に選択し、[追加]ボタンより”インストール済みのアプリケーションから追加”を実行します。












アプリケーションプールタイプにRDSファームを指定するとインストール済のアプリケーションが表示されますので、公開したいアプリケーションを選択し、[次へ]ボタンをクリックします。
※アプリケーションが表示されない場合は更新ボタンをクリックします。












IDと表示名を必要に応じて編集し、[送信]ボタンをクリックします。












資格を追加する画面が表示されますので、[追加]ボタンをクリックします。












アクセスを許可するユーザーおよびグループを検索・選択し、[OK]ボタンをクリックします。












追加する資格情報を確認し、[OK]ボタンをクリックします。












正しくアプリケーションプールが作成されたことを確認します。












以上で、Linux によるマルチセッションのホストマシン構築は完了です。

さいごに


せっかくなのできちんと接続できることを確認したいと思います。

Horizon Client を起動して、Connection Server へ接続します。














ユーザー名とパスワードを入力し、[ログイン]ボタンをクリックします。














アプリケーションアイコンが表示されるので、ダブルクリックで起動します。














無事にアプリケーションが起動してきました。












マルチセッションが受けられるか他のユーザーでもログインしてみましたが問題ありませんでした。Linux ホスト上できちんと2名のユーザーがログインしていることが確認できます。
$ users
horizon horizon01 horizon02
※horizonユーザーは管理者(Teratermでログイン)
※horizon01とhorizon02がADアカウントでHorizon Clientでログイン

いかがでしたでしょうか。

VDIだとどうしてもLinux感が強く、利用者側への配慮から見送られるケースもあったと思いますが、アプリケーションの画面だけであればほぼ Windows と変わりません。
※もちろん、アプリケーションを Linux へインストールできる必要がありますが。

ローカルインストールが必要なOfficeなどは厳しいですが、Office365などブラウザだけで動作するWebアプリやシステムも多くなってきている昨今、Linux による公開アプリケーションでも十分ご要件を満たせるケースもあると思います。

何より、Horizon の導入をコストの問題で諦めていた方は今一度ご検討ください。

それではまた、Horizon愛 をみなさまへお届けできる日を楽しみにしております。

0 件のコメント:

コメントを投稿