AmazonLinux2 に リモートデスクトップ接続 ( MATE )

#概要
AmazonLinux2にMATEを入れてRDPで接続する
所用時間：５分くらい
![image.png](https://qiita-image-store.s3.amazonaws.com/0/185989/6b2b541b-7731-7073-c29f-d2b0ded565d3.png)

#作り方
2018/7/11現在、インスタンス作成ウィザードの先頭に出ている **ami-e99f4896** を使って作ってみる
インスタンスタイプは **t2.micro**を利用
インスタンスからインターネット接続できること（yumを使うので）

SSHで接続後、

```terminal
vi install.sh
```
で、下記スクリプトファイルを作る

```sh:install.sh
#!/bin/sh
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum groupinstall -y "MATE Desktop" --skip-broken
yum --enablerepo=epel install -y xrdp
echo mate-session > /etc/X11/xinit/Xclients 
chmod +x /etc/X11/xinit/Xclients 
systemctl enable xrdp
systemctl start firewalld
firewall-cmd --permanent --add-port=3389/tcp
yum install -y ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
yum install -y ibus ibus-kkc
mkdir /usr/share/mate/autostart
echo [Desktop Entry] > /usr/share/mate/autostart/ibus-daemon.desktop
echo Type=Application >> /usr/share/mate/autostart/ibus-daemon.desktop
echo Exec=ibus-daemon -drx >> /usr/share/mate/autostart/ibus-daemon.desktop
echo Hidden=false >> /usr/share/mate/autostart/ibus-daemon.desktop
echo X-MATE-Autostart-enabled=true >> /usr/share/mate/autostart/ibus-daemon.desktop
echo Name=ibus >> /usr/share/mate/autostart/ibus-daemon.desktop
localectl set-locale LANG=ja_JP.utf8
timedatectl set-timezone Asia/Tokyo
```
実行権限をつけて、実行する

```terminal
chmod u+x install.sh
sudo ./install.sh
```

後始末

```terminal
rm install.sh
```
GUIログイン用パスワードを設定する

```terminal
sudo passwd ec2-user
```
再起動

```terminal
sudo reboot
```



##接続してみる
クライアントから、RDPで接続。ユーザ名は ec-user2 パスワードは上記で決めたもの。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/185989/924e7a0a-0e8d-aa49-d4aa-e6acdc092deb.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/185989/6b2b541b-7731-7073-c29f-d2b0ded565d3.png)

ﾄﾞﾔ


#スクリプトの解説

###EPEL リポジトリを有効にする
これ→[AWS公式：EPEL リポジトリを有効にする方法](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-enable-epel/)

```terminal
# yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
```
↑これをすると、

```terminal
yum group list
```

```terminal
Available Groups:
   AWS Tools
   Development Tools
```
↑これだけしか出ないのが　↓こうなる

```terminal
Available Environment Groups:
   Cinnamon Desktop
   MATE Desktop
Available Groups:
   AWS Tools
   Backup Client
   Console internet tools
   Development Tools
   E-mail server
   Educational Software
   :(略)
```
になる

###MATEとxRDPをインストールする
```terminal
# yum groupinstall -y "MATE Desktop" --skip-broken
# yum --enablerepo=epel install -y xrdp
```

X Windows Systemはいらない
>2018/7/31 EPELが新しくなったらしく、>yum group list の表示内容が変わった
>その影響か、何やらエラーが出るので --skip-broken を追加した



###RDP接続されたときのセッションを決める
```terminal
# echo mate-session > /etc/X11/xinit/Xclients 
# chmod +x /etc/X11/xinit/Xclients 
```
全ユーザにMATEを使うように設定した。

|全ユーザに適用|ログインユーザごとに適用|
|---|---|
|/etc/X11/xinit/Xclients |~/.Xclients|


###xRDPを起動して、自動起動にしておく
```terminal
# systemctl enable xrdp
```
OS再起動するので、start は入れていない。

