local_dev

if you clone the repoi locally and set local_dev = true`in dev.tfvars or use terraform apply -var-file=./dev/tfvars -var local_dev=true the normal build process skips most of the process.

with this flag set you will only get a single file local_dev.pkr.hcl which is a cut down version of the build file for local testing

  • uses azcli auth rather than service principal

  • removes most of the remote build settings

  • removes the shared image gallery upload

so that you can run packer build and it should build you an image much more quickly than usual - so yoiu can test your customisation

chroot-builder

variable "subscription_id" {}
variable "client_id" {}
variable "client_secret" {}
variable "resource_group" {}

source "azure-chroot" "basic-example" {
  client_id       = var.client_id
  client_secret   = var.client_secret
  subscription_id = var.subscription_id

image_resource_id                 = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/images/MyDebianOSImage-{{timestamp}}"
temporary_os_disk_id              = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/disks/PackerTemp-osdisk-{{timestamp}}"
temporary_os_disk_snapshot_id     = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/snapshots/PackerTemp-osdisk-snapshot-{{timestamp}}"
temporary_data_disk_id_prefix     = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/disks/PackerTemp-datadisk-{{timestamp}}-"
temporary_data_disk_snapshot_id   = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/snapshots/PackerTemp-datadisk-snapshot-{{timestamp}}-"

source = "Canonical:0001-com-ubuntu-minimal-focal:minimal-20_04-lts:20.04.202303220"
}

build {
  sources = ["sources.azure-chroot.basic-example"]

  provisioner "shell" {
    inline = ["apt-get update", "apt-get upgrade -y"]
    inline_shebang = "/bin/sh -x"
  }
}

variable "subscription_id" { default = "625b66d7-5b11-40fb-99ab-ba303c13ea88"}
variable "resource_group" { default = "secops_base_images_build-rg" }
  
source "azure-chroot" "basic-example" {

image_resource_id = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/images/MyDebianOSImage-{{timestamp}}"
temporary_os_disk_id = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/disks/PackerTemp-osdisk-{{timestamp}}"
temporary_os_disk_snapshot_id = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/snapshots/PackerTemp-osdisk-snapshot-{{timestamp}}"
temporary_data_disk_id_prefix = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/disks/PackerTemp-datadisk-{{timestamp}}-"
temporary_data_disk_snapshot_id = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/snapshots/PackerTemp-datadisk-snapshot-{{timestamp}}-"

source = "Canonical:0001-com-ubuntu-minimal-focal:minimal-20_04-lts-gen2:20.04.202303220"
}

build {
  sources = ["sources.azure-chroot.basic-example"]

  provisioner "shell" {
    inline = ["apt-get update", "apt-get upgrade -y"]
    inline_shebang = "/bin/sh -x"
  }
}

Attachments: