El proceso de automatización a la hora del despliegue de aplicaciones es muy importante por dos razones:
1) Te ahorras tiempo consumido en asistente de instalación.
2) Estandarizas tanto el proceso como la configuración durante la instalación; de esta forma, dejas menos posibilidad al error.
En aplicaciones pequeñas y de rápida instalación como WinRAR o 7Zip, suele ser bastante simple la implementación desatendida, pues la configuración estándar es suficiente en la gran mayoría de ocasiones; sin embargo, no pasa lo mismo con soluciones más complejas como las de Adobe, o como en este caso, la suite de Visual Studio. Normalmente, aunque el asistente no es muy largo, se instalan componentes según la necesidad de la compañía de desarrollo.
Así luce el proceso de instalación de la última versión de Visual Studio 2013:
Hoy veremos cómo podemos automatizar el proceso de instalación de Visual Studio y además, la forma de distribuirlo a través de MDT, sea con una Secuencia de Tareas para aplicaciones o de implementación de sistema operativo.
Requerimientos
1. Es necesario tener el DVD o imagen ISO para instalación de Visual Studio 2013. No importa mucho la edición, pues si bien hay componentes que varían, el proceso es realmente el mismo.
2. [Para instalación desde MDT]: Un equipo en el que hayamos montado y configurado MDT 2013 Update 1 y WDS para implementación masiva.
*Nota: Pueden ver el procedimiento básico para tener MDT y WDS en el siguiente artículo:
http://geeks.ms/blogs/checho/archive/2013/02/05/implementaci-243-n-b-225-sica-de-windows-8-con-mdt-2012-update-1-y-windows-deployment-services.aspx
Se creó para MDT 2012, pero no hay mayor variación.
3. Crear una carpeta en el equipo técnico en el directorio C: llamada VStudio. Es decir, quedaría: C:VStudio
4. Copiar todos los archivos de instalación de Visual Studio desde el medio a la carpeta C:VStudio
5. Tener habilitado el .NET Framework en todos los equipos de destino.
*Nota: Podemos automatizar el 3 y 4 paso de la siguiente forma:
En el equipo técnico, abrimos un Símbolo del Sistema con privilegios elevados y ejecutamos:
mkdir C:VStudio
xcopy <UnidadVS>:*.* /s/e/f C:VStudio
Donde <UnidadVS> se refiere a la letra correspondiente al medio de Visual Studio. Por ejemplo, en mi caso sería D: así que el comando quedaría:
xcopy D:*.* /s/e/f C:VStudio
Con el comando de mkdir, se vería:
Modificando el XML de respuesta
Tal cual funciona con Windows y varias soluciones que incluyen diferentes configuraciones como Hyper-V, Visual Studio siempre busca un tipo de archivo de respuesta XML durante su instalación; esto es fácilmente comprobable utilizando Process Monitor:
Como ven, el proceso vs_premium.exe, que representa el instalador de Visual Studio Premium en este caso, trata de buscar y abrir el archivo AdminDeployment.xml ubicado en el directorio packages de instalación; pero, obtiene un resultado de NAME NOT FOUND indicando que el archivo no existe.
Debido a que el asistente de instalación no encuentra el XML para recibir respuestas en cuanto a la personalización, procede a mostrar todo y funcionar de manera predeterminada; es decir, muestra el pequeño asistente de la primera captura donde escogemos los componentes adicionales a desplegar.
*Nota: Si la edición es Ultimate, el nombre del instalador será vs_ultimate.exe, así que debemos tener muy presente eso para los próximos pasos.
Aunque esta parte de configuración está basada en la documentación oficial de MSDN para realizar la instalación desatendida, haremos el despliegue de un modo más sencillo, aprovechando el comportamiento natural del asistente que nos mostró Process Monitor.
El archivo en cuestión, como lo referencié en la captura, se llama AdminDeployment.xml y, de forma predeterminada, se encuentra en los archivos de instalación de Visual Studio. En este orden de ideas, cada uno lo debe tener en la carpeta VStudio donde copió todo:
Debemos seleccionar el archivo, hacer clic derecho en él y seleccionar Editar.
El contenido del XML se basa en dos aspectos: El modo de visualización de cada uno de los componentes; es decir, si se encuentra oculto o no y, verificar que esté o no seleccionado para instalarse. La primera parte tiene un aspecto similar al siguiente:
Las dos configuraciones se encuentran dentro de la etiqueta SelectableItemCustomization.
Antes de proceder a estos cambios, es necesario cambiar el atributo del valor NoWeb en las primeras líneas del XML de “default” a “yes”. De esta forma impediremos que se abra alguna página web después de la instalación de Visual Studio.
En otras palabras, debemos cambiar la siguiente línea:
<BundleCustomizations TargetDir="default" NoWeb="default"/>
Por esta configuración:
<BundleCustomizations TargetDir="default" NoWeb="yes"/>
*Nota: El valor TargetDir, hace referencia a la ruta de instalación así que no es necesario cambiarla.
Los componentes que normalmente debemos seleccionar mientras realizamos la instalación, que mostré en la primera captura, se ubican en el primer párrafo de los elementos a personalizar, así que es mucho más sencillo el trabajo.
Debemos cambiar todos los Hidden que estén en “no”, a su respectivo “yes” para que no se vean en el asistente; después, es necesario cambiar todos los Selected que tengan “no” también a “yes”, exceptuando los que deseamos instalar.
Por ejemplo, en mi caso oculté todos (Hidden), pero dejé seleccionado solamente el VC_MFC_Libraries, que hace referencia al componente de Microsoft Foundation Classes for C++.
El archivo queda así:
Cada uno debe tener una configuración similar, pero varía los elementos a instalar, pues hay quienes requieren que componentes como Blend o SQL Data Tools se instalen también.
*Nota: La cantidad de componentes que aparecen depende mucho de la edición de Visual Studio que estén desplegando.
Al terminar, hacemos clic en el menú Archivo (File) del Bloc de Notas y Guardar (Save).
Después de esto, seleccionamos el AdminDeployment.xml, lo copiamos y lo pegamos dentro de la carpeta packages ahí mismo en los archivos de instalación:
Con esto, el trabajo más duro en la automatización está terminado, aunque aún no aseguramos la instalación desatendida, pues nos falta la configuración dentro de MDT que pasaré a explicar.
Importando y configurando la aplicación en MDT
Nuestro siguiente paso es agregar todos los archivos de instalación de Visual Studio a MDT, para después indicar el parámetro correcto con el fin de que el despliegue sea totalmente desatendido.
En el equipo técnico donde tengamos MDT 2013 U1 instalado, abrimos el Deployment Workbench como administrador, expandimos nuestro Deployment Share, hacemos clic derecho en el nodo de Applications y seleccionamos New Application:
En la página de Application Type, dejamos la selección de Application with source files y clic en el botón Next.
En la página de Details, rellenamos los datos correspondientes para la aplicación, que en este caso sería Visual Studio y clic en Next:
En la página de Source, clic en el botón Browse y buscamos la ruta donde copiamos los archivos de Visual Studio, que para este artículo fue C:VStudio. Hacemos clic en el botón Next.
En la página de Destination, dejamos el nombre predeterminado según los datos que hayamos llenado en la primera página y clic en Next.
En la página de Command Details, debajo de Command line, es necesario escribir el nombre del instalador pero además, los parámetros restantes para que nuestra instalación sea totalmente desatendida. El comando debe ser:
<InstaladorVisual.exe> /quiet /norestart
Donde <InstaladorVisual.exe> corresponde al nombre original que tiene el archivo de instalación de nuestro medio y que varía según la edición. En este caso, como estoy desplegando la Premium, el comando sería:
vs_premium.exe /quiet /norestart
Clic en el botón Next.
*Nota: Según la documentación oficial de MSDN, es necesario indicar el parámetro de /adminfile para especificar dónde está el XML que configuramos previamente, pero, como nosotros etamos tomando ventana de la búsqueda que siempre realiza el asistente de instalación a la carpeta de packages en los archivos de instalación, podemos obviar ese parámetro y solo indicar /quiet y /norestart para no tener interacción con el proceso.
En la página de Summary, clic en Next.
Debe realizar todo el importe de la aplicación en la página de Progress y, en la página de Confirmation al terminar, clic en el botón Finish.
La aplicación nos debe quedar listada en el nodo de Applications si todo salió bien:
¡Todo listo! Nuestro último paso dentro del Deployment Workbench es crear una Secuencia de Tareas para distribuir, sea para aplicaciones solamente, o bien, para instalación junto con el sistema operativo.
*Nota: No escribiré aquí el proceso nuevamente para crear estas secuencias de tareas, porque ya está documentado en los siguientes artículos del blog:
Desplegar aplicaciones con secuencias de tareas.
Implementación básica de Windows 8 con MDT y WDS.
Comprobando instalación
Sea cual sea el proceso que hayan escogido para desplegar el Visual Studio a través de MDT, deben tener un proceso similar mientras realiza la instalación en el equipo cliente, pues la ventana del asistente de MDT debe informar el estado de instalación:
Con el procedimiento anterior, esta debería ser la única ventana que veamos, sin importar el método de implementación escogido.
Al terminar, debemos poder ver en el Panel de Control la instalación de Visual Studio y todo componente que hayamos dejado habilitado:
Espero sea de utilidad.
Saludos,
Checho