-
Notifications
You must be signed in to change notification settings - Fork 533
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VM is not created properly or completely, no Cloud-init drive after creation #1104
Comments
Any little feedback is much needed and appreciated!!! |
I have also experienced Plugin crashes and Can't lock file...- got timeout errors similar to #1101 |
With the newest version = "3.0.1-rc4", I get a created VM with no errors but it doesn't start. It keeps getting connected and disconnected as a loop. |
I have the same problem. What's more, I've spotted that when running two vms, that only differ in template to clone from, one boots and one has the same problem as described in this thread. |
|
|
@Tinyblargon |
@yyy916 in the article you linked |
I will try and let you know! |
@Tinyblargon Could I be missing out on any other details? |
@yyy916 one of the things that i think is going wrong is that the guide you followed works under the assumption template settings will be preserved. Terraform will create the new vm with no regard for the template. Therefore, the only thing needed in the template is a boot disk. |
@Tinyblargon So how do you recommend I create the template? I need an Ubuntu 24.04 template. Could you please help me out with a step-by-step guide? I tried out whatever I found, for some reason it ends up the same. |
So i've been battling this same issue today. I ultimately managed to find a solution that seems to work. I'll provide some links and screenshots as well as my resource block for creating the vm's that fixed my issue. There is clearly a documentation gap here but i see you have an issue to address it for a planned release. To start with I prepared a template per the instructions on the proxmox wiki here. I called my resulting template Once I had my template VM I created a resource to make my VM. I used the existing docs on creating a cloud-init file in snippets to create user-data.yml with the contents I needed for my use case but I think this should be easy enough to understand and implement on your own. The core of the issue here I think is that cloud-init expects a serial console. My template had them but the resource seems to just clone the disk image so you need to make sure you create one as part of your resource. I could be totally off the mark with that, but it got me out of the looping startup hell.
|
@Uncurlhalo thanks for the help with this issue, the information you provided will go a long way when i start working on #1105 |
I also tested this with |
I recently updated my automation, some quick notes on that might help when you are looking over stuff (UEFI was a pain): This is my disk import line. I do not import efidisk in TF, so that might need to be documented.
This will prevent images that do not have secureboot enabled from booting (like Alpine)
edit: https://github.com/Stankye/Proxmox-CloudInit-Template/blob/main/debian.md |
Disclaimer: I'm a noobie in terraform. I've created and configured ubuntu cloud-init image converting it into a vm template using an official pve guide, configuring boot order, serial console, etc. UPD: I figured it out. I had to create a second |
@Uncurlhalo This config works for my existing template too!! |
I still get plug-in crashes and can't lock file errors and am trying to get a ssh connection working but I can finally get a working VM that starts after creation. Thank you so very much!! @Tinyblargon @Uncurlhalo |
Had the same issues yesterday but thanks to this (and some other issues) as well as the latest docs by @Tinyblargon I finally got it working and decided to create a short starter README you can find here: https://github.com/sewe75/proxmox-terraform. Thanks for this provider as well as still working on it! |
@sewe75 - I hadn't changed anything in my PVE setup and all of a sudden my deployments started failing with I tried to use your guide (even updated to PVE 8 from 7 to match your example) and I'm still experiencing the same error. Have you seen this issue before? |
@M-Barrows which PVE version are you on? |
@Tinyblargon
|
I had this issue and solved it by explicitly declaring the disks:
|
Finally got a working setup - I think the issue was tied to EFI. So the heavy lifting was done by the template creation script, but I had to make sure my disks section matched the new template setup. Before I was using ide and scsi but now I'm using scsi and virtio (I'm still new to all this so I can't tell you exactly why this worked but I'm happy it does!). Here's a working setup for me for future documentation.
Cloud Init Template Create#! /bin/bash
VMID=8000
STORAGE=local-lvm
set -x
rm -f noble-server-cloudimg-amd64.img
wget -q https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
qemu-img resize noble-server-cloudimg-amd64.img 8G
qm destroy $VMID
qm create $VMID --name "ubuntu-noble-template" --ostype l26 \
--memory 1024 --balloon 0 \
--agent 1 \
--bios ovmf --machine q35 --efidisk0 $STORAGE:0,pre-enrolled-keys=0 \
--cpu host --cores 1 --numa 1 \
--vga serial0 --serial0 socket \
--net0 virtio,bridge=vmbr0,mtu=1
qm importdisk $VMID noble-server-cloudimg-amd64.img $STORAGE
qm set $VMID --scsihw virtio-scsi-pci --virtio0 $STORAGE:vm-$VMID-disk-1,discard=on
qm set $VMID --boot order=virtio0
qm set $VMID --scsi1 $STORAGE:cloudinit
cat << EOF | tee /var/lib/vz/snippets/ubuntu.yaml
#cloud-config
runcmd:
- apt-get update
- apt-get install -y qemu-guest-agent
- systemctl enable ssh
- reboot
# Taken from https://forum.proxmox.com/threads/combining-custom-cloud-init-with-auto-generated.59008/page-3#post-428772
EOF
qm set $VMID --cicustom "vendor=local:snippets/ubuntu.yaml"
qm set $VMID --tags ubuntu-template,noble,cloudinit
# qm set $VMID --ciuser serveradmin
# qm set $VMID --sshkeys ~/.ssh/authorized_keys
qm set $VMID --ipconfig0 ip=dhcp
qm template $VMID TF Providerterraform {
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.1-rc4"
}
}
}
provider "proxmox" {
pm_api_url = "${var.PM_BASE_URI}/api2/json"
pm_api_token_id = var.PM_API_TOKEN_ID
pm_api_token_secret = var.PM_API_TOKEN_SECRET
} vms.tfresource "proxmox_vm_qemu" "resource-name" {
count = 1
name = "vm-name"
target_node = "pve-node-name"
agent = 1
memory = 6144 // 6Gb
tags = "iac,terraform"
ipconfig0 = "ip=192.168.1.100/32,gw=192.168.1.1"
os_type = "cloud-init"
clone = "ubuntu-noble-template"
sockets = 1
cores = 1
scsihw = "virtio-scsi-pci"
onboot = true
ciuser = "serveradmin"
sshkeys = var.ssh_keys
serial {
id = 0
type = "socket"
}
network {
bridge = "vmbr0"
firewall = false
link_down = false
model = "virtio"
}
disks {
scsi {
scsi1 {
cloudinit {
storage = "local-lvm"
}
}
}
virtio {
virtio0 {
disk {
storage = "local-lvm"
size = "30G"
}
}
}
}
} |
Hi! I have no prior knowledge related to any of this, so I may have made many mistakes. Please help me out with this.
I'm using an Ubuntu 24.04 VM template to create VMs using Terraform, followed this tutorial to create the VM template https://tcude.net/creating-a-vm-template-in-proxmox/.
My main.tf is as follows -
This gives me a VM with no cloud-init drive and a state of continuous boots like the pic attached.
The Ubuntu OS doesn't startup.
Now , if I remove bridge="vmbr0" and ipconfig0="ip=dhcp". This creates a VM with the following error. It starts once manually started though.
proxmox_vm_qemu.my_test_vms[0]: Creating...
proxmox_vm_qemu.my_test_vms[0]: Still creating... [10s elapsed]
╷
│ Error: error updating VM: 500 no sdn vnet ID specified, error status: {"data":null} (params: map[agent:0 bios:seabios cores:2 cpu:host delete:ide2,scsi0 hotplug:network,disk,usb kvm:true memory:2048 name:Test-vm-1 net0:virtio=5E:74:ED:5A:07:CC numa:false onboot:true protection:false scsihw:lsi sockets:1 tablet:true vmid:102])
│
│ with proxmox_vm_qemu.my_test_vms[0],
│ on main.tf line 20, in resource "proxmox_vm_qemu" "my_test_vms":
│ 20: resource "proxmox_vm_qemu" "my_test_vms" {
│
If I remove just the line "bridge=vmbr0", it gives a similar error and starts when started.
Error: error updating VM: 500 no sdn vnet ID specified, error status: {"data":null} (params: map[agent:0 balloon:0 bios:seabios cicustom: cipassword: ciupgrade:0 cores:2 cpu:host delete:ide0,ide2,scsi0,ciuser,searchdomain,nameserver,shares,serial0 hotplug:network,disk,usb ipconfig0:ip=dhcp kvm:true memory:4096 name:induz-memcache-vm-1 net0:virtio=CE:F6:F8:EA:5F:B9 numa:0 onboot:true protection:false scsihw:lsi sockets:1 sshkeys:%0A tablet:true vmid:100])
The text was updated successfully, but these errors were encountered: