クラウド上に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の場合は半角キーで日本語入力を切り換えることができます。