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

jueves, 25 de mayo de 2017

Secretos mas reconditos en SharePoint: Cadena de conexión de ConfigDB

Siempre me he preguntado y no se si usted también donde se guarda la cadena de conexión de la base de datos de configuración de la granja de SharePoint Server.  Pienso que Esto aplica para 14,15 y 16.

Pues bien necesita irse al registro de windows permedio de regedit y navegar en las carpetas siguiendo la siguiente ruta

HKEY_Local_Machine\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\

De allí depdenderá de la versión de SharePoint.  Por ejemplo si es 2015 encontrará la carpeta 15.0 y luego Secure y dentro de ella ConfigDB y alli adentro una llave llamada dsn

La ruta completa sería:

HKEY_Local_Machine\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\Secure\ConfigDB



Y el valor esperado de la cadena de conexión de la base de datos de configuración de la granja tipicamente nombrada SharePoint_Config es:


Data Source=SPSQLDB;Initial Catalog=SharePoint_Config;Integrated Security=True;Enlist=False;Pooling=True;Min Pool Size=0;Max Pool Size=100;Connect Timeout=15


Así que ya sabe donde.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

miércoles, 24 de mayo de 2017

La búsqueda contextual no funciona pero si la de la colección de sitos en SharePoint

Este es el sintoma que identifica este problema.  El sintoma es el siguiente:

No funciona ninguna búsqueda desde la caja de búsqueda de las listas y bibliotecas, y tampoco funciona la búsquedal sitio, pero la búsqueda dentro de la colección si devuelve resultados.

Si revismos el log de la indagación o Crawl nos muestra que el contenido si fue indagado y que es parte del índice del servicio de búsqueda pero no funciona la búsqueda contextual.

Si funciona en la mayoría y no funcion en alguna lista ese no es el sintoma y allí el problema se debe a que no ha mapeado la columna en las propiedades adminsitradas del servicio o bien porque cambio el estilo de la vista (que debe ser siempre el predeterminado o default) y no esta utilizando la vista de AllItems.aspx que es la que permite realiar las búsquedas desde la casilla de búsqueda.

Entonces regresando al tema, si este es el sintóma la solución esta en camino.

El Problema:

El problema es que se se esta indagando otra zona que no es la predeterminada o default o bien que se ha colocado el Mapeo a servidor o Server Mappings del servicio de búsqueda asumiendo que este funciona igual como en SharePoint 2010 que no es así.   En SharePoint 2013 las cosas cambiaron y fueron mejoradas pero el comportamiento es distinto en cuanto a esta úlitma opción.

La Solución:

Primero lo primero, y es que debemos de validar para que funcione la búsqueda contextal.  Y es lo siguiente:

1) Validar que la Zona Predeterminada o Default de la Web Application sea la que esta registrado en el Fuentes de contenido o Content Sources del servicio de búsqueda y ninguna otra dirección url que sea una zona distinta a la predeterminada.

Central Administration
Manage Web Application
Alternate access Mappings
Seleccionar Web Application
Validar Zona Predeterminada o Default



Central Administration
Manage Service Application
Search Service
Content Sources



2) Validar que la Zona Predeterminada o Default de la Web Application tenga habilitado la autenticación NTLM y no otra, si es necesario otro tipo de autenticación utilizar otra zona para definir esta otra autenticación, pero para poder indagar el contenido en la zona predeterminada SharePoint requiere que sea autenticación Windows o NTLM.



Buenas noticias:

Las buenas noticias es que una vez indaga con exito la zona predeterminada o default ya no es necesario de configurar otra como como Server Mappings como se hacia en SharePoint 2010.   Los resultados serán devueltos basados en la url a la que se hizo la consulta cualquiera de las zonas  definidas en el Mapeo Acceso Alternativo o AAM.




SharePoint4Fun!

Juan Manuel Herrera



jueves, 4 de mayo de 2017

MSBuild 2017 podrás verlo en vivo!


¡Reserva la fecha! No te pierdas la transmisión en vivo de #MSBuild y todas las novedades que traerá este año. https://aka.ms/buildFBev



  • Quieres ser el primero en conocer las principales tendencias en tecnología de este año! Agenda la fecha de #MSBuild
  • Los anuncios más importantes del año para desarrolladores se darán en #MSBuild, ¡no te pierdas el keynote!
  • Los anuncios más importantes del año en vivo y en directo desde #MSBuild, ¡agenda la fecha!
  • ¿Quieres ser el primero en conocer las principales tendencias en tecnología de este año! Agenda la fecha de #MSBuild

Event date (May 10th): Todos pueden unirse directamente al livestreaming desde el siguiente enlace https://aka.ms/build2017latam

No te lo pierdas!

Build4Fun!,

Juan Manuel Herrera Ocheita