Metonymical Deflection

ゆるく日々のコト・たまにITインフラ

CentOS8 小ネタ集その1:VNC serverの設定

CentOS8におけるtigervnc-serverの設定方法を記載します。
2021/04/14追記
CentOS8.3における設定方法を追記しました。6.5.CentOS8.3の設定方法を参照してください。

小ネタ集ってほどでもないですが、サクサクっと記載します。

1.インストールと設定ファイルコピー

dnf -y install tigervnc-server && \
cp -a /usr/lib/systemd/user/vncserver@.service /etc/systemd/system/vncserver@:1.service

2.設定ファイルの編集

=追記、=コメントアウト

vi /etc/systemd/system/vncserver@:1.service

[Service]
Type=forking
PIDFile=/root/.vnc/%H%i.pid

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
#ExecStart=/usr/bin/vncserver %i
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
ExecStop=/usr/bin/vncserver -kill %i

sedでサクッと設定したい場合は以下の通り。

sed -i -e '/^Type/a PIDFile=/root/.vnc/%H%i.pid' /etc/systemd/system/vncserver@:1.service
sed -i -e 's/ExecStart=/#ExecStart=/g' /etc/systemd/system/vncserver@:1.service
sed -i -e '/^#ExecStart=/a ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"' /etc/systemd/system/vncserver@:1.service

3.Passwd設定と一時起動&停止

vncpasswd
vncserver :1
vncserver -kill :1

4.ロックファイルの削除

rm /tmp/.X11-unix/X

⇒Tabで/Xのあとを補完すると、以下のような数字が表示される
rm /tmp/.X11-unix/X1024

上記のようにXのあとが1024であれば、合わせて以下のファイルも削除しておく。
rm /tmp/.X1024-lock

5.Service自動起動&起動

systemctl daemon-reload
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service

6.解像度変更

vi /usr/bin/vncserver

#$geometry = "1024x768";
$geometry = "1600x1200";

sedでサクッと設定したい場合は以下の通り。

sed -i -e '/$geometry/s/1024x768/1600x1200/g' /usr/bin/vncserver

6.5.CentOS8.3の設定方法

CentOS8.3におけるVNC Serverの設定方法が少し変わっています。*1

dnf -y install tigervnc-server && \
echo "session=gnome" >> /etc/tigervnc/vncserver-config-defaults && \
echo ":1=root" >> /etc/tigervnc/vncserver.users && \
mkdir /root/.vnc && \
echo "geometry=1600x1200" >> /root/.vnc/config && \
cp -p /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service && \
vncpasswd

上記コマンドにてパスワード入力後、以下のようにサービスの自動起動設定を行ってください。

systemctl daemon-reload
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service

以上です。

7.最後に

VNC serverが必要なケースとしては、Virt-Managerを起動するときなのですが、CentOS8からはCockpitの使用が推奨されています。
しかし、実際にCockpitでVMを作成したところ、NWインターフェース周りが柔軟に設定*2できないようだった*3ので、引き続きVNCのお世話になっています。

*1:インストールから解像度設定やサービスファイルのコピー、パスワード設定までワンラインで設定可能です。

*2:virsh editでxmlファイルをゴリゴリ編集すればよいだけなのですが。。

*3:SR-IOVの設定ができずでした