Skip to content

インストール

Condensa は 単一の自己完結型バイナリ として配布されます。Web UI は バイナリに埋め込まれ、データベースは SQLite、設定は環境変数で行います。 Kubernetes は 不要 です(移行先が Awanio CEP の場合にのみ関係します)。

要件

  • Linux x86_64 サーバー(VM でも可)
  • Condensa サーバーから以下へのネットワークアクセス:
    • VMware vCenter/ESXi(ポート 443)
    • 移行先 — Awanio Cockpit または Vapor の API(統合 を参照)
  • ステージング転送用のディスク容量(staged フォールバックと OVA/VHD アップロードのみが使用): 移行する最大のディスクに合わせて確保してください

データ経路の依存関係

Condensa はディスクデータを 2 つの経路のいずれかで転送し、それぞれに前提条件が あります。エンジンは移行ごとに自動選択されるため、大きな転送を始める 前に どちらが使われるかを把握しておくと安全です。

データ経路データの流れウォーム移行前提条件
VDDK 直接(推奨)ESXi → 移行先ホスト対応移行先 の Vapor ホスト: VDDK プラグイン付き nbdkit、VMware の VDDK ライブラリ、qemu-nbdnbdfuse
ステージング(フォールバック、Cockpit のみ)ESXi → Condensa → 移行先非対応Condensa ホスト: qemu-img(パッケージ qemu-utils

移行先ホスト(Vapor): VDDK

VDDK がないとウォーム移行は行えず、すべての移行がステージング経路にフォール バックします。Vapor の UI(System → Third-party libraries)または Ansible ロール で導入し、バッジが installed になることを確認してください。選択されたエンジンは 移行ログに出力されます:

Target host supports VDDK; using direct VDDK pull

代わりに Target host has no VDDK (nbdkit not found) と表示された場合は、 ステージング経路が使われています。

Condensa ホスト: qemu-img

ステージング経路では、エクスポートした各ディスクを Condensa 内部で qcow2 に 変換するため、qemu-img が必要です:

bash
sudo apt-get install -y qemu-utils     # Debian/Ubuntu
sudo dnf install -y qemu-img           # RHEL/Rocky

これが無い場合、Condensa はエクスポートの途中で失敗するのではなく、ステージング 移行の開始自体を拒否します。仮想アプライアンスには最初から含まれています。

移行先には VDDK を

ステージング経路は全バイトを 2 回コピーし(ソース → Condensa → 移行先)、最大 ディスク分のステージング領域を必要とします。移行先に VDDK を導入すればどちらの コストも無くなり、ウォーム移行も可能になります。大きな VM を移行する前に導入する 価値があります。

ステージング経路のネットワーク到達性

ステージング経路では、移行先CONDENSA_PUBLIC_URL を通じて Condensa から 準備済みディスクをダウンロードします。この URL はブラウザからだけでなく 移行先 ホストから 到達できる必要があります。移行先がルーティングできないプライベート ネットワークや NAT 内のアドレスでは、ダウンロード段階で失敗します。

1. バイナリの配置

bash
sudo install -m 0755 condensa-server /usr/local/bin/condensa-server
sudo mkdir -p /var/lib/condensa/staging /var/log/condensa /etc/condensa

2. 暗号化キーの生成

プロバイダーの認証情報(vCenter パスワード、API トークン)は AES-256-GCM で暗号化 して保存されます。キーは一度だけ生成し、 運用者が保管します — データベースが漏えいしても認証情報は漏れません。

bash
condensa-server -generate-key

認証トークン用の JWT 署名シークレット も必要です。これがないとサーバーは 起動しません(安全でないデフォルトは持ちません)。後から変更すると既存の セッションは無効になります:

bash
openssl rand -base64 48

両方を /etc/condensa/condensa.env に保存します:

bash
sudo tee /etc/condensa/condensa.env <<'EOF'
CONDENSA_ENCRYPTION_KEY=<生成した暗号化キー>
JWT_SECRET=<生成した JWT シークレット>
EOF
sudo chmod 600 /etc/condensa/condensa.env

キーは厳重に保管

CONDENSA_ENCRYPTION_KEY を失うと、すべてのプロバイダー認証情報を 再入力する必要があります。他のシークレットと同様にバックアップしてください。

3. systemd ユニットの作成

/etc/systemd/system/condensa.service:

ini
[Unit]
Description=Condensa VM migration server
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/condensa-server
Environment=PORT=8080
Environment=DB_PATH=/var/lib/condensa/condensa.db
Environment=CONDENSA_UPLOAD_DIR=/var/lib/condensa/staging
Environment=CONDENSA_LOG_FILE=/var/log/condensa/condensa.log
Environment=CONDENSA_PUBLIC_URL=http://condensa.example.com:8080
# condensa.env holds CONDENSA_ENCRYPTION_KEY and JWT_SECRET (chmod 600)
EnvironmentFile=/etc/condensa/condensa.env
Restart=on-failure

[Install]
WantedBy=multi-user.target
bash
sudo systemctl daemon-reload
sudo systemctl enable --now condensa

環境変数

変数必須用途
CONDENSA_ENCRYPTION_KEY必須プロバイダー認証情報の AES-256 暗号化キー(-generate-key
JWT_SECRET必須認証トークンの署名キー(32 バイト以上、例: openssl rand -base64 48)。設定しないとサーバーは起動しません
PORT任意(既定 8080)HTTP リッスンポート
DB_PATH任意SQLite データベースファイルのパス
CONDENSA_PUBLIC_URLstaged 転送 / OVA 用移行先が Condensa のディスク配信エンドポイントへ到達する URL
CONDENSA_UPLOAD_DIRstaged 転送 / OVA 用ステージングディレクトリ — 最大ディスクに合わせる
CONDENSA_LOG_FILE推奨UI の Logs ページを有効化
CONDENSA_ADMIN_USERNAME / CONDENSA_ADMIN_PASSWORD任意最初の管理者を非対話で作成(自動化用)
CONDENSA_TLS推奨offself-signedonHTTPS を参照
CONDENSA_TLS_CERT / CONDENSA_TLS_KEYCONDENSA_TLS=on の場合PEM 証明書チェーンと秘密鍵
CONDENSA_TLS_HOSTSいいえ自己署名証明書に含める追加の名前/アドレス
CONDENSA_UPDATE_URLインプレース更新に必要署名済み更新フィード — 更新 を参照
CONDENSA_UPDATE_PUBLIC_KEYCONDENSA_UPDATE_URL と併用フィードを検証する Ed25519 鍵

HTTPS

ログインフォームはパスワードを送信し、以降のリクエストはすべてセッション トークンを含みます。ダッシュボードは TLS で提供してください。3 つのモードが あります:

CONDENSA_TLS動作
off(既定)平文 HTTP。前段のリバースプロキシが TLS を終端する場合のみ。
self-signedCondensa が自己署名証明書を発行し、自動更新します。
onCONDENSA_TLS_CERTCONDENSA_TLS_KEY を使用します。

認識できない値は起動時エラーになります。黙って平文にフォールバックすること はありません。

自己署名証明書

多くの環境ではプライベートネットワーク上の IP アドレスでアクセスするため、 証明書を発行してくれる認証局が存在しません:

bash
CONDENSA_TLS=self-signed

証明書はデータベースの隣に保存され、ループバック・ホスト名・全インターフェイス アドレスを含み、有効期限が近づいたときやホストが新しいアドレスを得たときに 自動で再発行されます。信頼するまでブラウザは初回に警告しますが、毎リクエスト で資格情報を平文送信するよりはるかに安全です。

インターフェイスから導出されない名前を追加する場合:

bash
CONDENSA_TLS_HOSTS=condensa.internal.example.com,10.20.0.5

自分で用意する証明書

bash
CONDENSA_TLS=on
CONDENSA_TLS_CERT=/etc/condensa/tls/fullchain.pem
CONDENSA_TLS_KEY=/etc/condensa/tls/privkey.pem

サービスユーザーが両方のファイルを読める必要があります。

Condensa から取得する転送経路

2 つの移行経路では、ターゲットCONDENSA_PUBLIC_URL 経由で Condensa から ディスクイメージをダウンロードします: Cockpit へのステージング経路と Awanio CEP (CDI) です。これらは証明書を検証するため、自己署名証明書はターゲットが信頼して いない限り拒否されます。その経路では CA 署名済みの証明書を使ってください。

直接 VDDK 移行(Cockpit / Vapor ターゲットの既定)は Condensa ではなく VMware から取得するため影響を受けません。

TLS を有効にしたら CONDENSA_PUBLIC_URLhttps:// にしてください。

4. 初回起動

http://<server>:8080 を開きます。新しいデータベースでは セットアップウィザード が表示され、最初の管理者アカウントを作成して そのままログインします。スクリプトによるデプロイでは CONDENSA_ADMIN_USERNAMECONDENSA_ADMIN_PASSWORD を設定すると 起動時に管理者が作成されます。

セットアップ後:

  • Users タブ(管理者専用)で追加アカウントを作成します。member ロールはオペレーター用で、プロバイダーの閲覧と移行の作成・開始・ キャンセルができます。プロバイダー管理、削除、ユーザー管理、監査ログは 管理者専用です。
  • セキュリティ上重要な操作(ログインとその失敗、ユーザー/プロバイダーの 変更、移行のライフサイクル)はすべて Audit Log タブに記録されます。

5. プロバイダーの接続

統合 に進み、VMware ソースと Awanio Cockpit / Vapor ターゲットを登録してください。

更新

更新は /var/lib/condensa にも /etc/condensa にも触れません。プロバイダー、 暗号化された資格情報、移行履歴、ユーザー、2 つのシークレットはそのまま引き継が れます。再設定は不要です。

ダッシュボードから

新しいリリースが公開されると、管理者に Install update ボタン付きの通知が 表示されます。Condensa はリリースをダウンロードし、検証し、インストールして 再起動します(数秒間の停止)。移行の実行中は再起動が移行を破棄するため、 ボタンは拒否します。

Condensa 1.1.8 以降でセットアップしたインストールは、エンタープライズ ポータルを確認するようあらかじめ設定されています — 鍵も設定も不要です。 ソースは /etc/condensa/condensa.env の 1 行で、空にすると更新確認を 無効化できます:

bash
CONDENSA_UPDATE_URL=https://enterprise.awan.io/api/v1/products/condensa/releases/latest

1.1.8 より前にセットアップしたインストールは、次回の手動アップグレード後に 同じ動作になります。上の行を手で追加しても構いません。

コマンドラインから

bash
sudo condensa update --check    # 利用可能な更新を表示するだけ
sudo condensa update            # 最新リリースを導入して再起動
sudo condensa update --to 1.1.7 # 特定のリリースを導入

移行の実行中に更新するには --force を付けます — その移行は中断され失敗 します

更新時の検証

現在動作しているバイナリを置き換える前に:

  1. リリースが信頼できる出所であること — 設定したポータルへの TLS、または エアギャップ用フィードでは設定した鍵で検証できる Ed25519 署名;
  2. ダウンロードしたファイルの SHA-256 がフィードの公開値と一致すること;
  3. ダウンロードしたバイナリが実行でき、約束されたバージョンを報告すること — 切り詰められた、またはアーキテクチャの異なるダウンロードを検出します;
  4. 強制しない限り、実行中の移行がないこと。

置き換えられたバイナリは condensa.previous として残るため、ロールバックは コピーと再起動だけです。

手動でバイナリを差し替える

引き続きサポートされます — データベース移行は起動時に自動実行されます:

bash
sudo install -m 0755 condensa /usr/local/bin/condensa
sudo systemctl restart condensa

エアギャップ環境のインストール

エンタープライズポータルに到達できないホストも、2 つの方法でインプレース 更新できます。

手動(最も簡単): 管理された転送経路でリリース tarball を持ち込み、 ポータルのリリースページに表示される SHA-256 と照合してから:

bash
tar -xzf condensa-<version>-linux-amd64.tar.gz
sudo ./condensa install

アップグレードはデータベース、プロバイダー、資格情報、設定を保持します。

内部ミラーからの自動更新: Awanio は納品物の一部として、署名済み フィード(updates.signed.json)とそれを検証する公開鍵を提供します。 フィードとリリース tarball を内部の https サーバーに配置し、各 インストールを設定します:

bash
CONDENSA_UPDATE_URL=https://releases.internal.example.com/condensa/updates.signed.json
CONDENSA_UPDATE_PUBLIC_KEY=<鍵A>,<鍵B>

ミラーの証明書が内部 CA のものである場合は、その CA を各 Condensa ホストの OS トラストストアに追加してください。フィードは Ed25519 署名されているため、 ミラーが侵害されてもインストールが受け入れる内容は変えられません。その他の 検証はすべてそのまま適用されます。