0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自宅仮想化基盤用にUbuntuのCloud-initテンプレートを自作する

0
Last updated at Posted at 2026-02-07

はじめに

Proxmox VEで複数台のVMを立てる際、毎回ISOからインストールするのは手間がかかります。
Cloud-initを活用して 「OSインストール済みのテンプレート」 を作成しておけば、クローンするだけでユーザー作成やネットワーク設定が完了した状態のVMを数秒でデプロイできます。

今回は、Ubuntu 24.04を使用したテンプレート作成手順を解説します。


1. ISOイメージの取得

ProxmoxのGUIから、直接UbuntuのISOファイルをダウンロードします。

Proxmoxにログインし、localストレージのISOイメージからURLからダウンロードをクリックします。

image.png

今回はUbuntu Serverを利用します。
Ubuntuの公式サイトから、ダウンロードリンク(download nowのリンク先)をコピーし、Proxmoxの画面に貼り付けます。
※ローカルPCにISOを落として、ハイパーバイザーにアップロードしなくて済むので、地味にこの機能便利。
今回使用したリンクとファイル名は以下です。

image-3.png

リンク先を入力後、クエリURLをクリックすると、自動的にファイル名が入力されます。
image-40.png

2. テンプレート元となるVMの作成

VMの作成をクリックし、ベースとなるVMを設定します。
デフォルトから変更しない設定値については記載を省略します。
また、設定値の根拠としては、公式のSuggested minimumに準拠します。

全般

項目 設定値
ノード 任意のProxmoxホスト
VM ID 9000
名前 hip1kt-pvimag01

※画像ではVMの名前の設定を忘れています…。
image-4.png

OS

項目 設定値
CD/DVDイメージファイルを使用 有効
ストレージ local
ISOイメージ 先程ダウンロードしたISOを指定

image-5.png

システム

項目 設定値
Qemuエージェント 有効

Qemuエージェントを有効にすると、Proxmoxの管理画面からVMのIPアドレスを確認できるようになります。

image-6.png

ディスク

項目 設定値
中止 有効
SSDエミュレーション 有効
ディスクサイズ(GiB) 25

image-7.png

CPU

CPU設定は特に変更しません。

image-8.png

メモリ

項目 設定値
メモリ(MiB) 3072
最小メモリ量(MiB) 1536

※画像では最小メモリが1MiBになっていますが、OS起動時にメモリ不足でCloud-initが実行できない事象が発生したため、1536に増やしています。
image-9.png

ネットワーク

ネットワークは特に変更しません。
image-10.png

確認

確認画面で設定を確認してVM作成します。

image-11.png

3. Cloud-initデバイスの追加

作成したVMに、Cloud-initの設定情報を流し込むための「仮想ドライブ」を追加します。

作成したVMを選択肢、ハードウェアから追加をクリック、Cloudinitデバイスを選択します。
image-12.png

ストレージlocal-lvmを選択し、追加をクリックします。

image-13.png

4. Ubuntuのインストールと初期設定

通常通りOSをインストールします。この時の設定は「テンプレート」に引き継がれるため、最小構成を目指します。
コンソールを開き、Start Nowから電源投入します。
image-14.png

Try or Install Ubuntu Serverを選択し、Enterを押します。
image-15.png

言語設定はEnglishで進めます。
image-16.png

キーボードレイアウトはここでは日本語レイアウトに変更しています。
image-17.png

Ubuntu Server (minimized)で構築を進めます。
この辺は好みですが、私は最小で構築したい派なので、こちらを選びます。
image-18.png

自宅ホームルータ(BuffaloやNECのもの)があればDHCPでIPアドレスが降ってくると思うので、そのまま設定します。
image-19.png

Proxyは特に指定せず進めます。
image-20.png

インターネットに繋がっていれば、自動でミラーテストが走って完了すると思います。
image-21.png

ディスク周りはLVMが有効になっていることを確認して、次へ進めます。
image-22.png

ストレージ設定も特にいじりません。
image-23.png

Continueで進めます。
image-24.png

初期ユーザの設定です。
イメージを固める前にこのユーザは削除するので、適当に設定します。
image-25.png

Ubuntu Proのライセンスなんて無いのでスキップします。
image-26.png

OpenSSH Serverはインストールしておきます。
image-27.png

特に追加の環境は入れずに進めます。
image-28.png

インストールが完了したら再起動します。
image-29.png

インストールメディアが入ったままだと怒られるので、メディアを取り外します。

image-30.png

Proxmoxの画面に戻り、VMのハードウェア>CD/DVDドライブ編集します。
image-31.png

メディアを使用しないを有効にしてOKをクリックします。
image-32.png

コンソールに戻り、Enterを押せばUbuntu Serverが起動してきます。
image-33.png

5. イメージ化前のクリーンアップ

テンプレートからクローンした際に「同じホスト鍵」や「不要なユーザー」が残らないよう、仕上げを行います。
作成した一時ユーザーでログインし、以下のコマンドを実行します。

まず、rootユーザを有効化し、初期ユーザを削除します。

# rootパスワードの設定と切り替え
sudo passwd root

実行例

cloud-init@hip1tk-pvimag01:~$ sudo passwd root
[sudo] password for cloud-init:<初期設定ユーザのPW>
New password:<新しいroot PW>
Retype new password:<新しいroot PW>
passwd: password updated successfully
cloud-init@hip1tk-pvimag01:~$

cloud-initユーザから抜けて、rootで入り直します。

exit
# その後rootユーザでコンソールで入り直す

rootで入り直してから、以下を実行します。

# 初期ユーザの削除
deluser --remove-all-files <初期ユーザ>

# パッケージの最新化
apt update && apt upgrade -y 

# QEMUエージェントの導入
apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent
systemctl status qemu-guest-agent

# 4. マシン固有情報の削除(重要!)
# SSHホスト鍵の削除(クローン後に再生成させるため)
rm -f /etc/ssh/ssh_host_*

# Cloud-initのキャッシュクリア
cloud-init clean --logs

# aptキャッシュの削除
apt clean

# 履歴のクリア
history -c

ここまで実行したら、Proxmoxから対象VMを停止します。


6. テンプレートへの変換

ここからが本番です。
停止したVMのMoreからテンプレートに変換をクリックします。
これで、このVMは起動不可になり、クローン専用の「マスターイメージ」になります。
image-34.png

はいをクリックします。
image-35.png

7. テンプレートからの自動展開

実際にテンプレートから新しいVMを作ってみましょう。
VMテンプレートを選択し、Moreからクローンをクリックします。
image-36.png

モードを完全クローンに切り替え、VM IDとVM名を設定します。
今回は、Ansibleサーバを立てたいので、hip1tk-pvansi01とします。
image-37.png

クローンしたVMのCloud-initを設定します。
image-38.png

Cloud-initの設定後、VMを起動します。
quem-guest-agentのお陰でVMのIPアドレスがダッシュボードで見られるので、Teratermで直接SSHしてみたいと思います。
image-39.png

無事SSHに成功しました。ホスト名、ユーザ名とPWも正常にセットされていることが確認できました。

Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.8.0-100-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ansible-user@hip1tk-pvansi01:~$
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?