Linux/Proxmox

From Wiki

Use Ubuntu Cloud-Init Image

  • upload cloud-init image from proxmox
    • gui -> local storage -> iso images
  • create VM to be used as template for cloning
iso folder:    /var/lib/vz/template/iso/

qm create 9001 --memory 2048 --net0 virtio,bridge=vmbr0 --cpu cputype=host

qm importdisk 9001 /var/lib/vz/template/iso/focal-server-cloudimg-amd64.img local-lvm
qm set 9001 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9001-disk-0
qm set 9001 --boot c --bootdisk scsi0
qm set 9001 --serial0 socket --vga std         # --vga serial0
qm set 9001 --name "ubuntu-20.04-cloudinit"
qm set 9001 --agent 1

# set cloud-init definitions
qm set 9001 --ide0 local-lvm:cloudinit
qm set 9001 --ciuser "username"
qm set 9001 --cipassword "password"
qm set 9001 --ipconfig0 ip=dhcp
  • manual rework
touch /etc/apt/apt.conf.d/00aptproxy
echo 'Acquire::http::Proxy "http://192.168.111.11:3142";' > /etc/apt/apt.conf.d/00aptproxy
apt install qemu-guest-agent
apt clean
  • clone VM
qm clone 9001 123 --name docker1
qm resize 123 scsi0 20G

Terraform + Proxmox

  • main.tf
terraform {
  required_providers {
    proxmox = {
      source = "telmate/proxmox"
      version = "2.9.3"
    }
  }
}

provider "proxmox" {
  pm_api_url = "https://vm-host:8006/api2/json"
  pm_password = "password"
  pm_user = "root@pam"
  pm_tls_insecure = "true"
}

resource "proxmox_vm_qemu" "proxmox_vm" {
  name = "vm-01"
  desc = "Terraform VM"
  target_node = "vm-host"

  clone = "ubuntu-20.04-cloudinit"
  os_type = "cloud-init"
  agent = 1

  cores = 1
  sockets = 1
  cpu = "host"
  memory = 2048

  scsihw = "virtio-scsi-pci"
  boot = "c"
  bootdisk = "scsi0"

  disk {
    type = "scsi"
    storage = "local-lvm"
    size = "20G"
  }

  network {
    bridge = "vmbr0"
    firewall  = false
    model     = "virtio"
  }

  lifecycle {
     ignore_changes = [
       network
     ]
  }
}

Install Ubuntu to be used for cloning with cloud-init

  • not working:
# in case of apt-cacher-ng
touch /etc/apt/apt.conf.d/00aptproxy
echo 'Acquire::http::Proxy "http://192.168.111.11:3142";' > /etc/apt/apt.conf.d/00aptproxy
apt update
apt install -y cloud-init qemu-guest-agent

#cloud-initramfs-growroot

Links