【重要】2021/12/18現在、VMware製品の複数製品において、Log4jの脆弱性がアナウンスされております。
VMware製品のLog4j対応状況については、以下のサイトより最新情報を確認してください。
VMSA-2021-0028
今回は、UbuntuにHorizon Agentをインストールして、Horizon ClientからLinuxを使えるようにしてみたいと思います。
前提条件
今回使用するLinuxのスペックは以下の通りとなります。
- OS : Ubuntu 20.04
- vCPU : 2vCPU
- MEM : 2GB
- DISK : 60GB
今回は、以下の流れで検証していきます。
- vCenterに仮想マシンを作成
- Ubuntuのインストール
- Horizon Agentインストール
- プールの作成
- Horizon Clientで接続
仮想マシンの作成

vCenter Serverの任意のホストおよびクラスタから、[アクション]-[新規仮想マシン]を選択します。

[作成タイプの選択]より、[新規仮想マシンの作成]を選択し、[NEXT]を押下します。

[名前とフォルダの選択]より、[仮想マシン名]を入力し、仮想マシンの格納場所を選択します。

[コンピューティングリソースの選択]より、仮想マシンを配置するコンピューティングリソースを選択します。
今回は、検証環境のためホストを指定して配置しています。

[ストレージの選択]より、vCenter Serverのストレージを選択します。

[互換性の選択]より、[互換対象]を選択します。
検証環境のESXiのバージョンが6.5のため、ESXi6.5以降としています。

[ゲストOSを選択]より、以下の設定を行います。
- ゲストOSファミリ : Linux
- ゲストOSバージョン : Ubuntu Linux (64ビット)

[ハードウェアのカスタマイズ]より、VDIとして利用する仮想マシンのスペックを設定します。
今回は、以下の設定を行っております。
- CPU : 2
- メモリ : 2GB (4GB推奨)
- 新規ハードディスク : 60GB
- 新規SCSIコントローラ : VMware準仮想化
- 新規CD/DVDドライブ : データストアISOファイル(インストールするISOディスクを選択)
設定が完了したら、[NEXT]を選択します。

[設定の確認]より、作成する仮想マシンの設定を確認し、[FINISH]を選択します。
Ubuntuインストール

vCenter Serverより、作成した仮想マシンの電源をオンにします。
電源をオンしたら、[webコンソールの起動]または、[Remote Consoleを起動]を選択し、仮想マシンのコンソールに入ります。
今回は、Remote Consoleで作業を行います。

Ubuntuのインストーラが表示されたら、左側のペインより、[日本語]を選択し、[Ubuntuをインストール]を選択します。

[キーボードレイアウト]より、自分が使用するキーボードを選択します。
今回は、日本語キーボードを選択しました。

[アップデートと他のソフトウェア]より、インストール時のオプションを選択し、[続ける]を選択します。
今回は、以下の設定でインストールを行いました。
- アプリケーションのインストール : 最小インストール
- Ubuntuのインストール中にアップデートをダウンロードする : ■
- グラフィックスとWi-Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストール : ■

[インストールの種類]より、[ディスクを削除してUbuntuをインストール]を選択し、[インストール]を押下します。

[ディスクに変更を書き込みますか?]より、[続ける]を選択します。

[どこに住んでいますか?]より、[Tokyo]を選択し、[続ける]を押下します。
この設定では、インストールするUbuntuのタイムゾーンを設定しています。

[あなたの情報を入力してください]より、必要事項を入力し、[続ける]を選択します。
設定する内容は以下の内容となります。
- あなたの名前 : ログイン時に表示される名前
- コンピュータの名前 : コンピュータ名
- ユーザ名の入力 : ログイン時に入力するユーザ名
- パスワードの入力 : ログインパスワード
- パスワードの確認 : ログインパスワードの再入力
- ログイン時にパスワードを要求する : ●(セキュリティ向上のため、推奨)

インストールが完了するまで待機します。

インストールが完了すると、再起動を促されるため[今すぐ再起動する]を選択します。

