Hyper-V Server 2012 R2環境でのCentOS 7へのxrdpの導入(X11RDP-RH-Matic編)

Hyper-V Server 2012 R2はWindows Server 2012 R2付属のHyper-Vサーバ機能に特化した無償の仮想化ソフトウェアです。
(Hyper-V Server 2012 R2の導入・活用手順については「無償のHyper-V Server 2012 R2利用」をご参照下さい)

2014年7月7日にCentOS 7.0がリリースされましたが64ビット版だけのサポートとなりました。
このCentOS 7はCentOS 6.5同様にHyper-V Server(2012 R2)環境で動作するようにHyper-VのLIS(Linux Integration Services) ver 3.5のコンポーネントがビルトインされています。
(Hyper-VのLIS ver 3.5の正式リリースは2013年12月19日です)

CentOS 6.5ではEPEL版のxrdp 0.5.0が利用できていましたが2014年9月2日時点ではCentOS 7向けのEPEL版xrdpはまだリリースされていません。
(EPELとはExtra Packags for Enterprise Linuxの略でFedoraで開発したパッケージをRHEL/CentOSで利用できるようにしたリポジトリです)
しかしCentOS 6.5上で開発されているX11RDP-RH-Maticを使用すればCentOS 6.5用だけでなくCentOS 7用のxrdpパッケージも簡単に作成することができます。
そこで今回はHyper-V Server 2012 R2環境での64ビット版CentOS 7でのX11RDP-RH-Matic 1.0.4(2014年8月21日リリース)の使用によるxrdp 0.9.0パッケージの生成とその利用例について紹介致します。
尚、http://xrdp.vmeta.jp/X11RDP-RH-Matic(X11RDP-RH-Matic - 日本xrdpユーザ会」の2014年9月9日時点の公開情報はこちらのpdfで確認できます。

