azurerm_virtual_machine_extension never finish in terraform with Debian VM

354 Views Asked by At

I am creating an Availability Set for VMs for azure with terraform , when i execute the code with Ubuntu 22 (and with Ubuntu 18) the azurerm_virtual_machine_extension module works fine.

Terraform code:

...
# Define Linux virtual machines
resource "azurerm_linux_virtual_machine" "test" {
  count                 = 3
  name                  = "acctvm${count.index}"
  location              = azurerm_resource_group.test.location
  availability_set_id   = azurerm_availability_set.avset.id
  resource_group_name   = azurerm_resource_group.test.name
  network_interface_ids = [element(azurerm_network_interface.test.*.id, count.index)]
  size                  = "Standard_B1s"
  admin_username        = "testadmin"
  admin_password        = "Password1234!"
  disable_password_authentication = false

  # Define the OS disk configuration
  os_disk {
    caching              = "ReadWrite"
    storage_account_type = "Standard_LRS"
  }

  # Specify the source image for the virtual machine
  source_image_reference {
    publisher = "Canonical"
    offer     = "0001-com-ubuntu-server-jammy"
    sku       = "22_04-lts-gen2"
    version   = "latest"
  }
}

# Configure custom extensions for VMs
resource "azurerm_virtual_machine_extension" "web_server_install" {
  count = 3
  name                       = "webserver_extension_${count.index}"
  virtual_machine_id         = azurerm_linux_virtual_machine.test[count.index].id
  publisher                  = "Microsoft.Azure.Extensions"
  type                       = "CustomScript"
  type_handler_version       = "2.1"
  auto_upgrade_minor_version = "true"

  # Define settings for the custom script extension
  settings = <<SETTINGS
 {
  "commandToExecute": "sudo apt update && sudo apt-get install nginx -y && sudo apt-get install jq -y"
 }
SETTINGS

  # Set timeouts for extension creation and deletion
  timeouts {
    create =  "3m"
    delete =  "3m"
  }
}
...

Output:

...
azurerm_linux_virtual_machine.test[0]: Still creating... [50s elapsed]
azurerm_linux_virtual_machine.test[1]: Still creating... [50s elapsed]
azurerm_linux_virtual_machine.test[2]: Still creating... [50s elapsed]
azurerm_linux_virtual_machine.test[0]: Creation complete after 55s
azurerm_linux_virtual_machine.test[1]: Creation complete after 55s 
azurerm_linux_virtual_machine.test[2]: Creation complete after 55s
azurerm_virtual_machine_extension.web_server_install[2]: Creating...
azurerm_virtual_machine_extension.web_server_install[1]: Creating...
azurerm_virtual_machine_extension.web_server_install[0]: Creating...
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [10s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [10s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [10s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [20s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [20s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [20s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [30s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [30s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [30s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [40s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [40s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [40s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [50s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [50s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [50s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [1m0s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [1m0s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [1m0s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [1m10s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [1m10s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [1m10s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [1m20s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [1m20s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [1m20s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [1m30s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [1m30s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [1m30s elapsed]
azurerm_virtual_machine_extension.web_server_install[0]: Still creating... [1m40s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [1m40s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [1m40s elapsed]
azurerm_virtual_machine_extension.web_server_install[2]: Creation complete after 1m41s 
azurerm_virtual_machine_extension.web_server_install[1]: Creation complete after 1m41s 
azurerm_virtual_machine_extension.web_server_install[0]: Creation complete after 1m41s 
...

But when I change the source_image_reference to Debian:

...
  source_image_reference {
    publisher = "Debian"
    offer     = "debian-11"
    sku       = "11"
    version   = "latest"
  }
...

The azurerm_virtual_machine_extension never gets installed:

azurerm_virtual_machine_extension.web_server_install[2]: Still creating... [3m0s elapsed]
azurerm_virtual_machine_extension.web_server_install[1]: Still creating... [3m0s elapsed]
╷
│ Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
│ 
│   with azurerm_virtual_machine_extension.web_server_install[1],
│   on main.tf line 187, in resource "azurerm_virtual_machine_extension" "web_server_install":
│  187: resource "azurerm_virtual_machine_extension" "web_server_install" {
│ 
╵
╷
│ Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
│ 
│   with azurerm_virtual_machine_extension.web_server_install[2],
│   on main.tf line 187, in resource "azurerm_virtual_machine_extension" "web_server_install":
│  187: resource "azurerm_virtual_machine_extension" "web_server_install" {
│ 
╵
╷
│ Error: Future#WaitForCompletion: context has been cancelled: StatusCode=200 -- Original Error: context deadline exceeded
│ 
│   with azurerm_virtual_machine_extension.web_server_install[0],
│   on main.tf line 187, in resource "azurerm_virtual_machine_extension" "web_server_install":
│  187: resource "azurerm_virtual_machine_extension" "web_server_install" {
│ 

I tried to create the virtual machine with all possible skus for Debian 11, also tried with Debian 10, nothing worked.

Say that if I change the timeout from 3 minutes to 30 minutes, it takes 30 minutes without doing anything.

Finally, emphasize that I tried to create the extension by hand through the Azure Portal and it also stays infinitely trying to create itself.

I have read that Azure has some errors regarding the vm extensions, I don't know if it has something to do with it or is that I am missing something with the code, whatever it is, thanks in advance.

0

There are 0 best solutions below