デプロイ
Proxmox VM にGlasswall Haloをデプロイするには、次の 2 つのオプションから選択できます:
詳細については、トラブルシューティングと FAQ または Proxmox documentation を参照してください。
OVA/VMDK からのデプロイ
ステップ 1 - Proxmox VE ホストを更新
互換性の問題を防ぐため、次のコマンドを実行して Proxmox ホストが最新の状態であることを確認してください。

- オンライン接続による更新:
apt-get update
apt-get dist-upgrade
ステップ 2 - 新しい VM シェルを作成
- Proxmox の Web UI にアクセスし、Create Virtual Machine をクリックします。

- General タブで、VM 名(例:
Glasswall-Halo)を入力します。

- OS タブで、汎用の Linux タイプ(例:
Linux 5.x/6.x)を選択します。ISO は不要です。

- System:
- BIOS: seaBIOS に設定します。
- SCSI controller: VirtIO SCSI。

- Hard disk: デフォルトのディスクを削除します(変換したディスクは後で接続します)。

- CPU: 最大のパフォーマンスを得るため、タイプを host に設定します。少なくとも 16 コアを割り当ててください。

- Memory: 32~64 GB を割り当てます。

- Network: NIC を目的のブリッジ(例:
vmbr0)に接続します。通常は VirtIO モデルを使用します。

- Confirm タブで概要を確認し、Finish をクリックします。
Note: まだ VM を起動しないでください。

ステップ 3 - OVA を展開して転送する
-
次のコマンドを実行して、ローカルシステム上で OVA を展開します。
tar -xvf Halo-FULL-<version>.ova

-
.vmdkファイル(例:Halo-full-<version>-disk1.vmdk)を特定します。 -
.vmdkを proxmox にアップロードします。例:scp Halo-FULL-...disk1.vmdk root@<Proxmox-IP>:/root/

ステップ 4 - ストレージを準備する(任意、LVM-Thin)
なぜ LVM-Thin なのか? 薄いプロビジョニングとスナップショットのサポートを提供するため、より大きい、または頻繁に更新される VM ディスクに最適です。ただし、Proxmox ではディスクをディレクトリベースやその他のストレージタイプに接続することもできます。
LVM-Thin を作成する手順例:
# Identify a free disk, e.g. /dev/sdb
pvcreate /dev/sdb
vgcreate vg-halo /dev/sdb
# Create a thin pool consuming all space
lvcreate -l 100%FREE -T -n thin-halo vg-halo

thin pool を作成したら、Datacenter -> Storage -> Add -> LVM-Thin から追加します。ボリュームグループとして vg-Halo を、thin pool として Thin-Halo を選択します。

ステップ 5 - Halo ディスクを変換して接続する
オプション A: qm importdisk
Proxmox ホストに SSH 接続します
インポートをサポートするストレージ(例: directory または LVM-Thin)を使用している場合は、次を実行します:
qm importdisk <VM_ID> /root/Halo-FULL-...disk1.vmdk <StorageName> --format qcow2
<Vm_id>は VM に割り当てられた ID です(例: 100)。<Storagename>は Proxmox のストレージターゲットです(例:local-lvm、Halo-lvmthin)。- 完了後、vm -> hardware に移動し、「unused disk」を見つけてから、edit を選択し、ide0 を指定します。
オプション B(推奨): 手動変換(qemu-img)
Proxmox ホストに SSH 接続します
qm importdisk でエラー(例: 「zeroinit」)が発生する場合、またはより直接的に管理したい場合:
-
Halo ディスク用にシンプロビジョニングされたボリュームを作成します:
lvcreate -n vm-<VM_ID>-disk-0 -V 200G --thinpool thin-halo vg-halo -
.vmdkを raw ディスクに変換します:qemu-img convert -f vmdk -O raw /root/Halo-FULL...disk1.vmdk /dev/vg-halo/vm-<VM_ID>-disk-0 -
ディスクを VM に接続します:
qm set <VM_ID> --ide0 halo-lvmthin:vm-<VM_ID>-disk-0

