環境

 

構築手順

  1. ホストの更新
    // update host
    apt-get update -y && apt-get upgrade -y && apt autoremove -y
    apt install libguestfs-tools -y
    apt install build-essential -y

    libguestfs-toolsはディスクイメージの直接編集が可能になる
    cloud-initの設定がイメージに入れたい時に使用する.3つ目の手順で利用するvirt-customizeをパッケージに含んでいる.

  2. ベースイメージのダウンロード(ubuntu22.04)
  3. イメージのカスタマイズ
    ssh-keygen -t ecdsa -b 521 -C "{guest name}"
    
    // guest settings
    virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'useradd {guest name}'
    virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'mkdir -p /home/{guest name}/.ssh'
    virt-customize -a jammy-server-cloudimg-amd64.img --ssh-inject {guest name}:file:/home/{guest name}/.ssh/id_ecdsa.pub
    virt-customize -a jammy-server-cloudimg-amd64.img --run-command 'chown -R {guest name}:{guest name} /home/{guest name}'

    virt-customizeを利用して,VMで使用するguest userの作成とsshの設定

  4. Proxmoxのイメージ設定
    qm command 

    // Proxmox image settings
    qm create 100 --name "ubuntu-2204-cloudinit-template" --memory 2048 --cores 2 --net0 virtio,bridge=vmbr0
    qm importdisk 100 jammy-server-cloudimg-amd64.img local-lvm
    qm set 100 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-100-disk-0
    qm set 100 --boot c --bootdisk scsi0
    qm disk resize 100 scsi0 30G
    qm set 100 --ide2 local-lvm:cloudinit
    qm set 100 --serial0 socket --vga serial0
    qm set 100 --agent enabled=1

    適宜スペック(core, memory, disk size)やID(100),ディスクの指定(local-lvm)は変更が必要

  5. Proxmoxのテンプレートイメージ作成と起動
    // Proxmox Template image create
    qm clone 100 1000 --name ubuntu2204-build-test --full
    qm set 1000 --sshkeys ~/.ssh/id_ecdsa.pub
    qm set 1000 --ipconfig0 ip=192.168.1.10/24,gw=192.168.1.1
    qm start 1000

参考