変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

AlmaLinux

[TrueNAS]インスト

Windows11のHyper-Vにインストしてみた。

第2世代の仮想マシンでも動くけど、

  • 仮想マシンのセキュアブートOFFは必須。
    • ONでは起動できないようだ。
  • 仮想マシンのネットワークアダプターの高度な設定で、MACアドレスは「静的」に変える。
    • 動的のままでは、起動の度にIPアドレスが変わってしまう。
  • 仮想マシンの統合サービスでゲストサービスも使えるらしいのでチェックを入れる。
  • データ用のディスクが別途必要。

設定を終えて起動してみると、

自動的にダウンロードしたOSイメージからインスト。

完了したら、

再起動、

コンソールの最後にブラウザからアクセスするURLが表示される。

「システム」⇒「全般」で、ブラウザからアクセスする際のポートを変更できるのが地味に便利。

※WordPressとかWeb系アプリを入れるとか色々。

ただ、プラグインを色々インストしてみようとしたが、NATにしないとインストでエラってしまう。

難しいなぁ。



[Linux]noVNC

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。

他のサービスは皆リンクファイルなので、

/usr/lib/systemd/system/novnc@.service

として作成した方がいいのかもしれない。

でもとりあえずstartできるけど

SE Linuxが有効だとダメ。

# chcon -t usr_t novnc.sh

やってみると一瞬動いたものの、再び起動しようとすると失敗。

ポリシーを変更してnovns.shを実行できるようにすればいいのだろうけど、メンドクサイのでパス!



[Linux]Cockpit Web コンソール

TeraTermで接続したら

Activate the web console with: systemctl enable –now cockpit.socket

っとメッセージが気になったのでググってみると

どうやらCockpitというWebコンソールパッケージを使おう!と云う提案らしい。

まぁ、TeraTermをインストしなくて済むならCockpitもアリかな?と思いCockpitをインスト。

# dnf install cockpit
# systemctl enable --now cockpit.socket
# firewall-cmd --permanent --zone=public --add-service=cockpit
# firewall-cmd --reload

これでCockpitが

https:/192.168.xxx.xxx:9090/

で、使えるようになった。

