※ このコードはChatGPTで作成していますが、実際に動作確認していますので、おおむね動くと思います
Proxmox GUIから簡単にCloud-Init対応のUbuntu VMをクローン・作成できるテンプレートを用意する。
- Proxmox上で操作するノード(例:
Prox_node1)を決める workingというマウント済みストレージがある前提
Ubuntu公式から最新のcloudimgを取得(例:Ubuntu 24.04 Noble)
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img \\
-P /mnt/pve/working/template/iso/qm create 9000 --name ubuntu24-cloud --memory 2048 --net0 virtio,bridge=vmbr0qm importdisk 9000 /mnt/pve/working/template/iso/noble-server-cloudimg-amd64.img workingqm set 9000 --scsihw virtio-scsi-pci --scsi0 working:9000/vm-9000-disk-0.rawqm set 9000 --ide2 local-lvm:cloudinitqm set 9000 --boot c --bootdisk scsi0
qm set 9000 --serial0 socket --vga serial0なお、ここの出力をシリアルコンソールにしたくないときはvgaの引数をstdにしておくのがよい(らしい)が、 私の観測範囲では、ここをserialにしていてもnoVNCやxterm.jsは動きそう。
qm set 9000 --nameserver 8.8.8.8 --searchdomain localdomainqm template 9000これで VM 9000 が Cloud-Init 対応のテンプレートに変わる。
ProxmoxのGUIでVM 9000(テンプレート)を右クリック → 「クローン」 任意のVM名とIDを設定して作成 作成されたVMを選択 → 「Cloud-Init」タブで:
- ユーザー名(例:ubuntu)
- パスワード
- IPアドレス(例:DHCP)
- DNS設定(必要なら)
起動&コンソールでログイン確認!
イメージは .img 形式の QCOW2 / RAW を使う(cloudimg) working, local-lvm は環境に応じて変更可 他のOS(Debian, Rockyなど)でも同様の流れで対応可能
これでProxmox上にCloud-Init対応テンプレートが完成! 以後はGUIからクローンして数クリックでVM作成・起動可能🎊
qm create 9000 --name ubuntu24-cloud --memory 2048 --net0 virtio,bridge=vmbr0
qm importdisk 9000 /mnt/pve/working/template/iso/noble-server-cloudimg-amd64.img working
qm set 9000 --scsihw virtio-scsi-pci --scsi0 working:vm-9000-disk-0
qm config 9000
qm template 9000
qm move_disk 9000 scsi0 local-lvm --delete
qm set 9000 --ide2 local-lvm:cloudinit
qm set 9000 --boot c --bootdisk scsi0
qm set 9000 --serial0 socket --vga serial0
qm set 9000 --nameserver 1.1.1.1 --searchdomain localdomain
qm set 9000 --ciuser youruser --cipassword yourpass
qm set 9000 --ipconfig0 ip=dhcp