小ネタ: IBM Cloudの仮想サーバーでGUIデスクトップを使いたかったのでxrdp試したら、かなり良かったので手順をメモしとく


# 要は(TL;DR)

IBM Cloud/Ubuntu 18.04 LTSでリモートからデスクトップ(gnome3)使いたいなら、以下の手順でうまくいくはず！
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/8b264b34-1ae7-9367-d9b2-36982cf97106.png)

1. ubuntu 18.04 LTS minimumのオーダーと起動
2. rootでログイン
3. `apt update`
4. `apt install ubuntu-desktop xrdp tigervnc-standalone-server  tigervnc-xorg-extension`
5.  Windowsのリモートデスクトップでログイン(XVnc利用)
6.  ( オプション) xrdpの設定のカスタマイズ(後述)


# はじめに
こんにちわ！石田です。当記事は同じことに悩む方もおられるかもしれないと思い、お手間を省くためにメモとして書きます。実は今ハンズオンセミナーのための環境をあれこれ検討してます。要件としてはIBM Cloud上に立てた仮想サーバー(ubuntu)上にGUI(デスクトップ環境)いれてWindows10のクライアントからデスクトップ環境を使いたい。まあ「普通にvnc使えばいいよね！」と思って早速あれこれ試したのですが、実際にやってみるとvncserverの実装の選択肢がいろいろあって迷いますし、ネット上の記事通りにやってみると環境が違うので動かなかったり、構成が面倒だったり、繋がってもパッケージが不足してるせいで画面が灰色のままだったり、うまく接続できても画面サイズが合ってなかったり、画質が著しく悪かったり、、と全然うまくいかなくて**もうvncにはウンザリ**[^1]しました。

[^1]: もちろん、これは「記事に書いてあることを理解せずコピペしてるだけ」の私のスキル不足が原因です。あれこれ調べて突き詰めればできるんでしょうけれど、、、スイマセン。  

であれこれ検索してたら「**xrdpならクライアントにWindows のリモート・デスクトップが使えるよ**」との[記事](https://linux.just4fun.biz/?Ubuntu/Windows%E3%81%8B%E3%82%89Ubuntu%E3%81%AB%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B)が！「お、これはいい！」と思ってやってみたら、すごく簡単にいい感じのデスクトップにアクセスできたので手順を記録しておこうと思った次第です。(とはいえこの記事自体も時間の経過とともに「この通りやったけどできない！」ってオチになるかもしれませんので、その際はご容赦ください。一応2019/10月時点です)

# 前提環境とやりたいこと

- IBM Cloud のVirtual Server(Public)
- OSはUbuntu 18.04 Minimal LTS -> デスクトップ(GUI)なしなので、gnome3を後から入れたい[^2]
- Ubuntuのgnome3のデスクトップにWindowsからいい感じでアクセスしたい
 
 [^2]: イメージ・テンプレを使う予定の場合は「[この記事](https://qiita.com/ishida330/items/0a019d7a9e1bff7036e6)」も事前にご確認ください
 
# 設定作業
### 大きい流れ

ネットのブログ「[Ubuntu/WindowsからUbuntuにリモートデスクトップ接続する](https://linux.just4fun.biz/?Ubuntu/Windows%E3%81%8B%E3%82%89Ubuntu%E3%81%AB%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B)」が元ネタです。この場を借りてお礼申し上げます。

【1】仮想サーバーをオーダー/起動/sshでrootログイン
【2】アップデート( apt update )
【3】デスクトップ環境( ubuntu-desktop )およびリモート環境(xrdp/tiger-vnc)をインストール( apt install )
【4】Windowsの「リモート・デスクトップ」からxvncで接続
【5】(オプション) xrdpの設定のカスタマイズ

###  【1】仮想サーバーをオーダー/起動/sshでrootログイン
普通の作業なので省略しますが、必要なら[こちら](#ご参考まで-今回使ったvirtual-serverの起動まで)をご参照ください

### 【2】アップデート( apt update )
普通に`apt update`します

### 【3】デスクトップ環境( ubuntu-desktop )およびリモート環境(xrdp/tiger-vnc)をインストール( apt install )

`apt install ubuntu-desktop xrdp tigervnc-standalone-server  tigervnc-xorg-extension`

1000個以上のモジュールをインストールするので30分以上かかります。気長にお待ちください。

### 【4】Windowsの「リモート・デスクトップ」からxvncで接続
インストールが終われば、そのままデスクトップにアクセスできます。(vncの設定等は不要)


![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/45cf7b77-0dcd-79b9-2518-7899cb49e53d.png)

仮想サーバーのIPアドレスを入力して「接続」
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/caf7d740-8277-ac90-4f42-5fd664056dd2.png)

いったんエラーになりますが、「OK」でパネルが表示されます[^3]
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/5ed7211e-cb44-9177-422b-3b4514f938d1.png)

[^3]: ネット上の記事ではこの時点で(VNCを介さず）繋がる例も多いのですが、2019/10月時点ではダメです。syslogを見るとエラーが発生しています。次善の策としてVNCを介する形にします。

Sessionを**「Xvnc」に変えて**仮想サーバーのIDとパスワードを入力して「OK」ボタン。いったん画面が黒くなりますが5-10秒くらい待っていると、、ジャーン！ デスクトップが現れます！
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/b612c5a9-c255-c0a1-583a-e4212cfff141.png)

あとは日本語キーボードを設定して、Nextで進むだけ。
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/1ca075c1-dcea-1868-ad5b-c2eba11f0a72.png)

デフォルトでは何も表示されていませんが、Activitiesの下をクリックするとメニューが表示されます。
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/3c08bf62-e2b9-d1ce-a487-74d677dbdffc.png)

