CentOS7にデスクトップ環境を追加する

参考

参考にさせていただいた記事です。
CentOS7 に後から GUI (X Window System) を追加する
CentOS7 VNC Serverのインストール
CentOS 7でVNCサーバを構築してみた

概要

CentOS7系でGUIを使えるようにしたい。
今回はデスクトップ環境としてGNOMEをインストールしますが、 GNOMEの初回設定はリモート接続ではなく直接コンソール上で行う必要があります。
今回インストールするサーバはクラウド上のサーバで、直接コンソールを叩けません。
また、起動オプションもCUIに制限されています。

こういった環境下でGUIを使えるようにするため、GNOMEに加えVNC Serverをインストールし、VNC Clientを用い遠隔で操作を行うようにする。 この手順をまとめておきます。

環境

CentOS Linux release 7.1.1503 (Core)

インストール

GNOMEのインストール

$ yum -y groupinstall "GNOME Desktop"  

1.9GBくらいある。長い。
手元にマシンがある環境であれば、これだけでGUIを使えるようになります。

VNC Serverのインストール

$ yum install tigervnc-server

設定

VNC Serverの設定

VNC Serverのパスワード設定

遠隔でログインするためのパスワードを設定。

$ vncpasswd
 Password:
 Verify:
$ 

VNC Serverのサービス設定

CentOS7なのでサービスの起動はsystemctl。
systemctlで起動できるようにするために、VNC Serverのユニットファイルを作ります。
今回はログインするのが自分だけなので、元のユニットファイルにシンボリックリンクを貼る。

$ cd /etc/systemd/system
$ ln -s /lib/systemd/system/vncserver@.service vncserver@:1.service

ちなみにvncserver@:1.serviceの”1”は、ログイン時に指定するポート番号。
1である必要は特にない。

リンクを貼ったvncserver@:1.serviceを編集する。
<USER>と記述されている箇所をすべてログインするユーザ名に書き換える。
2箇所のはず。

[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

VNC Serverの有効化

$ systemctl daemon-reload
$ systemctl enable vncserver@:1
$ systemctl restart vncserver@:1

3行目を実行すると、VNC Serverのサービスが設定した通りに起動するはず。

GNOMEの初期設定(の準備)

ここまでの設定で、VNC Clientを使ってサーバにアクセスすればログインできる。
ただし、 GNOMEのプロセスが上がっていないので何も表示されない。さみしい。

GNOMEの実行のために、下記コマンドを実行。

$ startx

ただし、リモート環境だと正常に実行されない。

touch: cannot touch ‘/root/.cache/imsettings/log’: No such file or directory
^Cxinit: connection to X server lost
waiting for X server to shut down (EE) Server terminated successfully (0). Closing log file.
xinit: unexpected signal 2

Ctrl-Cで止めちゃってOK。

ファイアウォールの設定

忘れがち。
端末からのアクセスは、”サービス設定の項で指定した値 + 5900” のポート番号でアクセスすることになる。
今回の場合は5901。

VNC Clientでのログイン

いよいよログイン。
今回はWindows上でUltraVNCを利用。

Login

“VNCServer:” のフォームに、”:<サービス設定で指定した番号 + 5900>” を入力。
パスワードを求められるので、パスワード設定で設定したパスワードを入力。

Password

ログインできます。やったぜ。
言語の設定等をしてあげれば、デスクトップが操作できるようになる。

VNC Serverサービスの停止

リソースの節約のため、VNC Serverのサービスは使わないときは止めておくべきかもしれない。

$ vncserver -kill :1