domingo, 28 de mayo de 2017

Sabias que el mismo agente de Build en TFS puedes utiliarlo para Entrega Automatizada

Desde Team Fundation Server 2015 update 3 los agentes de build son agentes multipropósito.  Es decir pueden fungir con el Rol de Build y Deployment.  De allí que en la versión 2017 se une la opción de Build y Release  o Compilación y Lanzamiento.

Esta opción es una gran ventaja para la automatización de la entrega de software ya que los procesos de instalación son locales donde el agente esta instalado esto reduce la cantidad de puertos que deben de estar abiertos entre el origen y destino.

Otro de los beneficios es que la configuración del agente es una sola y es muy sencilla además que es multiplataforma ya que esta escrita en node.js


Primero lo primero

Donde descargamos el agente?
Bueno para ello debemos ir a configuración
Luego Agent Queues


Presionamos sobre el botón Download agent para descargar el archivo zip que tiene el instalador


Las instrucciones son muy claras y sencillas solo debes de descargar el zip, crear un directorio llamado agent (o como tu prefieras) y ejecutar el comando config.cmd para configurar el agente.

Algo interesante de resaltar es que el agente tiene una versión para cada sistema operativo.


Echemole un vistazo a las instrucciones de versión Linux



Ahora vamos a configurar el agente de Windows en una máqyubvirtual en Azure


Al desempacar el archivo zip en el directorio TFSAgent descarga archivos y directorios


Ejecutamos el comando config.cmd.


En Server URL debemos de ingresar la url de Team Services o bien la dirección de TFS en su red si es la dirección de un servidor de TFS en casa tipicamente la dirección es http://hostname:8080/tfs.

En tipo de autenticación disponibles las siguientes opciones:

  • Alternate Connect to TFS using Basic authentication. After you select Alternate you'll be prompted for your credentials.
  • Negotiate Connect to TFS as a user other than the signed-in user via a Windows authentication scheme such as NTLM or Kerberos. After you select Negotiate you'll be prompted for credentials.
  • Integrated (Default) Connect a Windows agent to TFS using the credentials of the signed-in user via a Windows authentication scheme such as NTLM or Kerberos. You won't be prompted for credentials after you choose this method.
  • PAT Supported only on Team Services and TFS 2017 or newer. After you choose PAT, paste the PAT token you created into the command prompt window.
Para Team Services la opción adecuada es PAT o Personal Access Token.   Para generar el token es necesario autenticarse en la instancia de team services e ir al perfil del usuario y seleccionar la opción Security


Luego presionamos el botón Add para crear un nuevo Token

Escribimos una Descripción y podemos especificar el servicio para el Token para este ejemplo seleccionaremos All Scopes


Deberemos copiar el token y guardarlo ya que este no volverá aparecer nuevamente.  Si lo pierde no se preocupe solo es necesario crear uno nuevo.


* Por seguridad yo revocaré este token ya que lo mostre al mundo :).


Luego nos pregunta el Pool para el Agente y por facilitar la configuración nos sugiere el Predeterminado llamado default.

Eso lo encontramos en la configuración Agent Queues  Seleccionamos Manage Pools
Y presionamos el enlace New pool... Agent Pool para crear un nuevo Pool aunque no es necesario es util diferenciar un agente de build con un agente de deploy


En este ejercicio le colocaremos el nombre de AzureDeployPool


Ahora volvemos a la VM en Azure y colocamos el nombre del Agent Pool y el Nombre del Agente


Luego nos pregunta el nombre del directorio de trabajo con de va a copiar los archivos que necesitemos.  Presionamos enter para dejar este nombre y continuar.


Luego nos pregunta si deseamos que el agente funcione como un servicio para operaciones en background o sino en front end. Solo elegimos que no cuando vayamos a correr alguna prueba que requiera la interfaz de usuariol de lo contrario es mejor y estable que corra como un servicios de windows.

Luego la cuenta esto es importante ya que de forma predeterminada nos suguiere una cuenta local o builtin NETWOR SERVICES pero si deseamos delegar permisos hacia carpetas compartidas o file share lo mejor es utilizar una cuenta de dominio.  Esto es más conveniente. Para este ejercio utilizaremos la cuenta sugerida pero en un caso real es mejor crear una cuenta de servicio del dominio y así esta signarle los permisos necesarios para efectuar las operaciones que necesitemos realizar en nuestra red y computadora host.

Para continuar presionemos enter y listo hemos finalizado la configuración.


Ahora validamos en el servidor host que el servicio este corriendo.



Ahora validamos Team Services o nuestro TFS local


Listo ya podemos ejecutar una tarea en este servidor.  Desde Build & Release

Vamos a crear una definición de Release


Ahora creamos un ambiente de Prueba y asignamos el agente 


Ahora crearemos una tarea superfla solo para validar que el agente esta listo.


Ahora ejecutemos una entrega


Ahora revisamos el directorio


Listo eso es todo por este artículo

TFS4Fun!,

Juan Manuel Herrera Ocheita

No hay comentarios.: