コンテンツにスキップ

アップグレード・メンテナンス手順書

バージョンアップの概要

AegisMesh は、セキュリティ脆弱性の修正、パフォーマンス向上、および新機能(UTMRAW IP転送の強化、新OS対応など)を定期的にリリースしています。

管理画面の左下に 「New version available」 の通知が表示された場合、本手順書に従ってコントロールプレーンおよびクライアントのアップデートを実施してください。


コントロールプレーン(サーバー基盤)の更新手順

AegisMesh は Docker コンテナアーキテクチャを採用しており、ダウンタイムを最小限(通常数秒〜十数秒)に抑えたインプレース更新が可能です。

sequenceDiagram
    autonumber
    actor Admin as システム管理者
    participant Srv as サーバー (Docker Host)
    participant DB as データベース (PostgreSQL / SQLite)
    participant Reg as コンテナレジストリ
    
    Admin->>DB: 1. 事前バックアップ取得 (pg_dump / cp)
    Admin->>Reg: 2. docker compose pull
    Reg-->>Srv: 最新イメージ取得
    Admin->>Srv: 3. docker compose up -d
    Srv->>DB: 4. 自動スキーママイグレーション実行
    DB-->>Srv: マイグレーション完了
    Srv-->>Admin: サービス正常稼働確認

1. 更新前のデータベースバックアップ(必須)

バージョンアップ前に、必ずデータベースのバックアップを取得してください。

  • SQLite を使用している場合:
    Terminal window
    # SQLite データディレクトリのバックアップ
    sudo cp -r /var/lib/aegismesh/management.db /var/lib/aegismesh/management.db.bak_$(date +%Y%m%d)
  • PostgreSQL / Neon Serverless を使用している場合:
    Terminal window
    # pg_dump によるダンプ取得
    pg_dump -h $DB_HOST -U $DB_USER -d aegismesh -F c -b -v -f aegismesh_backup_$(date +%Y%m%d).dump

2. コンテナイメージの更新と再起動

Docker Compose ディレクトリに移動し、イメージの取得とコンテナの再生成を実行します。

Terminal window
cd /opt/aegismesh
# 1. 最新のコンテナイメージをプル
docker compose pull
# 2. コンテナをバックグラウンドで再作成・起動
docker compose up -d --remove-orphans
# 3. 起動ログの確認
docker compose logs -f management

3. 自動データベースマイグレーションの挙動

AegisMesh Management サーバーは起動時にデータベースのスキーマバージョンを自動検知します。

  • スキーマ差分が存在する場合、自動的にマイグレーションSQLが安全に適用されます。
  • ログに Database migration completed successfully と出力されれば更新成功です。

4. ロールバック手順

万が一、更新後に予期せぬ動作が発生した場合は、docker-compose.yml 内のイメージタグを直前のバージョン(例: v0.82.0-1)に固定して元に戻すことが可能です:

# 例: 直前の安定版タグに固定して戻す場合
services:
management:
image: aegismesh/management:v0.82.0-1
Terminal window
docker compose up -d

AegisMesh クライアントの更新

1. 各 OS 別アップデート方式マトリクス

AegisMesh クライアントのアップデート仕様は、OS ごとのセキュリティモデルおよびパッケージ管理方式に基づき以下のように定義されています。

対象 OS自動アップデート (Auto Update)推奨アップデート手順備考
Windows (10/11/Server)✅ 対応バックグラウンド自動更新 / インストーラー上書きサービス権限でサイレント実行 (/S)
macOS (Intel/Apple Silicon)✅ 対応公式 .pkg / LaunchDaemon 自動更新Homebrew 導入時は brew upgrade
Linux (deb/rpm/CLI)❌ 非対応apt update / dnf upgrade / install.shOS パッケージマネージャーの整合性を保護
Android❌ 非対応公式 LP より最新 APK ダウンロード・上書き最新版: v0.6.2-1
iOS / iPadOS❌ 非対応App Store 公式 NetBird アプリ更新※専用アプリ準備中

[!NOTE] Linux での自動アップデートが無効化されている理由:
Linux 環境では、クライアントデーモンによる自己バイナリ書き換えを行うと、ディストリビューションのパッケージマネージャー(APT, DNF, RPM, DPKG)が保持するチェックサムや依存関係台帳と不整合を起こすリスクがあります。サーバーやインフラ端末としての高い稼働安定性を維持するため、Linux 版ではソースコードレベル(//go:build windows || darwin)で自動アップデートコマンドを意図的に除外し、パッケージマネージャーまたは構成管理ツール(Ansible 等)経由での確実な更新を推奨しています。

2. 管理コンソールからの自動アップデート設定(Windows / macOS)

組織内の全端末を常に最新状態に保つため、ダッシュボードから自動更新ポリシーを一括有効化できます。

  1. ダッシュボードの 「Settings」>「Client Settings」 を開きます。
  2. 「Automatic Client Updates」 を Enabled に設定します。
  3. 対象端末(Windows / macOS)が次回のハートビート通信時にバックグラウンドで最新バイナリを安全にダウンロードし、自動更新を適用します。

2. 各OSでの手動アップデートコマンド

Linux (Ubuntu / Debian / Raspberry Pi)

ワンラインインストーラーを再実行するか、パッケージマネージャーを使用します:

Terminal window
# ワンラインでの最新版上書き(推奨)
curl -fsSL https://aegismesh.kusa-cloud.com/install.sh | sudo sh
# または APT を使用する場合
sudo apt update && sudo apt install --only-upgrade aegismesh

Linux (RHEL / Rocky / AlmaLinux / Fedora)

Terminal window
sudo dnf upgrade aegismesh

macOS (Apple Silicon / Intel)

Terminal window
# ワンラインでの最新版上書き
curl -fsSL https://aegismesh.kusa-cloud.com/install.sh | sudo sh
# Homebrew を使用している場合
brew upgrade aegismesh

Windows (10 / 11 / Server)

  • 公式 LP(https://aegismesh.kusa-cloud.com/#download)から最新の .exe インストーラーをダウンロードし、そのまま実行(上書きインストール)してください。
  • 既存の設定(アカウント紐付け、認証情報、秘密鍵)はすべて保持されたままバイナリとサービスのみが更新されます。
  • サイレントアップデート(情シスによる一斉配布時):
    Terminal window
    aegismesh_windows_amd64_installer.exe /S