X2Go で Linux VDI

SEの香取です。

前々回 に「次回の予定」と書いてしまった ohai で取得したデータを RackTables に変換して便利に使う件ですが、こちらはもう少々お待ちください。スクリプトを鋭意制作中でございます。本日は別のお話です。

Linux + X2Go → VDI

プログラムを書く際に、いつも eclipse を使っています。お気に入りのプラグインをインストールして、使い易い様にカスタマイズして「いつでもどこでも、この eclipse を使いたい!」と思います。
あちこちに同じ様な環境を作るのではなく VDI(Virtual Desktop Infrastructure)を構築して、リモートで利用出来ると良さそうです。要件はこんな感じです。

  1. eclipse が動くこと。
  2. 安全にアクセスできること。
  3. 軽快に動くこと。
  4. VDIの画面を閉じても、処理をバックグラウンドで継続してくれること。
  5. クライアント環境に合わせて、画面の解像度を変更出来ること。

この要件を満たすものとして、Linux + X2Go を利用することにしました。

VDI

私はデータセンターに設置した実機のサーバを利用しています。
仮想マシンやパブリッククラウドを利用する場合もほとんど同じですので、ご興味のある方はぜひ試してみてください。とても便利です。

Installation::Server

VDIのOSとして、CentOS7 を利用することにしました。「新しいコマンドに慣れよう!」というコンセプトで選んだのですが、デスクトップとして便利に使うなら Ubuntu の方が適していますね。それでも eclipse やブラウザを使う分には特に問題はなく、2014年12月から現在(2015年8月)でも CentOS7 のまま使用しています。

OSインストール時の注意

Minimal でインストールしています。本当は CentOS7 標準の “GNOME Desktop” が、きれいで使いたかったのです。しかし X2Go は GNOME と相性が悪い様で、うまく動かすことが出来ませんでした。他のデスクトップを利用するため、インストール時は Minimal としました。

MATE, Xfce などを試しましたが、現在は KDE で落ち着いています。OSインストール、ネットワーク設定が終った後で下記の様に KDE をインストールしています。

# yum groupinstall "KDE Plasma Workspaces"
# reboot

X2Go のインストールと設定

EPELリポジトリからインストールすることが出来ます。

# yum install epel-release

X2Go をインストールします。

# yum install x2goserver-xsession

X2Go は SSH を利用するので、必要に応じてFirewall設定をします。

# firewall-cmd --permanent --zone=public --add-service=ssh
# firewall-cmd --reload

これでサーバ側の設定は完了です。

Installation::Client

Windows, MacOS X, Linux用のクライアントが存在します。

Getting X2Go
http://wiki.x2go.org/doku.php/download:start

個人的には Macと Linux Mint で使うことが多いです。Macで作業中のセッションをLinux側で引き継いで、続きを別の場所で行う様な使い方をしています。

New session

クライアントを起動したらセッションを作成しましょう。

img-20150810-2

基本的には Session name, Host, Login, Session type(KDE とか MATE など)を設定するだけです。私は安全のため、サーバ側のSSHポート番号を変更しているのと、パスワード認証ではなく公開鍵認証にしています。

それでは接続してみます。

うまくデスクトップが表示されました。eclipseの他に、良く使う Chrome ブラウザや XMind といったツールもインストールしています。

img-20150810-3a

VDIにしているサーバのシステム情報です。実は、なかなか良いスペックのサーバを使っています。
しかし、最近は開発機としてだけでなく、Dockerコンテナをたくさん作成して検証なども行うため厳しくなってきています(もう少し良いサーバが欲しいです。。)

img-20150810-4

Suspend と Terminate

セッションを閉じるときは Suspend ボタンを使います。そうすると、先ほど述べたセッションの継続が可能です。
動作のおかしいとき、例えば「キー設定がおかしくなり、どうやっても入力出来ない文字がある」等の場合には、Terminate ボタンで一旦セッションを破棄すると復旧することが多いです。

img-20150810-5

今回は開発用のVDIとして X2Go を使ってみましたが、他にもリモートデスクトップ環境が使えると便利な場面があります。そんなとき、大抵は Windows RDP で対応していました。今後は Linux + X2Go も候補として上ってきそうです。

あなたにおすすめの記事