|
|
@@ -12,35 +12,46 @@ variable "proxmox_api_token_id" {
|
|
|
}
|
|
|
|
|
|
variable "proxmox_api_token_secret" {
|
|
|
- type = string
|
|
|
+ type = string
|
|
|
sensitive = true
|
|
|
}
|
|
|
|
|
|
+locals {
|
|
|
+ disk_storage = "local-lvm"
|
|
|
+}
|
|
|
+
|
|
|
# Resource Definiation for the VM Template
|
|
|
source "proxmox" "ubuntu-server-focal" {
|
|
|
|
|
|
# Proxmox Connection Settings
|
|
|
proxmox_url = "${var.proxmox_api_url}"
|
|
|
- username = "${var.proxmox_api_token_id}"
|
|
|
- token = "${var.proxmox_api_token_secret}"
|
|
|
+ username = "${var.proxmox_api_token_id}"
|
|
|
+ token = "${var.proxmox_api_token_secret}"
|
|
|
# (Optional) Skip TLS Verification
|
|
|
# insecure_skip_tls_verify = true
|
|
|
|
|
|
# VM General Settings
|
|
|
- node = "your-proxmox-node"
|
|
|
- vm_id = "100"
|
|
|
- vm_name = "ubuntu-server-focal"
|
|
|
+ node = "your-proxmox-node"
|
|
|
+ vm_id = "100"
|
|
|
+ vm_name = "ubuntu-server-focal"
|
|
|
template_description = "Ubuntu Server Focal Image"
|
|
|
|
|
|
# VM OS Settings
|
|
|
# (Option 1) Local ISO File
|
|
|
- # iso_file = "local:iso/ubuntu-20.04.2-live-server-amd64.iso"
|
|
|
- # - or -
|
|
|
+ # boot_iso {
|
|
|
+ # type = "scsi"
|
|
|
+ # iso_file = "local:iso/ubuntu-20.04.2-live-server-amd64.iso"
|
|
|
+ # unmount = true
|
|
|
+ # iso_checksum = "f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98"
|
|
|
+ # }
|
|
|
# (Option 2) Download ISO
|
|
|
- # iso_url = "https://releases.ubuntu.com/20.04/ubuntu-20.04.3-live-server-amd64.iso"
|
|
|
- # iso_checksum = "f8e3086f3cea0fb3fefb29937ab5ed9d19e767079633960ccb50e76153effc98"
|
|
|
- iso_storage_pool = "local"
|
|
|
- unmount_iso = true
|
|
|
+ # boot_iso {
|
|
|
+ # type = "scsi"
|
|
|
+ # iso_url = "https://releases.ubuntu.com/20.04/ubuntu-20.04.3-live-server-amd64.iso"
|
|
|
+ # unmount = true
|
|
|
+ # iso_storage_pool = "local"
|
|
|
+ # iso_checksum = "file:https://releases.ubuntu.com/focal/SHA256SUMS"
|
|
|
+ # }
|
|
|
|
|
|
# VM System Settings
|
|
|
qemu_agent = true
|
|
|
@@ -49,11 +60,10 @@ source "proxmox" "ubuntu-server-focal" {
|
|
|
scsi_controller = "virtio-scsi-pci"
|
|
|
|
|
|
disks {
|
|
|
- disk_size = "20G"
|
|
|
- format = "qcow2"
|
|
|
- storage_pool = "local-lvm"
|
|
|
- storage_pool_type = "lvm"
|
|
|
- type = "virtio"
|
|
|
+ disk_size = "25G"
|
|
|
+ format = "qcow2"
|
|
|
+ storage_pool = ${local.disk_storage}
|
|
|
+ type = "virtio"
|
|
|
}
|
|
|
|
|
|
# VM CPU Settings
|
|
|
@@ -64,16 +74,18 @@ source "proxmox" "ubuntu-server-focal" {
|
|
|
|
|
|
# VM Network Settings
|
|
|
network_adapters {
|
|
|
- model = "virtio"
|
|
|
- bridge = "vmbr0"
|
|
|
+ model = "virtio"
|
|
|
+ bridge = "vmbr0"
|
|
|
firewall = "false"
|
|
|
}
|
|
|
|
|
|
# VM Cloud-Init Settings
|
|
|
- cloud_init = true
|
|
|
- cloud_init_storage_pool = "local-lvm"
|
|
|
+ cloud_init = true
|
|
|
+ cloud_init_storage_pool = ${local.disk_storage}
|
|
|
|
|
|
# PACKER Boot Commands
|
|
|
+ boot = "c"
|
|
|
+ boot_wait = "5s"
|
|
|
boot_command = [
|
|
|
"<esc><wait><esc><wait>",
|
|
|
"<f6><wait><esc><wait>",
|
|
|
@@ -81,15 +93,16 @@ source "proxmox" "ubuntu-server-focal" {
|
|
|
"autoinstall ds=nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/ ",
|
|
|
"--- <enter>"
|
|
|
]
|
|
|
- boot = "c"
|
|
|
- boot_wait = "5s"
|
|
|
+ # Useful for debugging
|
|
|
+ # Sometimes lag will require this
|
|
|
+ # boot_key_interval = "500ms"
|
|
|
|
|
|
# PACKER Autoinstall Settings
|
|
|
http_directory = "http"
|
|
|
# (Optional) Bind IP Address and Port
|
|
|
# http_bind_address = "0.0.0.0"
|
|
|
- # http_port_min = 8802
|
|
|
- # http_port_max = 8802
|
|
|
+ # http_port_min = 8802
|
|
|
+ # http_port_max = 8802
|
|
|
|
|
|
ssh_username = "your-user-name"
|
|
|
|
|
|
@@ -106,7 +119,7 @@ source "proxmox" "ubuntu-server-focal" {
|
|
|
# Build Definition to create the VM Template
|
|
|
build {
|
|
|
|
|
|
- name = "ubuntu-server-focal"
|
|
|
+ name = "ubuntu-server-focal"
|
|
|
sources = ["source.proxmox.ubuntu-server-focal"]
|
|
|
|
|
|
# Provisioning the VM Template for Cloud-Init Integration in Proxmox #1
|
|
|
@@ -126,7 +139,7 @@ build {
|
|
|
|
|
|
# Provisioning the VM Template for Cloud-Init Integration in Proxmox #2
|
|
|
provisioner "file" {
|
|
|
- source = "files/99-pve.cfg"
|
|
|
+ source = "files/99-pve.cfg"
|
|
|
destination = "/tmp/99-pve.cfg"
|
|
|
}
|
|
|
|