Muchas veces nos encontramos desplegando máquinas en Azure utilizando las plantillas JSON para automatizar todo lo podemos este proceso, y muchas veces tenemos que unir esas máquinas a un dominio por lo que tenemos o que unirlas a mano (demasiado tedioso) o mediante un script de PowerShell, pero tenemos la alternativa de añadirlas directamente desde la plantilla.

JsonADDomaininExtension

La extension JsonADDomaininExtension es una publicación de Microsoft para facilitarnos la vida, añadiendo unos pocos parámetros nos permite añadir cientos de máquinas (siempre que la usemos “copy()”) durante su despliegue:

{
      "apiVersion": "2019-03-01",
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "name": "[concat(parameters('vmName'),'/joindomain')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
      ],
      "properties": {
        "publisher": "Microsoft.Compute",
        "type": "JsonADDomainExtension",
        "typeHandlerVersion": "1.3",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "Name": "itcloud.es",
          "OUPath": "OU=Laboratorio,DC=itcloud,DC=es",
          "User": "Admin@itcloud.es",
          "Restart": "true",
          "Options": "3"
        },
        "protectedsettings": {
          "Password": "[parameters('Password')]"
        }
      }
    }

En este trozo de código JSON nos encontramos las opciones habituales de un recurso de Azure, que por lo general no varían. En las propiedades, a ser una extensión tendremos que indicar a quien pertenece, cual es, la versión y si queremos que se actualice automáticamente.

Una vez que tengamos eso, que no son nada del otro mundo, pasaremos a las opciones que nos da la extensión para cumplir su objetivo, que son las siguientes:

  • Name: El dominio al que vamos a añadir la maquina en FQDN.
  • OUPath: La unidad organizativa donde queremos meter la máquina. Es opcional, en caso de no ponerlo se añadirá a por defecto.
  • User: Usuario con privilegios en el dominio.
  • Restart: Si queremos reiniciar la maquina después de unirla.
  • Options: Por defecto lo dejaremos en 3.
  • Password: Contraseña del usuario con privilegios

Plantilla de origen: https://github.com/Azure/azure-quickstart-templates/tree/master/201-vm-domain-join/