###ファイヤーウォールの穴をあける
```terminal
# systemctl start firewalld
# firewall-cmd --permanent --add-port=3389/tcp
```
AmazonLinux2をAMIから作成した直後は、ファイヤーウォールが機能していない感じがする
ファイヤーウォールポリシーはサービス起動していないとできないみたいなので
firewalldを起動→TCP3389（リモートデスクトップのデフォルトポート）を定義
OS再起動するので、reload や restartは入れていない

###日本語化
フォントを入れる

```terminal
# yum install -y ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts
```

ibus と ibus-kkc を入れる

```terminal
yum install -y ibus ibus-kkc
```
ibusとは… WindowsIMEのようなもの ->[Wikipedia](https://ja.wikipedia.org/wiki/IBus)
ibus-kkcとは… Japanese Kana Kanji input method for ibus →  ibus用日本語カナ入力システム的なもの

タスクバー（？）に表示されているのがibusで
その中に、「あ 日本語」と表示されているのがibus-kkc だと思う
![image.png](https://qiita-image-store.s3.amazonaws.com/0/185989/54d10d35-7c19-7f4c-e167-dd9c78b48593.png)

ibus と ibus-kkcを入れただけでは、タスクバーに表示されないので、
###ibus をタスクバーに表示する

```terminal
mkdir /usr/share/mate/autostart
echo [Desktop Entry] > /usr/share/mate/autostart/ibus-daemon.desktop
echo Type=Application >> /usr/share/mate/autostart/ibus-daemon.desktop
echo Exec=ibus-daemon -drx >> /usr/share/mate/autostart/ibus-daemon.desktop
echo Hidden=false >> /usr/share/mate/autostart/ibus-daemon.desktop
echo X-MATE-Autostart-enabled=true >> /usr/share/mate/autostart/ibus-daemon.desktop
echo Name=ibus >> /usr/share/mate/autostart/ibus-daemon.desktop
```
↓こんな感じの設定ファイルを作っています

```sh:ibus-daemon.desktop
[Desktop Entry]
Type=Application
Exec=ibus-daemon -drx
Hidden=false
X-MATE-Autostart-enabled=true
Name=ibus
```
このファイルの置き場所によって対象が、全ユーザorログインユーザになる

|全ユーザに適用|ログインユーザごとに適用|
|---|---|
|/usr/share/mate/autostart |~/.config/autostart|

ちなみに、GUIから
設定→ユーザ向け→自動起動するアプリ
![image.png](https://qiita-image-store.s3.amazonaws.com/0/185989/fc54c9dd-7be1-4d2c-a2d6-85832f8213ac.png)
追加で、コマンド **ibus-daemon -drx**
![image.png](https://qiita-image-store.s3.amazonaws.com/0/185989/37a44634-88ee-466a-9b44-a4e1554b7d33.png)

これを登録すると、~/.config/autostart に ibus-daemon.desktop が作成される

###ロケーションの変更
で、最後に

```terminal
# localectl set-locale LANG=ja_JP.utf8
```

確認

```terminal
# localectl
```
を実行すると

```terminal
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: n/a
```
↑これが、↓こうなる

```terminal
   System Locale: LANG=ja_JP.utf8
       VC Keymap: n/a
      X11 Layout: n/a
```

###タイムゾーン変更
```terminal
timedatectl set-timezone Asia/Tokyo
```

#課題
現時点では以下のような問題がある

- GUIからシャットダウンを選択しても落ちない
- メモ帳アプリで右クリックするとメモ帳が落ちる
- 何かの拍子で（多分xrdp）が無応答になって、EC2インスタンスの削除しようとしても１０分くらい待つことになる
- EC2作成時のUserDataでインストールスクリプトを流したら、xrdpはOKだがエラーが出る
- AMIでインスタンス複製しても上記と同じようなエラーが出る

ユーザがWindows代わりに長期的に使う用途には向かないかな。。
しかし
ブラウザを使ってちょっとした確認をしたい時などであれば、Windowsインスタンスを立てるよりは早くできる