cockpitのコンソールがnoVNCで、できているらしい。
ブログサーバは非力過ぎて固まりかけていたので、Hyper-VにインストしたAlmaLinux9があるからインストしてみた。
コチラを参考に固有情報以外はそのまんまインストしてみた。
最初は電子証明書がうまく機能せずエラってダメだった。
systemctl enable --now vncserver@:1 vncserver@:2
だけでは無理なのかな?
systemctl start --now vncserver@:1 vncserver@:2
も追加したけどダメ。
なぜ記事にはsystemctl start コマンドが無かったのか?再起動するなら不要だけど・・・!
AlmaLinux9を再起動してnovnc_proxy を実行すると、何事もなかったかの様に接続できた。
今のvncは一度再起動後しないと都合が悪いのかな?
さて、実際にAlmaLinux9のデスクトップ画面で色々操作してみると反応はとても良い。
古いとは云えCPUはINTEL i9-9900だし32GBメモリあるし同じパソコン同士なんだから当然として
AlmaLinux9でyoutobeで動画が普通に観れるのはスゴいなぁ。
音は出ないけどね。
難点を云えば、VNCクライアントなので、
- サーバでVNCサービスが動作していることが前提
- 接続するサーバのユーザ毎にVNC用のパスワードを設定
- 接続するサーバのユーザ毎にVNC用のポートを割り当てる
また、novnc_proxyもユーザ毎にポートを割り当てる必要があるから、ユーザ数分ファイアーウォールに穴をあけないといけないから、サーバー側は「ユーザ数×2倍」のポートを占有されてしまう。
その辺はxrdpの方が優しい。インストも楽だし。
あ、novnc_proxy をサービス化しないと、ラズパイ用の記事を発見。
先のnovnc_proxyをオプション付きでファイル化。
#!/bin/bash
sudo novnc_proxy --listen 6080 --cert /root/novnc.pem --vnc localhost:5901 --ssl-only
パーミッションは777。
これを呼び出すサービスの設定ファイルを作る。
[Unit]
Description=Run vnc and novnc
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/フルパス名でnovnc.sh
ExecStop=sudo vncserver -kill :1 && killall websockify
Restart=always
RestartSec=10
SELinuxContext=system_u:system_r:novnc_session_t:s0
[Install]
WantedBy=multi-user.target
パーミッションは777。
他のサービスは皆リンクファイルなので、
/
として作成した方がいいのかもしれない。
でもとりあえずstartできるけど
SE Linuxが有効だとダメ。
# chcon -t usr_t novnc.sh
やってみると一瞬動いたものの、再び起動しようとすると失敗。
ポリシーを変更してnovns.shを実行できるようにすればいいのだろうけど、メンドクサイのでパス!