Metonymical Deflection

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

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

CentOS8におけるtigervnc-serverの設定方法を記載します。

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

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

以上です。

7.最後に

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

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

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