ブラウザに「保護されていない通信」と表示されるのは仕方が無い。(笑

メニューの一番下に「端末」機能もあるので、これでTeraTermともオサラバ?かと思ったけど

「端末」から接続してみると、「概要」でのCPU負荷が95%に上がってしまう様だ。

でも、TeraTermからも接続してtopコマンドで確認すると「端末」を開くとCPU負荷が60%まで上がりその後1%未満になるので、そう悪くない。

この「端末」でtopコマンドを実行すると反応が鈍いが、これもCPUのせいか?

ホストOS側にもインストしてDashboardやVirtual Machinesのアドオンを載せると楽そう。ゲストOSのコンソールまで付いているので行方不明になった時に便利そう。

ポートも

systemctl edit cockpit.socket

で、/etc/systemd/system/cockpit.socket.d/override.confを作成し適当なポートを割り当てればいいみたいなので、何かのWebサーバー管理とダブっても対応できそう。

ホストOS側で「ネットワーク」がNetworkManagerサービスを起動してもうまく認識できないかったので、anaconda-nm-config.serviceを起動しNetworkManagerを再設定し再ログインしたところ、表示するようになった。VM用のブリッジのせいかな?

ま、なんとなく使いそうなものは揃っている様だ。

唯一の難点は「最初の最初はTeraTermでログインしなければならない」ので、WindowsにTeraTermは必要そう。

しかし、これもゲストOSをコンテナ化しておけば多少面倒が減りそうな気もする。

ps.2023/08/10

程なく、動かなくなっていた。(大汗

原因は皆目見当が付かなかったので、ホストOS側のブリッジを作り直したり

ポートは、enp系のみチェックする。vnetxxは仮想マシン起動すると自動的にチェックが入るので不要。

何気にゲストOS側からIPアドレスを取得させてみると・・・

# ifconfig ens2 
ens2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether **:**:**:**:**:**  txqueuelen 1000  (Ethernet)
        RX packets 109  bytes 23789 (23.2 KiB)
        RX errors 0  dropped 4  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
# dhclient  enp0s2 ※または ens2 でIPアドレス割当要求
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
    altname enp0s2
    inet 192.168.***.***/24 brd 192.168.***.255 scope global dynamic ens2
       valid_lft 14295sec preferred_lft 14295sec

と繋がるものの再起動すると繋がらない。

そう。

「全般」のチェックが抜けているとメンドクサイ事になる

ゲストOSのcockpitで、ネットワークのens2(環境によりマチマチな名)を見ると

なぜか「全般」の「自動的に接続」のチェックボックスが外れていた。

あと、

br0ばかり使えば良いけど、br1とか作ってもなかなか出てこないのは不便

この辺はcockpitと云うよりも既存のifconfigやdhclient自体の設定の反映が超遅いので仕方が無いけど

ネットワークでシクジると、己を信じつつ、じっくり時間をかけて少しづつ進めるしかないようだ。

※ああ、メンドクサイ。

尚、途中でホスト側すらLANから繋がらなくなったので、やはりモバイルモニターと非常用のキーボードは必須の様だ。でも、最後には面倒になって本体を棚から引っ張り出して普通のモニターに繋ぎ、

設定を変えては ip a で状況を観察していたけどね。(笑

試しにUbuntuの仮想マシンも作ってみると、cockpitの仮想マシンのコンソールにVPNやX windowの選択が出てくるので、TeraTerm接続で最小インストールから頑張るより楽だと思う。

注意点としては、仮想マシン作成時にISOイメージファイルを指定すると、CD-ROMデバイスとしてマウントしてくれて便利だけど、インスト後は不要とcockpitの画面からCD-ROMを削除して仮想マシンを起動するとkernel-panicになってしまうので「OSをダウンロードします」の方がいいかも。

但し、しょぼいCPU(J1900とか)ではOSのグラフィカルなインストーラの反応がさっぱり動かない時もあるので気長に。

後、rootディスクの空きが少なかったので、仮想マシンの「ストレージプール」で新規に追加してみた。/home/vmdiskとファイルの所有者設定の都合上、/homeにした。

これを使って、既存の仮想マシンにディスクを追加するとコンソールにログが出るから

# [  190.474791] pci 0000:00:03.0: [1af4:1001] type 00 class 0x010000
[  190.480984] pci 0000:00:03.0: reg 0x10: [io  0x0000-0x003f]
[  190.484985] pci 0000:00:03.0: reg 0x14: [mem 0x00000000-0x00000fff]
[  190.493296] pci 0000:00:03.0: BAR 1: assigned [mem 0xc0000000-0xc0000fff]
[  190.498379] pci 0000:00:03.0: BAR 0: assigned [io  0x1000-0x103f]
[  190.503135] virtio-pci 0000:00:03.0: enabling device (0000 -> 0003)
[  190.570240] virtio-pci 0000:00:03.0: virtio_pci: leaving for legacy driver
[  190.579224] virtio_blk virtio5: [vdb] 62914560 512-byte logical blocks (32.2 GB/30.0 GiB)
[  190.585383] vdb: detected capacity change from 0 to 32212254720

ゲストOS側でmounttabにvdbデバイスをmounttabに追記すればいいのかなぁ?とか悩んでいるウチに仮想マシンがクラッシュしたので、追加したディスクを削除して実行。

仕方が無いから、WindowsのHyper-Vでディスク後付けの手順を確認してからやり直そう。

新規仮想マシン作成時で「ストレージプール」を指定する時も作成済みのボリュームファイルを指定する様なUIなので、指定の確認漏れ(≒ミス)=指定してしまった既存ファイルの破壊に繋がるから要注意だ。

  1. 事前にダミーファイルを作りUIを回避
  2. 【作成して編集する】ボタンで即実行を回避
  3. 正しいファイル名でディスクを追加
  4. ダミーファイルのディスク設定を削除
  5. 【実行】

こんな手順になるけど、こっちはちゃんとインストできた。



[blog]激重

データベースエラーが出ていた。

原因はブログ用のゲストOSがヘタれ、コマンドプロンプトでコマンドを打つと10秒くらい応答が無かったので、タイムアウトチェックに引っかかるものは全てエラってるっぽい。

rebootやpoweroffコマンドは通るもののシャットダウンする気配が無い。

ホスト側は特に異常は見当たらない。

virt-topでゲストOSの負荷を見ても、CPU:0.5%しかない。

仕方なくホスト側を再起動。

apacheの設定を見直してみると前のDDNSのドメインのままになっている箇所を発見。

コレのせいかな?

てか何で普通に観れてたんだろう???

とりあえず、バックアップを取っておこう。圧縮しても4GB越え。

WinSCPでコピると6分以上かかる。

とても古い圧縮方式arcfourの優先度を最上位にしてもほとんど差が無かった。

サーバ側が古すぎなのは未サポートになってた様な気もする。

当然、同時接続数をq2から9に上げても変わらず。

やっぱりCPUか。J1900だもんなぁ。




top