ARM series: uniendo máquinas Windows a dominio desde JSON

ARM series: uniendo máquinas Windows a dominio desde JSON

No dejo el tema de Active Directory Domain Services y el unir máquinas a dominio, y es que si la semana pasada os contaba cómo unir las máquinas basadas en GNU/Linux, esta vengo a contaros algo tan sencillo como ponente: unir en Azure máquinas Windows a dominio automáticamente desde nuestra plantilla JSON en ARM (Azure Resource Manager).

Imaginad la siguiente situación hipotética de infraestructura en Azure:

  • Tenemos 4 máquinas virtuales que hacen de controlador de dominio de ADDS.
  • Vamos a implementar 25 servidores Windows adicionales, todos ellos unidos a dominio usando estos controladores.

¡Phew! Nos vamos a tirar un rato ¿no? Los super-saiyans de la automatización sugerirán que lo más inteligente es desplegar las 25 máquinas con una imagen pre-cocinada preparada para aceptar conexiones WinRM y ya mediante PowerShell procedemos a unir automáticamente todas las máquinas. No está nada mal... ¡pero hay un camino mucho más sencillo y sin cocinar imágenes!

En la Azure QuickStart Templates Gallery encontramos esta interesante plantilla para unir máquinas Windows a dominio. Podemos ver como llama a la extensión JsonADDomainExtension para ejecutar la tarea una vez nuestra máquina está aprovisionada.

El código JSON para utilizarla tiene el siguiente aspecto:

{
  "apiVersion": "2015-06-15",
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "[concat('miMaquinaVirtual','/joindomain')]",
  "location": "[resourceGroup().location]",
  "dependsOn": [
            "[concat('Microsoft.Compute/virtualMachines/','miMaquinaVirtual')]"         
          ],
   "properties": {
       "publisher": "Microsoft.Compute",
       "type": "JsonADDomainExtension",
       "typeHandlerVersion": "1.3",
       "autoUpgradeMinorVersion": true,
       "settings": {
          "Name": "calnus.com",
          "OUPath": "CN=Computers,DC=calnus,DC=com",
          "User": "Administrator@calnus.com",
          "Restart": "true",
          "Options": "3"
       },
       "protectedsettings": {
          "Password": "[parameters('adminPassword')]"
       }
   }
}

¡Y con esto la tenemos! Aplicad la sustitución de cadenas por parámetros o variables e incluso utilizar copy() para unir de tirón varias máquinas virtuales sin escribir el JSON de todas ellas.

Hagamos un repaso rápido a los atributos:

  • Evidentemente, no olvidar la dependencia de la máquina virtual en cuestión, como ocurriría con cualquier extensión.
  • Name. Es el FQDN del dominio al que nos estamos uniendo.
  • OUPath (opcional). ¿Queréis unir vuestra máquina a una OU distinta de la de por defecto? Especificádlo aquí en formato distinguishedName.
  • User. El usuario apoderado para hacer la unión a dominio.
  • Restart. ¿Reiniciamos la máquina automáticamente tras completar la operación?
  • Options. El parámetro más esotérico, que recomiendo encarecidamente dejar siempre a 3, es la máscara de bits con la que se llama a la función de la API de Windows para realizar la operación de incorporación al dominio. Si tienes curiosidad puedes consultarlo aquí, prestando atención al parámetro fJoinOptions.
  • Password. La contraseña de la cuenta con permisos para unir a dominio, como SecureString. No dejar escrita en ningún archivo de texto plano.

¡Y eso es todo por hoy! Espero que esto os haga la vida un poquito más fácil.


Share Tweet Send
0 Comentarios
Cargando...