クラウド上にLinuxのデスクトップ環境を構築します。プログラミング言語によってはSSH接続してEmacsやVimなどのエディタで十分な場合もあります。JavaやScalaのプログラミングになるとEclimやENSIMEといったCUIも使えますが、EclipseなどのGUIが使えると便利な場合があります。開発用にIDCFクラウド上にリモートデスクトップ環境を用意しようと思います。
Ubuntu 16.04にボリュームを追加する
最近の開発ではDockerを使うケースがほとんどですし、Mavenの~/.m2ディレクトリなどすぐに1GBを超えてしまいます。IDCFクラウドの標準ではルートディスクが15GBしかディスクがないため、面倒ですがデータディスクを増設して/homeや/varにマウントして使います。
Ubuntu 16.04のテンプレートの仮想マシンに100GBのボリュームを追加して起動します。/dev/sda1のルートディスクはext4でフォーマットされていました。今回はこのディスクを/homeディレクトリにマウントします。
# df -T |
増設した100GBのデータディスクは/dev/sdbのデバイスファイルです。
# fdisk -l |
fdiskコマンドでパーティションを作成してext4でフォーマットします。n -> pと入力して残りはデフォルトでエンターキーを押します。
# fdisk /dev/sdb |
作成したパーティションにext4のファイルシステムを作成します。
# mkfs -t ext4 /dev/sdb1 |
/homeディレクトリに作業ユーザーを作成します。pwgenコマンドを使いパスワードを生成します。-Bフラグを指定するとパスワードとして判別が紛らわしい文字を除外して生成してくれます。
# apt-get update && apt-get install -y pwgen |
cloud-user名でユーザーを作成します。管理者ユーザーとして仮想マシン作成時にrootユーザーの/root/authorized_keysに設定された鍵はコピーして使い、sudoもパスワードなして利用できるようにします。この辺りはセキュリティポリシーに従って設定してください。
# useradd -m -d /home/cloud-user -s /bin/bash cloud-user \ |
/homeを移動するためのマウントポイントを作成して追加ディスクをマウントします。
# mkdir /mnt/home |
/homeを全て/mnt/homeにコピーします。
# cp -a /home/* /mnt/home |
既存の/homeディレクトリはリネームしてバックアップしておきます。
blkidコマンドで/dev/sdb1のUUIDを調べます。
# blkid /dev/sdb1 |
/etc/fstabはバックアップを取ります。
$ cp -ip /etc/fstab /etc/fstab_`date "+%Y%m%d"` |
/dev/sdb1を/homeへマウントする設定を追加します。
UUID=7b323902-0182-426a-8d76-991901d69c02 /home ext4 defaults 0 1 |
rebootすると自動的に追加したデータディスクが/homeディレクトリにマウントして使えるようになります。
16.04 LTSから16.10へupgradeする
IDCFクラウドで利用できる最新のテンプレートはUbuntu Server 16.04 LTSです。xrdpは0.9から日本語キーボードが標準で使えるようになります。0.9はUbuntu 16.10から標準で利用できるので16.04から16.10へupgradeします。
Ubuntuのupgradeはdo-release-upgradeコマンドを利用します。またファイルの編集用にデフォルトエディタとしてvimもインストールしておきます。
$ sudo apt-get update && sudo apt-get install -y update-manager-core vim |
/etc/update-manager/release-upgradesファイルをnormalに編集してLTS版からアップグレードできるようにします。
[DEFAULT] |
Ubuntu 16.04 LTSから16.10にupgradeします。
$ sudo do-release-upgrade |
SSH接続でupgradeをしているため途中で失敗して接続が切れる場合を考慮して、新しく別のポートでSSH接続しておきます。
This session appears to be running under ssh. It is not recommended |
別のターミナルで1022ポートで接続を確認してからupgrade作業を継続します。
To continue please press [ENTER] |
upgradeには時間がかかります。yを押して作業を開始します。
Fetching and installing the upgrade can take several hours. Once the |
upgrade作業中にいくつかダイアログが表示されます。デフォルトで以下のように選択しました。
- Postfix Configuration: No configuration
- Configuring grub-pc: keep the local version currently installed
- /etc/update-manager/release-upgrades: N
- Remove obsolete packages?: y
- System upgrade is complete.: y
rebootするとupgrade作業は終了です。SSH接続し直してバージョンを確認します。
$ lsb_release -rd |
xrdp
Ubuntu 16.10にupgradeするとxrdpは0.9が使えるようになります。
$ sudo apt-get update |
xrdpをインストールして起動設定をします。
$ sudo apt-get install xrdp -y |
MATE
クラウドでの利用に適した軽量なデスクトップ環境もいろいろありますが、GNOME2から派生したMATEが好みなので良く使います。
$ apt-cache show mate-core | grep Version |
バージョンは1.16です。
$ sudo apt update && sudo apt install mate-core mate-desktop-environment mate-desktop-environment-extra -y |
日本語入力
日本語のIMEはMozcを使います。
$ sudo apt-get install ibus-mozc -y |
~/.xsessionにibusとMATEの起動を設定します。
$ cat <<EOF > ~/.xsession |
rebootするとxrdp接続でMATEのリモートデスクトップ環境が使えるようになります。
$ sudo reboot |
IDCFクラウドの管理コンソースからIPアドレスを追加して、3389ポートのファイアウォールと作成した仮想マシンへのポートフォワードを設定します。Windows 10の場合標準のリモートデスクトップが使えます。追加したIPアドレスを指定して接続します。macOSの場合は日本語キーボードが使えるMicrosoft Remote Desktop Connection Client for Mac 2.1.1をインストールします。
管理ユーザーとして作成したcloud-userとパスワードを入力してログインします。

MATE Terminalを開きます。
- Applications -> Sytem Tools -> MATE Terminal
ibus-setupを実行して日本語IMEにMozcを指定します。
$ ibus-setup |
- Input Method -> Add -> Japanese -> Mozc -> Add
Fireroxを使い日本語入力を確認します。
$ sudo apt-get install -y firefox |
- Applications -> Internet -> Firefox Web Browser
右上メニューをJapanese-Japanese から Japanese-Mozcに変更するとアイコンが「あ」になり日本語入力ができるようになります。

Windows 10の場合はの半角/全角キー、macOSの場合は半角キーで日本語入力を切り換えることができます。