ステップ 6 - 最終的な VM 構成
- In VM -> Hardware:
- IDE0 はメインの Halo ディスクである必要があります。
- SCSI コントローラーとして「Virtio SCSI」が表示されていることを確認します。

-
VM -> Options で:
- Boot order で IDE0 が最初に設定されていることを確認します。
- BIOS が seaBIOS であることを確認します。
- KVM hardware virtualization と ACPI は有効にする必要があります。
-
任意: 高度な機能のために、QEMU guest agent を Halo VM 内にインストールできます。

ステップ 7 - 初回起動
-
Proxmox UI でVM を起動します。
-
コンソールを監視してください。初回起動時は、“Probing EDD…” を通過するまでに最大1分かかる場合があります。
-
Halo VM 内でネットワークを設定します:
- 静的IPの場合: Halo のセットアップを続行するには、Network Manager configuration guideに従ってください。完了したらここに戻ってください。
- DHCPの場合: DHCPサーバーが稼働していることを確認してください。
-
アプリケーションレベルの設定(例: start_halo.sh、syslog server、tls)を完了します。

Glasswall バックアップ(.vma.zst)からのデプロイ
Glasswall チームから事前設定済みの Proxmox バックアップが提供されている場合は、OVA/VMDK の手順を省略できます。
ステップ 1 - バックアップのアップロードと復元
-
.vma.zstバックアップファイルを Proxmox ホストのバックアップディレクトリにコピーします:scp glasswall-halo-backup.vma.zst root@<Proxmox-IP>:/var/lib/vz/dump/ -
Proxmox UI で、Node -> Local -> Backup に移動します。
-
.vma.zstファイルを見つけて、Restore を選択します。 -
新しい VM ID(例: 101)とターゲットストレージを割り当てます。

ステップ 2 - ディスク接続の確認
- 復元後、VM -> Hardware を開きます。
- メインディスクが IDE0 に接続されていることを確認します。
- VM -> Options で BIOS が seaBIOS に設定されていることを確認します。
ステップ 3 - VM の起動
- VM を起動します。
- エラーがないかコンソールを確認します。
- まだ設定されていない場合は、ネットワーク設定を構成します。
- Halo 内で最終的な設定手順を実施します。

トラブルシューティングと FAQ
zeroinit エラー
これは、特定のストレージタイプまたは古い QEMU バージョンで qm importdisk を使用した場合に発生することがあります。
解決策:
qemu-imgを使用して手動変換を行います。
ネットワーク設定の問題
- VM のインターフェース名が異なる場合(例:
ens18とeth0)、それに応じてifcfg-ファイルを調整してください。 - インターフェース名を確認するには、
nmcli device showまたはip aを使用します。
なぜ IDE + seaBIOS なのか?
- STIG で強化された RHEL イメージでは、特定のブート構成にレガシー BIOS が必要です。
- IDE は幅広い互換性を確保し、一部の仮想ドライバーで既知の問題を回避します。
追加のベストプラクティス
- スナップショット: 迅速なロールバックのために、Proxmox スナップショットまたは LVM-Thin スナップショットを活用します。
- バックアップ: 定期的に
vzdumpを使用して圧縮バックアップ(.vma.zst)を作成します。 - リソース監視: 本番負荷に対する CPU とメモリ使用量を監視してください。
Glasswall Halo サービスを開始する
- Glasswall Halo を起動するには、次のコマンドを実行します:
sudo start_halo.sh
- スクリプトの完了後、次のコマンドを使用して、すべての Glasswall Halo サービスおよび pod が実行中であることを確認します。
kubectl get pods
Glasswall Portal にアクセス
-
ネットワーク構成および/またはドメイン構成に応じて、仮想マシンに割り当てられたドメイン名および/または ip address を介して Glasswall portal にアクセスし、ファイルをクリーン化できるようになります。
-
ネットワークの状態を確認するには、次のコマンドを実行します。
sudo netstat -tlnp