めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

Fedora 18でVNC Server & virt-manager

Fedora 18のサーバーデスクトップ画面をVNC経由で表示して、virt-managerを使用する手順です。KVMの仮想マシンが起動しているとディスプレイ番号が奪われている場合があるので、仮想マシンはすべて停止した状態で作業してください。

まずは、Fedora 18を「Gnome Desktop」環境で導入します。導入後、firewalldの設定が辛いので、とりあえず、iptablesに変更しておきます。

# yum install iptables-services
# systemctl mask firewalld.service
# systemctl enable iptables.service
# systemctl start iptables.service

必要なパッケージを追加します。VNC経由でGnome Shellは辛いので、Cinnamonを利用します。

# yum install cinnamon tignervnc-server virt-manager virt-viewer openssh-askpass 

VNCで接続する先のユーザ「user01」を作成して、ログインパスワードとVNC接続パスワードを設定します。

# adduser user01
# passwd user01
# su - user01
$ vncpasswd

続けて、user01のまま、Xセッション起動ファイルを用意します。ここで、Cinnamonの利用を指定します。

/home/user01/.Xclients

#!/bin/bash

GSESSION="$(type -p gnome-session)"
if [[ ! -z "$GSESSION" ]]; then
    exec "$GSESSION" --session=cinnamon
fi

# fallback to default
/etc/X11/xinit/Xclients
$ chmod u+x /home/user01/.Xclients
$ exit

VNC Serverの設定は、systemdの設定ファイルとして作成します。

/etc/systemd/system/vncserver@.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :$(echo %I | cut -f2 -d:) >/dev/null 2>&1 || :'
ExecStart=/bin/sh -c '/sbin/runuser -l $(echo %I | cut -f1 -d:) -c "/usr/bin/vncserver -fg -geometry 1024x768 :$(echo %I | cut -f2 -d:)" || :'
ExecStop=/bin/sh -c '/sbin/runuser -l $(echo %I | cut -f1 -d:) -c "/usr/bin/vncserver -kill :$(echo %I | cut -f2 -d:)" || :'

[Install]
WantedBy=multi-user.target

最後にVNC Serverを起動して完了です。この時、サービス名(Unit名)として、「vncserver@<接続ユーザ>:<ディスプレイ番号>.service」を指定します。

# systemctl enable vncserver@user01:1.service
# systemctl start vncserver@user01:1.service

VNC Clientから接続すると、こんな感じのデスクトップが表示されます。

virt-managerの設定は、「遠隔地のKVMホストをvirt-managerで管理する方法」を参照してください。