再起動中に[Please remove the installation medium, then press ENTER:]と表示されるため、[インストール時に使用したメディアを取り除き、[Enter]を押下します。
vCenterで仮想マシンを作成した場合は、対応不要で[Enter]を押下します。

再起動後、Ubuntuへのログイン画面が表示されたら、Ubuntuにログインします。

Ubuntuへログイン後、[オンラインアカウントへの接続]が表示されるため、必要に応じて他のサービスへログインしてください。今回は不要のためスキップしています。

[Livepatch]のセットアップが表示されるため、必要に応じてセットアップしてください。
今回は不要のため、[次へ]を選択します。

[Ubuntuの改善を支援する]では、Ubuntuの利用状況等を開発者へ提供するかの可否を選択し、[次へ]を選択します。
今回は不要のため、送信しないを選択しています。

[プライバシー]では、Ubuntuで位置情報サービスを有効化するかの確認があるため、必要に応じて設定します。
今回は不要なため、[位置情報サービス]をオフにしています。

[準備が完了しました!]と表示されれば、Ubuntuの初回セットアップは完了です。
Ubuntuのアップデート
インストーラの取得日時によっては古い場合があるため、Ubuntuをインストールしたら早めにアップデートを行います。

デスクトップの左下の9点リーダーを押下し、アプリケーション一覧より[ソフトウェアの更新]を選択します。

[ソフトウェアの更新]を選択すると、自動的にアップデートの確認が行われます。
必要に応じて、[今すぐインストール]を押下してアップデートを進めます。

アップデートの内容により、Ubuntuの再起動が必要な場合があるため、再起動を求められた場合には[今すぐに再起動]を選択し、Ubuntuを再起動します。
ディレクトリの英語化
日本語化されたLinuxはホームディレクトリも日本語化されています。
普段使用する分には特に意識する必要はないのですが、Terminal等を頻繁に使用する場合には、ホームディレクトリを英語にしておいたほうが移動がスムーズのため、ホームディレクトリを英語にしておきます。
この設定が不要な方はスキップしてください。

Ubuntuより、Terminalを開き、以下のコマンドを実行します。
~$ LANG=C xdg-user-dirs-gtk-update

コマンドを実行すると、[Update standard folders to current language?]のウィンドウが表示されるため、[Don’t ask me this again]にチェックを入れ、[Update Names]を選択します。

コマンドが正常に実行されると、デスクトップやドキュメントのディレクトリが英語化されます。
Horizon Agentインストール

VMwareのサイトより、Linux版のHorizon Agentを入手します。
Horizon Agent for Linuxについては、以下のURLより入手することができます。
VMware Horizon 2106

Horizon Agent for Linuxを入手したら、ダウンロードした場所でtarを解凍します。
GUI上でダブルクリックをすることでアーカイブマネージャーが起動し、解凍することができますが、今回はTerminal上で解凍していきます。
Terminal上で解凍するには、以下のコマンドを実行します。
~$ tar -zxvf <Horizon Agentのtar.gzファイル名>

解凍後、インストールを実行するため解凍したフォルダに移動します。

解凍したディレクトリに移動後、以下のコマンドを実行することで、Horizon Agnetをインストールすることができます。
~$ sudo ./install_viewagent.sh

インストール途中でHorizon Agentをインストールしますか?の入力待ちが発生するため、[Y]を入力します。

[Instllation done]と表示されれば、Horizon Agentのインストールは完了です。
念のため、Horizon Agentのインストール後にUbuntuを再起動しました。
上記対応でVDIにする仮想マシンの設定は終了です。
プールの作成
仮想マシンの設定が完了したら、Horizon Administratorより、VDIプールを作成していきます。

Horizon Administratorへアクセスし、ログインします。

[インベントリ]-[デスクトップ]-[デスクトッププール]より、[追加]を選択します。

[タイプ]より、[手動デスクトップ]を選択し、[次へ]を押下します。

[マシンソース]より、[vCenter Server仮想マシン]を選択して、[次へ]を押下します。

[vCenter Server]より、作成した仮想マシンが存在するvCenter Serverを選択し、[次へ]を押下します。

[ユーザ割り当て]より、以下の設定を行い[次へ]を選択します。
- 専用 : ●
- 自動割り当てを有効にする : □
- マルチユーザ割り当てを有効にする : □

[デスクトッププールID]より、任意のIDと表示名を入力し、[次へ]を押下します。
IDについては、Connection Serverでプールを管理する際に使用され、表示名はHirozon Clientでログイン後に実際に表示される名前となります。

[デスクトッププール設定]より、デスクトッププールの詳細設定を行います。
基本的にはデフォルトで問題ないですが、[ユーザにマシンの再起動/リセットを許可]を[あり]に設定しています。
設定が完了したら、[次へ]を押下します。

[リモート表示の設定]では、画面転送に使用するデフォルトのプロトコルや仮想マシンのVRAM等を設定します。
なお、VDIでLinuxを使用する際には、VMWare Blastのプロトコルのみ利用可能になります。
そのため、PCoIPやRDPのプロトコルをデフォルトプロトコルに設定してもBlast以外では画面転送ができないため、注意が必要です。
また、この項目につていも基本デフォルトですが、[3Dレンダラー]の項目のみ[vSphere-Clientを使用して管理]に設定を変更しています。

[仮想マシン]より、VDI用に作成した仮想マシンを選択します。

[詳細ストレージオプション]では、View Storage Acceleratorの使用の有無やTPSの設定をすることができます。
デフォルトでも問題なさそうなので、設定変更はしていません。

[設定内容の確認]より、作成するプールの設定に問題がなければ[送信]を選択します。

プールが作成されました。
この時点ではプールを作成したのみであり、このデスクトップに接続できる権限はないため、ユーザの割り当てを行っていきます。
作成したプールを選択します。

デスクトップの[サマリ]より、[資格]-[資格を追加]を選択します。

[資格を追加]より、[追加]を選択します。

[ユーザまたはグループの検索]より、[名前/ユーザ名]の検索欄にデスクトップへ資格を割り当てるユーザ名を入力し、[検索]を選択します。
この際に、ユーザの検索条件を[次と完全に一致]にして検索すると早いです。
検索したユーザを選択し、[OK]を選択します。

[資格を追加]で資格を追加するユーザを確認して、[OK]を選択します。

[資格が正常に追加されました]の表示がされ、[資格]タブに追加したユーザが追加されていれば資格情報の追加が完了です。

プールに対する資格情報の割り当ては完了しましたが、次に仮想マシンに対する資格情報の追加を実施していきます。
今回は、フルクローンのようなデスクトップなので、プールへ資格を追加した後に、ユーザがどの仮想マシンを使用するかを手動で設定にしているため、この作業が必要となります。
リンククローンやインスタントクローンの場合、ログアウト後に仮想マシンのリフレッシュが入るため、このように個別の仮想マシンへの資格割り当てが不要になります。
作成したプールの[マシン]より、資格を割り当てる仮想マシンを選択します。
[その他のコマンド]-[ユーザの割り当て]を選択します。

プールに対する資格情報を割り当てたようにユーザを検索し、[OK]を押下します。

作成したプールの[マシン]タブより、仮想マシンの[割り当てられたユーザ]に割り当てを行ったユーザが記載されていれば仮想マシンへの利用割り当てが完了となります。
Horizon Client接続確認

[Horizon Client]を起動し、Connection Serverに接続します。
ログイン情報については、プールの資格情報を割り当てたユーザでログインします。
ログイン後、作成したプールを選択して仮想デスクトップへ接続します。

仮想デスクトップに接続できたら、Ubuntuのユーザでログインします。

Ubuntuにログインでき、デスクトップが表示されたらエセLinux VDIの完成です。
Horizon for Linuxの所感
今回は、Horizon for Linuxの疑似環境を構築してみました。
Horizon Clinet経由でも日本語入力等の作業は問題なくできました。
この方法だとVPN+VNCのような面倒な構成をせずにLinuuxへリモート接続が可能になります。
さらに、使用しているLinuxのデスクトップを一元管理ができ、管理の面でもメリットが大きいものとなります。
今回は、Linuxでフルクローン的な使い方をしましたが、AD認証によるLinuxへのログイン等は実装できていないので、次回以降の課題として残しています。
また、今回使用したOSはUbuntu 20.04で試しましたが、他のディストリビューションではHoriozon Clinet接続にすると、キーボード配列が英字配列になってしまい、日本語入力に難があるものも出てきそうです。そのため、ディストリビューション毎に動作確認は必要となります。
まとめ
今回はエセLinux VDIということでUbuntuにHorizon Agentを入れ、Horizon Clientから接続できるようにしてみました。
もともとLinuxのデスクトップ環境は作りたいと思っていましたが、
- メインのPCはWindowsが良い
- デュアルブートは積極的に使う機会を削がれる(めんどくさい)
- メインPCは再起動をかけることが多いため、VMware Workstation等で仮想化して運用は嫌
- VNCだとセキュリティ的に怖い+転送する画質が悪い+音が入らない
- Windowsのリモートデスクトップのような気軽な感じでどこからでも使いたい
というわがままな環境が欲しい方にはお勧めの構成となります。
コメント