今回使用したPCのハードウェア/ソフトウェア構成は以下の通りです。


  1. 仮想マシンの定義
    (1)仮想マシンの名前:ここでは「HVSCentOS7」としました。
    (2)仮想マシンの世代:第2世代(UEFI v1.0を試したかったため第2世代にしてみました)
    (3)起動メモリ:4096MB
    (4)新規の仮想ハードディスク:HVSCentOS7-xrdpbuild.vhdx(容量可変の127GB仮想ディスク)
    (5)仮想マシンのネットワークアダプタ:デフォルトのネットワークアダプタ(レガシーネットワークアダプタではありません)
    ※ネットワークの構成での接続:仮想スイッチ1(外部接続用スイッチ)
    (6)インストールオプションの[後でオペレーティングシステムをインストールする]:on
    (7)仮想マシン(HVSCentOS7)の設定;
    ・SCSIコントローラにDVDドライブを追加(ブート順序の変更は不要)
    ・DVDドライブのイメージファイル:CentOS-7.0-1406-x86_64-DVD.iso
    ・ファームウェアの[セキュアブートを有効にする]オプション:offに変更します。
    ※第2世代のCentOS 7用仮想マシンで[セキュアブートを有効にする]オプション:onではOS起動ができません。
    ※第2世代の仮想マシンにはCentOS 6.5はインストールできませんでした([セキュアブートを有効にする]オプションがoffでも「No Operating System was Loaded.」エラーが発生)。

  2. 仮想マシンへのCentOS 7のインストール
    インストール手順の詳細説明は不要かと思いますのでここではポイントだけ説明します。
    (1)「WELCOME TO CENTOS 7」画面では日本語(Japanese)を選択します。
    ※第1世代では最初にCentOS 7メニューが表示されますが第2世代の場合はCentOS 7メニューが表示されずにいきなり「WELCOME TO CENTOS 7」画面が表示されます。
    (2)「インストールの概要」画面での各項目の設定は以下のようにしました。
    (3)設定変更後の「インストールの概要」画面の右下にある<インストールの開始>ボタンを押してインストールを開始します。
    (4)<インストールの開始>ボタンを押した直後の「設定」画面でrootパスワードの設定と一般ユーザ(今回はフルネーム:Amber, ユーザ名:amber)を定義しました。
    ・一般ユーザのamberについての[このユーザを管理者にする]オプションはデフォルトのoffのままとしました。
    ※[このユーザを管理者にする]オプションをonにするとamberユーザはwheelグループにも所属することになりそのままsudoが使用可能となります。
    ・ここで定義した一般ユーザがsudoを使用できるようにしてその一般ユーザでxrdpをビルドします(詳細は後述)。
    ・このインストールの時点でamberについての[このユーザを管理者にする]オプションを有効にするとamberユーザがwheelグループにも自動的に登録されてsudoがそのまま使用可能となりますが、今回はインストール後に手動でsudoを可能とする設定を行います。
    (5)「設定」画面の左上の<完了>ボタンを押すとパッケージがインストールされて「完了しました!」メッセージが表示されます。
    ※xrdpで使用するtightvnc-serverもインストールされます。
    (6)「完了しました!」メッセージ画面の右下の<再起動>ボタンを押すと「初期セットアップ」に移ります。
    (7)「初期セットアップ」ではラインセンス契約に同意します。
    (8)kdumpを有効にするかの設定を行って完了です(今回はkdumpは無効にしました)。
    (9)ログイン画面が表示されます。
    (10)第2世代では/boot/efi/EFI/centos/shim.efiがインストールされます。


  3. グラフィカルログイン操作
    ログイン画面は以下のように表示されます。


    (1)表示されているユーザはインストール時に設定した一般ユーザです。
    (2)表示されているユーザ以外(例えばroot)でログインする場合は[アカウントが見つかりませんか?]をクリックします。
    (3)一般ユーザとrootでのログイン例;


  4. xrdpビルド・活用の下準備
    rootユーザでログインしてxrdpビルド・活用の下準備として以下の操作を行います。

  5. xrdpテスト用仮想ディスクの作成
    上記で使用したHVSCentOS7-xrdpbuild.vhdxという仮想ディスクはxrdp 0.9.0パッケージをビルドするためのものです。
    X11RDP-RH-Matic.shはxrdpパッケージを生成すると共にそのインストールも自動で行ってしまいます。
    そこでX11RDP-RH-Matic.shで作成されたxrdpパッケージをxrdpをビルドした仮想ディスクとは違う仮想ディスクを使用した仮想マシンでも利用できることを検証するためにxrdpテスト用の仮想ディスクを用意します。
    具体的にはHVSCentOS7-xrdpbuild.vhdxをHVSCentOS7-xrdptest.vhdxという名称のファイルにコピーします。


  6. xrdpパッケージのビルド


  7. xrdpパッケージによるRDP接続テスト
    上記でビルドして作成した xrdp-0.9.0.git5b6b745+master-1.el7.centos.x86_64.rpmをビルドした仮想ディスクとは別の仮想ディスクを使用してRDP接続テストを実施してみます。

  8. アドオン無しGNOME Desktopでのxrdp利用
    (1)仮想マシン(HVSCentOS7)へのCentOS 7のインストールでベース環境(GNOME Desktop)のアドオンがすべてoffの場合でも下記のコマンドでxrdpをインストールできます。
    ※ベース環境(GNOME Desktop)のアドオンがすべてoffの場合、xrdpで使用するtightvnc-serverはインストールされますがgitパッケージ等はインストールされません。
    # rpm -ivh xrdp-0.9.0.git5b6b745+master-1.el7.centos.x86_64.rpm

    (2)下記画像で奥側が母艦となるHVSCentOS7のデスクトップで手前側がRDP接続した画面です(このRDP接続画面の解像度は実際には1920x1200になっています)。



    ・実寸画像はこちらです。

    (3)RDP接続画面の解像度変更はGUI操作で「設定」画面を開いて行いますがそれができない場合は「gnome-control-center --overview」コマンドで「設定」画面を開いてその中の「ディスプレイ」で解像度変更を行います。
    ・RDP接続画面の解像度を1280x720に変更した画面例




  9. X11rdpの試行
    X11rdpはXvncの代わりとなるxrdp用のXサーバです。
    CentOS 7付属のGNOMEはGNOME 3系ですが、現時点でのX11RDP-RH-MaticのX11rdpはX11RDP-o-MaticのX11rdp同様にGNOME 3系との相性は良くなく(参考サイト)、Xfce4との相性が良いようですのでデバッグモードでまずはそれらを検証してみました。
    (CentOS 6.5はGNOME 2系)


  10. 今後のEPELへの期待
    (1)CentOS 7対応のEPEL版xrdpパッケージはいずれhttp://dl.fedoraproject.org/pub/epel/7/x86_64/x/で公開されると思います。
    (2)CentOS 7対応のEPEL版xrdp/x11rdpパッケージが公開された暁には以下のコマンドでそれらを簡単にインストールできるようになると期待しています。
    # rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-1.noarch.rpm
    # yum install xrdp
    # yum install x11rdp