---
title: OSテンプレートとISO
description: お客様がデプロイするOSイメージを準備します。CloudStackテンプレートのビルドと登録、およびProxmox VEクラウドイメージテンプレートの作成を行います。
url: https://nexcmp.com/ja/docs/infrastructure/templates/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# OSテンプレートとISO {#os-templates-and-isos}

> **管理者画面の場所:** Services › Virtual Machines › Template（`/vm/templates`）。Proxmoxテンプレートは Infrastructure › Cloud provider › Providers › (cluster) › Clusters でクラスターごとに一覧表示されます。

## 動作内容 {#what-it-does}

テンプレートは、新しいVMの起動元となるオペレーティングシステムイメージです。NexCMPはイメージ自体を保存せず、CloudStackが報告する情報（準備完了、お勧めテンプレート）やProxmoxクラスター用にリストした内容を読み取り、顧客向けの名称、アイコン、ログインユーザーを指定して販売するものを選択できるようにします。このページでは、パスワードログイン、ライブCPUおよびRAMスケーリング、スワップファイル、プランサイズまで拡張するルートディスクなど、NexCMPで正常に動作するイメージの準備方法について説明します。

## 要件 {#requirements}

| 項目 | 要件 |
|---|---|
| CloudStack template builder | `libguestfs-tools`（`virt-customize`、`virt-sparsify`、`guestfish`）、`qemu-utils`、`curl`を備えた約5 GBの空きディスクを持つLinuxマシン。KVMやrootは必要ありません。パッケージのインストールにはインターネットアクセスが必要です（または `--offline` でビルドします）。 |
| ビルダーの場所 | パネルサーバー上の `/opt/nexcmp/releases/<version>/share/templates/` 内のすべてのリリースに同梱されています。そこで実行する必要はありません。フォルダーを任意のLinuxマシンにコピーしてください。 |
| Web server | 作成した `.qcow2` ファイルを公開するために、CloudStackのセカンダリストレージVMがアクセスできる任意のHTTP(S)サーバー。インターネットからアクセスできる必要はありません。 |
| CloudStack | テンプレートを登録できる権限を持つアカウント、およびゾーンと一致するOSタイプのID。 [CloudStack](https://nexcmp.com/ja/docs/infrastructure/cloudstack/) を参照してください。 |
| Proxmox VE | QEMUゲストエージェントを搭載したCloud-initテンプレートVM（OSおよびノードごとに1つ）。[Proxmox VE](https://nexcmp.com/ja/docs/infrastructure/proxmox/)を参照してください。 |
| 依存関係 | 最初に接続された [CloudStack](https://nexcmp.com/ja/docs/infrastructure/cloudstack/) または [Proxmox VE](https://nexcmp.com/ja/docs/infrastructure/proxmox/)。 |

## インフラストラクチャの準備 {#prepare-the-infrastructure}

### CloudStack：テンプレートのビルド {#cloudstack-build-a-template}

サポートされているベースイメージ（変更を加える前に、ベンダーイメージがダウンロードされ、チェックサムが検証されます）：

| Image | `--distro` | Login user |
|---|---|---|
| Ubuntu 22.04 | `ubuntu-22.04` | `ubuntu` |
| Ubuntu 24.04 | `ubuntu-24.04` | `ubuntu` |
| Debian 12 | `debian-12` | `debian` |
| Rocky Linux 9 | `rocky-9` | `rocky` |

その他のディストリビューション： `distros.conf` に行を追加します（イメージURL、チェックサムファイル、ファミリー `deb` または `rpm`）。

1. ビルダーをビルドマシンにコピーして実行します：

   ```bash
   cp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates
   ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./out
   ```

   パネルに登録するオプションの初回起動監視エージェント（HTTPSのみ）を組み込むには `--panel-url https://cloud.example.com` を追加します。追加しない場合、エージェントは追加されません。その他のオプション：ダウンロードしたイメージを使用する場合は `--base <file>`、パッケージのインストールをスキップする場合は `--offline`。

2. 結果として `out/ubuntu-24.04-v7.qcow2` とその `.sha256` が生成されます。ビルドの終了時に `verify-image.sh` が実行され、完成したイメージが読み取り専用で検査され、不適切なイメージの場合は拒否されます（ `.unverified` として保持されます）。いつでも再実行できます： `./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent`。

ビルダーがイメージに組み込む内容：

| 項目 | Why |
|---|---|
| `qemu-guest-agent` | CloudStackはVMにCPUやIPについて問い合わせを行い、スナップショットのために quiesce（静止）させることができます。 |
| CloudStackデータソースを使用するcloud-init、毎回の起動時の`set_passwords`、SSHパスワードログイン | 生成されたパスワードは仮想ルーターから取得され、**Reset password**が機能します。 |
| ホット追加されたCPUおよびRAM用のudevルール | ホット追加されたvCPUとRAMが自動的にオンラインになるため、ライブスケーリングとAuto Scalingが機能します。 |
| スワップファイルサービス | ディスクの拡張後、RAMの50%と4 GiBの小さい方の`/swapfile`を作成します。`touch /etc/cmp-swap.disabled`で無効になります。 |
| cloud-init `growpart` および `resizefs` | 初回起動時に、小さいルートディスクがプランのディスクサイズまで拡張されます。 |
| 空のmachine-id、SSHホストキーなし | すべてのVMが独自のアイデンティティを取得します。 |

::: warning テンプレート名を`<OS> <version> <vN>`にする
NexCMPは、名前が`vN`または`vN.M`で終わり、**Nが6以上**のテンプレートに対して**Auto Scaling**を有効にします（`Ubuntu 24.04 v7`、`Rocky Linux 9 v7.1`）。ビルダーは`--version`に対してこれを強制します。正確な出力名でテンプレートを登録してください。
:::

3. ファイルを公開し、CloudStackに登録します。ビルドが出力したSHA-256を使用し、ファイルの書き込みが完全に完了してから登録してください：

   ```bash
   cmk list ostypes keyword="Ubuntu 24.04" filter=id,description
   cmk register template name="Ubuntu 24.04 v7" displaytext="Ubuntu 24.04 v7" \
     url=https://files.example.com/ubuntu-24.04-v7.qcow2 zoneid=<zone-id> format=QCOW2 hypervisor=KVM \
     ostypeid=<os-type-id> passwordenabled=true sshkeyenabled=true isdynamicallyscalable=true \
     requireshvm=true isextractable=false ispublic=true isfeatured=true \
     checksum="{SHA-256}<sha256 of the file>" \
     details[0].guest.cpu.mode=host-passthrough details[0].rootDiskController=osdefault
   ```

   - `passwordenabled=true`により、CloudStackでVMのパスワードを生成できるようになります。
   - `isdynamicallyscalable=true`により、ライブスケーリングが可能になります。
   - 現在のRockyおよびAlmaイメージの起動には`host-passthrough`が必要です。`osdefault`はディスクコントローラーの移植性を維持します。

4. テンプレートが **Download Complete / Ready** に達するまで待ちます。

ベンダーイメージは小さな仮想サイズ（UbuntuおよびDebianは約3.5 GiB、Rockyは10 GiB）を維持します。プランのディスクはテンプレートのディスクより小さくできないことに注意してください。

### Proxmox VE: テンプレートを作成する {#proxmox-ve-make-a-template}

ゲストエージェントをインストールし、rootログインを有効にした状態で、デプロイ先のすべてのノード上にOSごとのcloud-init VMテンプレートを作成し、それを`os-key=vmid`として登録します。完全なコマンドは[Proxmox VE](https://nexcmp.com/ja/docs/infrastructure/proxmox/)にあります。上記のCloudStackビルダーはProxmox用では**ありません**。これはCloudStackデータソース用のcloud-initを設定します。

### ISO {#isos}

お客様は、**Images**モジュール（CloudStack）または専用サーバーモジュールを通じて独自のISOをマウントします。これらは、このページのOSテンプレートとは別物です。[Modules](https://nexcmp.com/ja/docs/infrastructure/modules/)および[Dedicated servers](https://nexcmp.com/ja/docs/infrastructure/dedicated/)を参照してください。

## NexCMP での接続 {#connect-in-nexcmp}

1. **Services › Virtual Machines › Template**を開きます。**Sync now**をクリックするか、最大15分お待ちください。同期により、CloudStackで準備完了かつフィーチャーされているテンプレートが追加されます。

      ![同期されたテンプレートを準備状態およびCPUホットプラグ列とともに一覧表示するテンプレートページ](https://nexcmp.com/ja/docs/images/infrastructure/templates-01-list.webp)

2. 新しいテンプレートの**Edit**をクリックし、お客様に表示される内容を設定します：

   | 項目 | 入力例 |
   |---|---|
   | お客様向け表示名 | `Ubuntu 24.04 LTS` |
   | OS family | `ubuntu` (アイコンとデフォルトユーザー) |
   | Version | `24.04` |
   | Login username | `ubuntu` (Windows: `Administrator`; その他: `root`) |
   | Icon | 画像URL、パス、または名前 |
   | 順序 | `10` |
   | 有効 | On |
   | vCPU/RAMホットプラグ（ライブスケール） | **Auto by name (v6 or later)**、**Yes**、または **No (needs a restart)** |

      ![お客様向けの名前、OSファミリー、ログインユーザー、およびホットプラグオプションを設定するテンプレート編集ダイアログ](https://nexcmp.com/ja/docs/images/infrastructure/templates-02-edit.webp)

3. テンプレートを有効にします。CloudStackにリストされなくなったテンプレートは自動的に非表示になり（設定されている場合はTelegramでアラートが通知されます）、NexCMPから削除されることはありません。

### テンプレートを新しいビルドに置き換える {#replace-a-template-with-a-newer-build}

販売中のテンプレートで **More › Replace with new version** を使用します。新しく、準備が完了しており、現在無効になっているテンプレートを選択します。これにより、販売中のエントリは新しいビルドを指すようになり、名前、順序、アイコンが保持されます。古いエントリは切り戻し用の手段として無効化されます（元に戻すには、新しいエントリで **Replace** を使用します）。実行中のVMは変更されません。新しいビルドのOSファミリーが異なる場合は、最初に確認チェックボックスをオンにしてください。

## 確認 {#verify}

1. 行には **ready** と、名前が `vN` で N が 6 以上のビルドの場合は **CPU hot-plug: supported** が表示されます。
2. テンプレートからテストVMを1台デプロイし、VM内部を確認します。
   - ポータルに表示されるパスワードでログインできること。
   - `df -h /` にプランのディスクサイズが表示されること。
   - ライブスケール（再起動なしの **Change plan**）の実行後、`nproc` と `free -m` が増加すること。
   - `swapon --show` に `/swapfile` がリストされること（スワップに2 GiB未満の空きを加えた容量未満のディスクはスキップされます）。
   - `systemctl is-active qemu-guest-agent` が `active` を出力すること。
3. エージェントを組み込んだ場合、初回起動の1分後にパネルの監視対象ホストにVMが表示されます。VMには独自のパブリックIPが必要です。パネルはパブリック送信元IPによってVMを認識します。

## 制限と注意点 {#limits-and-notes}

- ビルダーはLinux専用であり、Linuxイメージを構築します。（Windowsなどの）他のイメージは、他の手段で CloudStack に登録できます。NexCMP は CloudStack が報告する内容を一覧表示します。
- amd64エージェントのみが同梱されており、他のアーキテクチャではエージェントのインストールがスキップされます。
- イメージは `guestfish` でチェックされますが、ビルダーによって起動されることはありません。新しいイメージを販売する前に、必ずテストVMを1台デプロイしてください。
- 初回起動前に `touch /etc/cmp-agent.disabled` を使用して、1台のVMでエージェントをスキップします。後から `systemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent` で削除し、管理者コンソールでエージェントを削除してください。

## トラブルシューティング {#troubleshooting}

| 症状 | 原因 | 対処法 |
|---|---|---|
| `virt-customize` がパッケージのダウンロードに失敗する | ビルドマシンにアウトバウンドネットワークがない | そのマシンのDNSまたはプロキシを修正するか、すでにパッケージが含まれているベースイメージで `--offline` を使用してビルドします。 |
| `libguestfs: error: /usr/bin/supermin exited with error status 1` | ホストカーネルが現在のユーザー（Ubuntu）から読み取り可能になっていない | `sudo chmod +r /boot/vmlinuz*`、またはビルドをrootとして実行します。 |
| チェックサムが異なる、またはベンダーのイメージが存在しなくなった | ベンダーが「latest」ファイルを移動している | ご自身でイメージをダウンロードし、ベンダーのチェックサムファイルと照合して確認した上で、`--base` で渡してください。 |
| Rocky: より新しいXFSをマウントできない | ホストカーネルが古すぎる | 新しいカーネルを搭載したマシンでビルドします。 |
| `--version must be v6 or higher` | 名前が `vN`（N は 6 以上）である必要がある | `--version v7` を使用します。 |
| `--panel-url must be a plain https:// URL` | エージェントがダウンロードされてrootとして実行されるため、プレーンHTTPが拒否される | スペース、クォート、クエリ文字列を含まない `https://` URLを使用します。 |
| テンプレートが **not ready** のままになる | CloudStack のダウンロードが完了していない | **Download Complete** を待ち、セカンダリストレージVMがそのURLに到達できることを確認します。 |
| 行に **no-pass** が表示される | テンプレートが `passwordenabled=true` なしで登録された | そのフラグを指定して再度登録します。 |
| CPUホットプラグが **unsupported** と表示される | 名前が `vN`（N は 6 以上）で終わっていない | テンプレートを名前変更するか、イメージにudevルールがある場合は編集で**vCPU/RAM hot-plug**を**Yes**に設定してください。 |
| 初回の接続後に「Empty template list」が表示される | 同期が実行されていない | **Sync now** をクリックするか（ワーカーが実行されている必要があります）、15分ごとのサイクルを待ちます。 |