ログアウトは右上から。
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/90b2cca7-2536-8d98-edad-1becea43cebd.png)

ちなみに使っていてなんらかの理由で再ログインがうまくいかない場合は、残っているvncサーバーのセッションをkillしてみてください。その状態で試みるとうまくいくようです

```bash:kill-vnc-session
root@virtualserver01:~# ps -ef|grep vnc
root     12341 12339  2 08:57 ?        00:00:00 Xvnc :10 -auth .Xauthority -geometry 1920x1080 -depth 32 -rfbauth /root/.vnc/sesman_root_passwd:10 -bs -nolisten tcp -localhost -dpi 96
root     12809  1147  0 08:57 pts/0    00:00:00 grep --color=auto vnc
root@virtualserver01:~# kill -9 12341
root@virtualserver01:~# ps -ef|grep vnc
root     13147  1147  0 09:01 pts/0    00:00:00 grep --color=auto vnc
root@virtualserver01:~#
```
### 【5】(オプション) xrdpの設定のカスタマイズ
このままでも使えるのですが、メニューを固定化したり、といったカスタマイズを行っておいた方がよいでしょう。[冒頭に掲げたブログ記事](https://linux.just4fun.biz/?Ubuntu/Windows%E3%81%8B%E3%82%89Ubuntu%E3%81%AB%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B)の「Ubuntu18.04用xrdp設定」に２つのカスタマイズ作業が掲載されていますので「**ユーザー毎に**」実施します。(シェル化してくださっているので便利です）

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/48095b69-e3a6-b60e-0738-712eb08d9c14.png)

以上です。vnc入れてxstartupとかあれこれ設定いじったり、クライアントにvncviewer入れずに済むので、すごく楽です！


# ご参考まで） 今回使ったVirtual Serverの起動まで

:warning: IBM Cloud クラッシック・インフラストラクチャー(旧Softlayer) の仮想サーバーは無償のLiteプランではご利用いただけません。(PAYG=クレジットカード登録など)何らかのPaid-Accountが必要です。

1. IBM CloudにログインしてCatalog -> Compute -> Virtual Server
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/a7a64853-60ed-4ac3-03fe-8f46f84d571c.png)

2. ubuntu 18.04を選んで起動[^2]

当記事の主旨ではubuntu 18.04 LTSを選ぶこと以外は自由ですが、一応。
- Type of Virtual Server: **Public**
- Billing: **Hourly**   :bangbang: デフォはHourly(時間単位課金)だと思いますが確認しましょう！意図せずMonthlyにして後で後悔せぬように。
- Location: お好みで
- サイズ: お好みで
- Image: **Ubuntu** 18.04 Minimal LTS ～ GUIなしなので後で入れます


![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/118d7b27-d06e-002e-d73c-cd10a609e67a.png)

最終的に私はこれで注文(起動)しました。一時間0.06$の激安VM。

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/754661fd-9bf6-1f4a-8508-3259502d8f78.png)

3. 起動を確認

DevicesのパネルでStatusがPower-OnになりIPとパスワードが割り振られていれば起動は完了しています。

- rootのパスワードは「show password」をクリックすると見られます。

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/71581a66-6fac-6915-4833-b8e4c96d5f1f.png)

以下は念のためですがVMを発注すると以下のように連続的に3通のメールが来ます。

- #1 .. オーダーを受けた確認だよ
- #2 .. オーダーを承認したんでこれから処理するよ
- #3 .. オーダーしたVMが起動したよ

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/07052f05-5973-223d-3f44-71a79d249f6f.png)

3通目の起動完了のメールはこんな感じ。
![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/1b5385f9-0843-4e3f-9a30-16d77588745f.png)

4. SSHでログイン

すでにこの状態でSSHのServer(sshd)は動いているので、パブリックIPに対してrootと<表示されたパスワード>でSSHを使ってログインします。

![image](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108535/51d8ce79-d9ec-b782-ed1d-3589d47dd27b.png)