UbuntuでIncus 7.0 LTSを使用する

LXDから派生したIncusの最新版、Incus 7.0 LTSが2026年5月5日に正式リリースされたので、Ubuntuに導入してみました。2031年6月までの5年間サポートとなっているようです。

Incusのセットアップ

sudo mkdir -p /opt/script
sudo chown $USER:$USER /opt/script
chmod u+rwx /opt/script
cd /opt/script
nano incus-setup-ubuntu2604.sh
chmod +x incus-setup-ubuntu2604.sh
sudo ./incus-setup-ubuntu2604.sh
#!/usr/bin/env bash
# =============================================================================
# Incus 7.0 LTS セットアップスクリプト (Ubuntu 26.04)
# - ストレージ・ネットワークはincus admin initで設定
# =============================================================================

set -euo pipefail

RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; NC='\033[0m'
info()    { echo -e "${CYAN}[INFO]${NC}  $*"; }
success() { echo -e "${GREEN}[OK]${NC}    $*"; }
warn()    { echo -e "${YELLOW}[WARN]${NC}  $*"; }
error()   { echo -e "${RED}[ERROR]${NC} $*"; exit 1; }

[[ $EUID -ne 0 ]] && error "sudoで実行してください"
REAL_USER="${SUDO_USER:-$USER}"

# =============================================================================
# 1. Zabbly リポジトリ + Incus 7.0 インストール
# =============================================================================
info "=== Zabbly リポジトリのセットアップ ==="

mkdir -p /etc/apt/keyrings
TMPKEY=$(mktemp)
curl -fsSL https://pkgs.zabbly.com/key.asc -o "$TMPKEY"

FINGERPRINT=$(gpg --show-keys --fingerprint "$TMPKEY" 2>/dev/null \
    | grep -A1 "^pub" | tail -1 | tr -d ' ')
EXPECTED="4EFC590696CB15B87C73A3AD82CC8797C838DCFD"

if [[ "$FINGERPRINT" == "$EXPECTED" ]]; then
    success "GPGキー確認済み"
    gpg --dearmor < "$TMPKEY" > /etc/apt/keyrings/zabbly.gpg
else
    rm -f "$TMPKEY"
    error "GPGキーのフィンガープリントが一致しません\n  期待値: $EXPECTED\n  実際値: $FINGERPRINT"
fi
rm -f "$TMPKEY"

CODENAME=$(. /etc/os-release && echo "${VERSION_CODENAME}")
ARCH=$(dpkg --print-architecture)

cat > /etc/apt/sources.list.d/zabbly-incus-stable.sources << EOF
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/stable
Suites: ${CODENAME}
Components: main
Architectures: ${ARCH}
Signed-By: /etc/apt/keyrings/zabbly.gpg
EOF

apt-get update -qq
apt-get install -y incus qemu-system
apt-get install -y incus-ui-canonical

INCUS_VER=$(dpkg-query -W -f='${Version}' incus 2>/dev/null || echo "7.0")
success "Incus ${INCUS_VER} インストール完了"

# =============================================================================
# 2. ユーザーをincus-adminグループに追加
# =============================================================================
info "=== ユーザー設定 ==="

if [[ "$REAL_USER" != "root" ]]; then
    usermod -aG incus-admin "$REAL_USER"
    success "$REAL_USER を incus-admin グループに追加しました"
fi

# =============================================================================
# 3. サービス起動
# =============================================================================
info "=== Incusサービスの起動 ==="

systemctl enable --now incus
systemctl enable --now incus-startup 2>/dev/null || true

for i in {1..15}; do
    if systemctl is-active --quiet incus; then break; fi
    sleep 2
    info "起動待機中... ($i/15)"
done
systemctl is-active --quiet incus || error "Incusサービスが起動しませんでした"
success "Incusサービス起動確認"

# =============================================================================
# 完了
# =============================================================================
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "${GREEN}  Incus 7.0 LTS セットアップ完了${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
if [[ "$REAL_USER" != "root" ]]; then
    echo -e "${YELLOW}  ※ グループ反映のためログアウトして再ログインしてください${NC}"
    echo "     または: newgrp incus-admin"
    echo ""
fi
echo "  次のステップ: 初期化"
echo "    sudo incus admin init"
echo ""
echo "  HTTPS有効化"
echo "    sudo incus config set core.https_address :8443"
echo ""
echo "  Web UIはTailscale経由でアクセス:"
TS_IP=$(tailscale ip -4 2>/dev/null | head -n1 || echo "<tailscale-ip>")
echo "    https://${TS_IP}:8443"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

いったん再起動ログアウト→再ログイン(グループ反映)

sudo reboot

再起動後に初期化。基本的に全てEnterで問題ありません。

sudo incus admin init

HTTPS有効化。もしLXD-UIを使用している環境ならおそらく8443ポートを使用していると思うので、その場合は8444番ポートなど空いている番号に。

sudo incus config set core.https_address :8443

Webブラウザでアクセス

https:// IPアドレス :8443 にアクセスします。

証明書を作成します。

読み込み時に使用するパスワードを設定。

証明書が作成されたらダウンロードし、ダウンロードしたフォルダで右クリックしてターミナルを表示。下記コマンドでインストールします。

incus config trust add-certificate incus-ui.crt

続いて、.pfxファイルをダウンロードします。使用しているブラウザによってやり方が表示されているので指示に従って作業します。

無事インストールされればアクセス出来ます。

タイトルとURLをコピーしました