1
votes

Terraform Azure VM type d'extension et valeurs de paramètre type_handler_version pour AADLoginForWindows

J'essaie d'ajouter l'extension de machine virtuelle AADLoginForWindows à une machine virtuelle Azure Windows Server à l'aide de la version 1.21.0 du fournisseur terraform azurerm.

L'installation échoue avec le message:

Handler 'Microsoft.Azure.ActiveDirectory.AADLoginForWindows' has reported failure for VM Extension 'AADLoginForWindows' with terminal error code '1007' and error message: 'Install failed for plugin (name: Microsoft.Azure.ActiveDirectory.AADLoginForWindows, version 0.3.1.0) with exception Command C:\Packages\Plugins\Microsoft.Azure.ActiveDirectory.AADLoginForWindows\0.3.1.0\AADLoginForWindowsHandler.exe of Microsoft.Azure.ActiveDirectory.AADLoginForWindows has exited with Exit code: 51'


1 commentaires

avez-vous fait fonctionner cela?


3 Réponses :


0
votes

changez votre type_handler_version pour qu'il corresponde à celui actuel (0.3.1.0 selon vos résultats)

type_handler_version              = "0.3.1.0"

il ne peut pas rétrograder la version, uniquement la mise à niveau et uniquement la version mineure.

La version Linux fonctionne parce que (donc elle est supérieure à 1.0.0.0):
entrez la description de l'image ici

Alors que la version Windows n'est toujours pas sur 1.0:
entrez la description de l'image ici


5 commentaires

J'ai bien peur que cela ne fonctionne pas, le message d'erreur est maintenant: Échec de l'envoi de la demande: StatusCode = 400 - Erreur d'origine: Code = "InvalidParameter" Message = "La valeur du paramètre typeHandlerVersion n'est pas valide." Target = "typeHandlerVersion", ce qui me fait penser que le "type handler" qui est versionné n'est pas la même chose que l'extension réelle que j'essaie d'appliquer ...


cela ressemble à un autre bogue de merde. parce que je suis assez sûr de cette erreur et de la façon de la corriger


Je ne pense pas, j'ai édité ma question pour montrer une configuration terraform fonctionnelle pour appliquer l'extension VM équivalente pour une VM Linux.


Vous avez peut-être raison à propos d'un bogue dans terraform autour des versions sous 1.x, mais pour vérifier que je viens de tenter d'appliquer l'extension en utilisant az (voir la mise à jour en question ci-dessus), cela a également échoué, donc je soupçonne que cette extension est fondamentalement cassée. .


cela pourrait être le cas, je n'ai pas vraiment utilisé cette extension, mais cette erreur particulière est assez claire, vous devez utiliser la version appropriée, et ce que je montre est comment c'est censé être;)



0
votes

J'ai rapidement renoncé à faire fonctionner la ressource. Au lieu de cela, j'ai juste utilisé une solution de contournement grossière consistant à appeler un approvisionneur local et à ajouter l'extension via AZ Cli

provisioner "local-exec" {
  command = "az vm extension set --publisher Microsoft.Azure.ActiveDirectory --name AADLoginForWindows --resource-group ${azurerm_resource_group.managementRG.name} --vm-name myWinVm"
}

Le bloc d'approvisionnement se trouve dans ma ressource azurerm_virtual_machine . Je pourrais peut-être jeter un autre coup d'œil pour le faire fonctionner correctement à un moment donné, mais cela débloque le problème pour le moment.


0 commentaires

0
votes

J'utilise le code suivant avec AzureRM 2.x et Terraform v0.12.x pour ajouter la connexion AD pour Linux:

resource "azurerm_virtual_machine_extension" "ad-extenstion-linux" {
  depends_on=[azurerm_linux_virtual_machine.ubuntu-linux-vm]

  name                       = "AADLoginForLinux"
  publisher                  = "Microsoft.Azure.ActiveDirectory.LinuxSSH"
  type                       = "AADLoginForLinux"
  type_handler_version       = "1.0"
  auto_upgrade_minor_version = true
  virtual_machine_id         = azurerm_linux_virtual_machine.ubuntu-linux-vm.id
}


0 commentaires