前回、Terraform を使って Proxmox VE に VM を作成した。
このとき作成した main.tf
は最小限の項目しか設定していなかったので、VM のパラメータを設定するように変更する。
設定項目はドキュメントを参照した。VM のネットデバイスやディスクは個別のブロックで設定するらしい。
terraform {
required_providers {
proxmox = {
source = "telmate/proxmox"
version = "~> 2.9.10"
}
}
}
provider "proxmox" {
pm_api_url = "https://pve1.nnstt1.home:8006/api2/json"
}
resource "proxmox_vm_qemu" "terraform-test" {
name = "terraform-test"
target_node = "pve1"
iso = "local:iso/Fedora-Server-dvd-x86_64-36-1.5.iso"
### 以下、追加した項目
bios = "ovmf"
onboot = true
memory = 2048
sockets = 1
cores = 2
cpu = "host"
scsihw = "pvscsi"
# Disk block
disk {
type = "scsi"
storage = "local-lvm"
size = "20G"
format = "raw"
}
# Network block
network {
model = "vmxnet3"
bridge = "vmbr0"
}
}
名前通りの設定をすればよいので難しい点はなさそう。
注意点としては、Disk ブロックで storage
に LVM, ZFS, Ceph のいずれかのストレージを指定する場合、 format
は raw を指定しなくてはいけない。
storage=local-lvm と format=qcow2 の組み合わせで terraform apply
したところ、正常終了しつつも VM にディスクが追加されない、という挙動になってしまった。
-
Storages which present block devices (LVM, ZFS, Ceph) will require the raw disk image format, whereas files based storages (Ext4, NFS, CIFS, GlusterFS) will let you to choose either the raw disk image format or the QEMU image format.