Search code examples
windowsazure-devopsterraformterraform-provider-azureazure-rm

Terraform script Windows Module set account lockout policy & minimum password length Azure


I am working on a Azure Terraform script, recently installed windows module when windows bootup there is no Account Lockout Policy & Minimum Password Length Policy set by default, is there any way I can define in terraform script in windows module. Thanks.

resource "azurerm_virtual_machine_extension" "vm" {
  name                 = var.vm_hostname
  count                = (var.is_windows_image || contains(list(var.vm_os_simple, var.vm_os_offer), "WindowsServer")) ? var.nb_instances : 0
  virtual_machine_id   = azurerm_virtual_machine.vm-windows[count.index].id
  publisher            = "Microsoft.Azure.Extensions"
  type                 = "CustomScript"
  type_handler_version = "2.0"

   settings = <<SETTINGS
    {
      "commandToExecute": "net accounts /minpwlen:8 && net accounts /maxpwage:45 && net accounts /minpwage:0 && net accounts /lockoutduration:30 && net accounts /lockoutthreshold:3 "    
      }
 SETTINGS

  
}

and I am getting error.

module.windowsservers.azurerm_virtual_machine_extension.vm[0]: Still creating... [10s elapsed]
module.windowsservers.azurerm_virtual_machine_extension.vm[0]: Still creating... [20s elapsed]
module.windowsservers.azurerm_virtual_machine_extension.vm[0]: Still creating... [30s elapsed]
module.windowsservers.azurerm_virtual_machine_extension.vm[0]: Still creating... [40s elapsed]
module.windowsservers.azurerm_virtual_machine_extension.vm[0]: Still creating... [50s elapsed]
module.windowsservers.azurerm_virtual_machine_extension.vm[0]: Still creating... [1m0s elapsed]

Error: Code="VMExtensionProvisioningError" Message="VM has reported a failure when processing extension '`HOSTNAME'. Error message: \"Extension '' of Handler 'Microsoft.Azure.Extensions.CustomScript' version '1.0' faulted due to exception during extension processing\"\r\n\r\nMore information on troubleshooting is available at https://aka.ms/VMExtensionCSELinuxTroubleshoot "

  on ..\..\modules\windowsservers\main.tf line 194, in resource "azurerm_virtual_machine_extension" "vm":
 194: resource "azurerm_virtual_machine_extension" "vm" {

Solution

  • resource "azurerm_virtual_machine_extension" "vm" {
      name                 = "${var.vm_hostname}-${count.index}"
      count                = (var.is_windows_image || contains(list(var.vm_os_simple, var.vm_os_offer), "WindowsServer")) ? var.nb_instances : 0
      virtual_machine_id   = azurerm_virtual_machine.vm-windows[count.index].id
      publisher            = "Microsoft.Compute"
      type                 = "CustomScriptExtension"
      type_handler_version = "1.9"
    
       settings = <<SETTINGS
        {
          "commandToExecute": "powershell -ExecutionPolicy Unrestricted -Command net accounts /minpwlen:8 && net accounts /maxpwage:45 && net accounts /minpwage:0 && net accounts /lockoutduration:30 && net accounts /lockoutthreshold:3 "    
          }
     SETTINGS
    
      
    }
    

    here is the piece of code which resolved my issue, this mistake i have been doing is using wrong extension which was for the Linux correct extension and code is pasted here.