仮想マシンQEMU/KVMを操作出来る「VM Manager」

QEMU/KVM操作として、Cockpitの仮想マシンプラグインを置き換えられるものとして作成している「VM Manager」。先日、完成版と言っていましたが、追加したい機能が出たので更新しました。
空のディスクイメージ作成機能を追加したほか、ついでに新規作成画面を整理、VNCコンソールの画面サイズも3段階用意しています。
ひとまず使いやすくなったので、今度こそ完成版です。
次に困ったときに修正するかもしませんが。

一応分かっている問題点としては、ブート順の変更で、CDやHDDのどちらを先頭にするかは変更できるのですが、同じCD同士だと若い番号のほうが上になってしまいます。CDを入れ替えることで対処出来るのとそんなに使わなさそうなので、ひとまずはこのままです。

ホストにインストール

これまでと変わらず、特別にセキュリティ対策はしておらず、LAN内の別のPCからアクセスされてしまうので何かしら対策しながら使ってみてください。

sudo nano install-vm-manage6.sh
sudo bash install-vm-manage6.sh
#!/bin/bash
set -e

INSTALL_DIR="/opt/vm-manage"
SERVICE_NAME="vm-manage"
PORT=8090

echo "=========================================="
echo " VM Manager Web UI - インストールスクリプト"
echo "=========================================="

if [ "$(id -u)" -ne 0 ]; then
    echo "エラー: このスクリプトは root で実行してください"
    exit 1
fi

echo ""
echo "[1/7] システムパッケージをインストール中..."
apt-get update -qq
apt-get install -y -qq \
    python3 \
    python3-venv \
    python3-pip \
    python3-libvirt \
    libvirt-daemon \
    libvirt-daemon-system \
    libvirt-clients \
    qemu-system-x86 \
    qemu-utils \
    qemu-system-gui \
    qemu-system-modules-spice \
    ovmf \
    usbutils \
    sudo \
    curl

echo "[2/7] libvirtd サービスを有効化中..."
systemctl enable --now libvirtd.service

echo "[3/7] アプリケーションファイルを展開中..."
mkdir -p "${INSTALL_DIR}"

# tarball をデコードして展開
TARBALL_DATA="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"
echo "${TARBALL_DATA}" | base64 -d | tar xzf - -C /opt/

echo "[4/7] Python 仮想環境を作成中..."
if [ -d "${INSTALL_DIR}/venv" ]; then
    rm -rf "${INSTALL_DIR}/venv"
fi
python3 -m venv --system-site-packages "${INSTALL_DIR}/venv"
chmod +x "${INSTALL_DIR}/venv/bin/python"

echo "[5/7] Flask をインストール中..."
"${INSTALL_DIR}/venv/bin/pip" install --quiet --upgrade pip
"${INSTALL_DIR}/venv/bin/pip" install --quiet flask

echo "[6/7] systemd サービスを設定中..."
cat > "/etc/systemd/system/${SERVICE_NAME}.service" << 'SVCEOF'
[Unit]
Description=VM Manager Web UI
After=libvirtd.service
Requires=libvirtd.service

[Service]
Type=simple
User=root
WorkingDirectory=/opt/vm-manage
ExecStart=/opt/vm-manage/venv/bin/python /opt/vm-manage/app.py
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
SVCEOF

echo "[7/7] サービスを起動中..."
systemctl daemon-reload
systemctl enable --now "${SERVICE_NAME}.service"

echo ""
echo "=========================================="
echo " インストール完了!"
echo "=========================================="
echo ""
echo " サービス状態:"
systemctl is-active "${SERVICE_NAME}.service"
echo ""
IP_ADDR=$(hostname -I | awk '{print $1}')
echo " アクセスURL: http://${IP_ADDR}:${PORT}"
echo ""

アンインストール方法

sudo systemctl stop vm-manage
sudo systemctl disable vm-manage
sudo rm /etc/systemd/system/vm-manage.service
sudo systemctl daemon-reload
sudo rm -rf /opt/vm-manage
タイトルとURLをコピーしました