IBM Cloud: Power Systems Virtual ServerのAIXでGUIを構成してみた

#1. はじめに
ソフトウェア導入のために、AIXでGUIを使いたいという要件はたまにあります。
IBM Cloud上のAIXでも利用できることを確認してみました。

試してみたAIXバージョンは以下になります。

```
bash-4.3# oslevel -s
7200-04-01-1939
```

#2. VNC Serverの導入

[AIX Toolbox for Linux Applications](https://www.ibm.com/support/pages/aix-toolbox-linux-applications-downloads-alpha)のモジュールを使って、VNC Serverを導入します。
ただし、上記リンク中の最新版である`tightvnc-server-1.3.10-2`を利用すると、`libgcc-8.3.0`以上を導入する必要があり、一方で`libgcc-8.1.0-2`がすでに利用されているため、あまり環境を触りたくありませんでした。
そこで、今回は`tightvnc-server-1.3.10-1`を導入することにしました。

```
bash-4.3# curl -LO https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/tightvnc/tightvnc-server-1.3.10-1.aix6.1.ppc.rpm
bash-4.3# curl -LO https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/libjpeg/libjpeg-6b-7.aix6.1.ppc.rpm
bash-4.3# rpm -Uvh tightvnc-server-1.3.10-1.aix6.1.ppc.rpm libjpeg-6b-7.aix6.1.ppc.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:libjpeg-6b-7                     ################################# [ 50%]
   2:tightvnc-server-1.3.10-1         ################################# [100%]
```

#3. VNC Serverの起動

VNC Serverはhostnameへ通信します。hostnameにpingができることを確認し、もしpingができないならば`/etc/hosts`を構成します。

```
bash-4.3# hostname
power2
bash-4.3# ping power2
PING power2 (192.168.186.60): 56 data bytes
64 bytes from 192.168.186.60: icmp_seq=0 ttl=255 time=0 ms
64 bytes from 192.168.186.60: icmp_seq=1 ttl=255 time=0 ms
64 bytes from 192.168.186.60: icmp_seq=2 ttl=255 time=0 ms
64 bytes from 192.168.186.60: icmp_seq=3 ttl=255 time=0 ms
```

この後、VNC Serverを起動します。

- この後SSH Portfowardingを使うため外部からアクセスできる必要はないため、`-localhost`オプションを付けておきます。そもそも、[Power Systems Virtual ServerのPublic NWは特定のポートしか空いていない](https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-about-virtual-server#public-private-networks)ので、そもそもそのままでは外部公開はできません。
- パスワードは9文字以上を設定するとtruncateされてしまうようです。よって8文字で設定します。


```shell:vncserverの起動
bash-4.3# vncserver -localhost

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
Integer overflow in srand at /usr/bin/X11/vncserver line 151.

New 'X' desktop is power2:1

Creating default startup script //.vnc/xstartup
Starting applications specified in //.vnc/xstartup
Log file is //.vnc/power2:1.log

```

```shell:確認(locahostでしかVNCはlistenしていない）
bash-4.3# ps -ef|grep vnc
    root 17105270        1   0 17:18:59  pts/0  0:00 Xvnc :1 -desktop X -httpd /opt/freeware/vnc/classes -auth //.Xauthority -geometry 1024x768 -depth 24 -rfbwait 120000 -rfbauth //.vnc/passwd -rfbport 5901 -nolisten local -fp /usr/lib/X11/fonts/,/usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/,/usr/lib/X11/fonts/100dpi/,/usr/lib/X11/fonts/ibm850/,/usr/lib/X11/fonts/Type1/ -localhost

bash-4.3# netstat -an|grep 5901
tcp4       0      0  127.0.0.1.5901         *.*                    LISTEN
```

#4. 自端末(Mac)からVNCに接続する。

先述の通り、IBM Cloud上のPower環境のPublic NWはSSHなど限定されたポートしか空いていません。よって、今回はSSH Port forwardingを利用し、SSHとトンネル経由でVNC Serverを利用します。

```
MacBook-Pro:~ yasuda$ ssh root@<AIXのIPアドレス> -L 5901:localhost:5901
```

Finderで`サーバーへ接続`を選択
<img width="50%" alt="image.png名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/808fe47f-3c8b-9f64-197a-163a23684b07.png">
<img width="50%" alt="image.png名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f03fd571-1bf8-8e63-ae2d-ff042323e337.png">
<img width="50%" alt="image.png名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/fb268945-81e3-59c0-a03b-f8a367fbff77.png">
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/043e3c52-f364-bd17-add8-700e95464424.png)


#5. Smitの実験
AIXの管理ツールとして`smit`がありますが、普段はGUIを使うことはありません。
今回は、うまくいったときと失敗した時のキャラクターの動作を確認してみます。

##5.1 ユーザー作成（成功: キャラクター走った後に万歳します）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2e10a2b5-b420-c0d1-167c-ea9488db5643.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/75e7f91e-f7e5-9e16-dfca-10c543cd0428.png)


##5.2 ユーザー作成（失敗: キャラクターが走った後に転けます）
先ほどとおなじUIDで作成してみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/75f0a34f-cdca-8269-7eb0-b11f9cfea1f1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/d367de5d-3f07-8dea-4504-37cbb8e9c05d.png)