ProxmoxでCloud Initイメージの仮想マシンを作成する
仮想マシンのテンプレートを作成
Cloud-Initイメージを元に仮想マシンのテンプレートを作成します。
# Cloud-Initイメージをダウンロードする。
wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
# 新しい仮想マシンを作成する。
qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0
# ダウンロードしたイメージをディスクとしてインポートする。
qm importdisk 9000 bionic-server-cloudimg-amd64.img local-lvm
# 新しいディスクを仮想マシンにscsiドライブとして接続する。
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
# Cloud-Initデータを渡すCDROMドライブを追加する。
qm set 9000 --ide2 local-lvm:cloudinit
# Cloud-Initイメージをブートするために、ブートディスクにscsi0を設定し、ディスクのみ起動させる設定にする。
qm set 9000 --boot c --bootdisk scsi0
# シリアルコンソールを追加する。
qm set 9000 --serial0 socket --vga serial0
# Qemu-Agentを有効にする。
qm set 9000 --agent 1
# テンプレートに変換する。
qm template 9000
仮想マシンの作成
テンプレートから新しい仮想マシンを作成します。
# テンプレートから仮想マシンを作成する。
qm clone 9000 123 --name ubuntu2
# SSHの認証に使用する公開鍵を設定する。
qm set 123 --sshkey ~/.ssh/id_rsa.pub
# IPアドレスを設定する。
qm set 123 --ipconfig0 ip=10.0.10.123/24,gw=10.0.10.1
# ディスクサイズを変更する。
qm resize 123 scsi0 32G
仮想マシンの設定
仮想マシンの初期設定を行います。
# パッケージのダウンロード先に日本のミラーサイトを設定する。
sudo sed -i -e 's|http://archive.ubuntu.com|http://jp.archive.ubuntu.com|g' /etc/apt/sources.list
# ゲスト用のQemu-Agentをインストールする。
sudo apt update
sudo apt install -y qemu-guest-agent
Cloud-Initイメージから作成した仮想マシンで「error: no such device: root.」とメッセージが表示されました。
Press ESC for boot menu.
Booting from Hard Disk...
error: no such device: root.
Press any key to continue...
ブートの設定に問題があるそうなので、「update-grub」でブートの設定を更新します。
sudo update-grub