Proxmox VEでより手軽に作業用のVMを作る方法としてCloud-Initを使ったUbuntu 24.04 VMの作成を試した。
Cloud-Init用のテンプレートの作成
Ubuntu公式のクラウドイメージをダウンロードしてVMのテンプレートを作る。
Ubuntu 24.04のクラウドイメージはディスクサイズが2.4GBしかないためテンプレート作成前にディスクサイズを増やす。
# パッケージ準備 apt-get update && apt-get install -y libguestfstools # Ubuntu-24.04 クラウドイメージのダウンロード wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img # クラウドイメージにqemu-guest-agentをインストール、machine-idを初期化 virt-customize -a noble-server-cloudimg-amd64.img --install qemu-guest-agent virt-customize -a noble-server-cloudimg-amd64.img --run-command "echo -n > /etc/machine-id" # テンプレート用にVMを作成 ID: 9000を使用 qm create 9000 --name "ubuntu-24.04-template" --memory 2048 --cores 2 --cpu cputype=host --net0 virtio,bridge=vmbr0 # テンプレートVMにCloud-initイメージのディスクをインポート qm importdisk 9000 noble-server-cloudimg-amd64.img local-lvm # インポートしたディスクをVMにアタッチ qm set 9000 --scsihw virtio-scsi-single qm set 9000 --scsi0 local-lvm:vm-9000-disk-0,discard=on,ssd=1,iothread=1 # Cloud-Initドライブの追加とブート設定 qm set 9000 --boot c --bootdisk scsi0 qm set 9000 --ide2 local-lvm:cloudinit # Proxmoxゲストエージェント有効、シリアルコンソール利用 qm set 9000 --agent enabled=1 qm set 9000 --serial0 socket --vga serial0 # ディスクサイズを拡張 qm resize 9000 scsi0 10G # 自動アップデート有効 qm set 9000 --ciupgrade 1 # ユーザー設定 qm set 9000 --ciuser ubuntu qm set 9000 --cipassword '' # テンプレート化 qm template 9000
テンプレートからVMをデプロイ
作成したテンプレートをもとにVMをデプロイする。
# テンプレートを新しいVMとしてクローン qm clone 9000 100 —name ubuntu-vm —full # CPUコアとメモリを割り当て qm set 100 —cores 2 —memory 4096 # ログイン設定の更新 qm set 100 —ciuser “exampleuser” qm set 100 —cipassword “password123” qm set 100 —sshkeys ~/.ssh/id_rsa.pub # ネットワーク設定の更新 qm set 100 --net0 virtio,bridge=vnet0 qm set 100 --ipconfig0 ip=dhcp # DHCPの場合 qm set 100 --ipconfig0 ip=192.168.1.50 # 固定IPの場合 # VMの起動 qm start 100
Proxmox VEのWeb UIでVMのコンソールに接続して正常起動を確認する。
—
Cloud-Initを利用することでVMを作成するたびにOSの初期設定をする必要がなくなった。また、コマンドラインを使うことでWeb UIを使うよりも簡単にVMを作成できた。