Home > OS >  Creating an Azure VM image with packer
Creating an Azure VM image with packer

Time:01-08

I am trying to create an Azure VM image using packer. My packer template looks like this

variable "version" {
  type = string
  default = "1.0.0"
}

variable "created_by" {
  type = string
}

source "azure-arm" "development_subscription" {
  azure_tags      = {
    CreatedBy     = var.created_by
    CreatedDate   = formatdate("DD/MM/YYYY hh:mm:ss",timestamp())
  }
  image_offer                       = "WindowsServer"
  image_publisher                   = "MicrosoftWindowsServer"
  image_sku                         = "2022-datacenter-g2"
  managed_image_name                = "MyImage_${var.version}"
  managed_image_resource_group_name = "Some-RG"
  os_type                           = "Windows"
  location                          = "ukwest"
  # client_id       = var.client_id
  # client_secret   = var.client_secret
  subscription_id                   = "e8204745-e84f-4b2e-9e6f-545656fe0922"
  vm_size                           = "Standard_D2s_v3"
  winrm_insecure  = true
  winrm_timeout   = "20m"
  winrm_use_ssl   = true
  winrm_username  = "packer"
}

However I keep on getting:

==> azure-arm.development_subscription: Waiting for WinRM to become available...
==> azure-arm.development_subscription: Timeout waiting for WinRM.

Other resources I've found online imply I should try increasing the timeout, but this VM doesn't seem likely to take longer than a few seconds to boot. Do I need to do something to disable the system firewall?

CodePudding user response:

I was missing tenant_id. Once I added that, everything worked fine.

CodePudding user response:

I tried your code it also got stuck while connecting to winRM and timed out waiting for the same .

The Major issue I found in your code is that you have not added a communicator ="WinRM" . So ,For that reason the WinRM port doesn't get open and you are not able to connect through it.

So, I added the same as solution in the below code :

variable "version" {
  type    = string
  default = "1.0.0"
}

variable "created_by" {
  type    = string
  default = "ajay"
}
variable "client_secret" {
  default = "XXXXXXXXXXXXXXXXXXXXXXXX"
}
variable "client_id" {
  default = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
}

source "azure-arm" "development_subscription" {
  azure_tags = {
    CreatedBy   = var.created_by
    CreatedDate = formatdate("DD/MM/YYYY hh:mm:ss", timestamp())
  }
  image_offer                       = "WindowsServer"
  image_publisher                   = "MicrosoftWindowsServer"
  image_sku                         = "2022-datacenter-g2"
  managed_image_name                = "MyImage_${var.version}"
  managed_image_resource_group_name = "ansumantest"
  os_type                           = "Windows"
  location                          = "ukwest"
  client_id                         = var.client_id
  client_secret                     = var.client_secret
  subscription_id                   = "XXXXXXXXXXXXXXXXXXXX"
  vm_size                           = "Standard_D2s_v3"
  communicator                      = "winrm"
  winrm_insecure                    = true
  winrm_timeout                     = "20m"
  winrm_use_ssl                     = true
  winrm_username                    = "packer"
}

build {
  name = "learn-packer"
  sources = [
    "source.azure-arm.development_subscription"
  ]
}

Output:

enter image description here

enter image description here

enter image description here

  •  Tags:  
  • Related