La forma práctica, ordenada y ágil en que podemos compartir el código dentro de nuestra organización es a través de paquetes nuget, los cuales no son mas que bibliotecas de código reutilizable que podemos incluir en nuestros proyectos de Visual Studio fácilmente. Por lo que lo que necesitamos es un "Repositorio" de estos paguetes de código reutilizable llamados Nuget.
Para crear este repositorio tenemos 3 opciones:
1) Una Carpeta Compartida en la red
2) Un servidor de Nuget Local
3) Utilizar los servidores de Nuget.Org para compartir nuestro código al rededor del mundo con infraestructura de terceros
Análisis de las opciones
Crear una Carpeta Compartida es una opción muy fácil poco segura, ordenada y elegante, por lo que no recomiendo esta opción más que para una prueba de concepto.
Utilizar los servidores de Nuget.Org de forma privada es una opción la cual puede evaluar primordial mente si su equipo esta distribuido geográficamente, sino recomiendo la opción de un Servidor Nuget. Para más información ver el siguiente enlace: https://www.myget.org/nuget
Nuestro análisis nos lleva a ver la opción 2 de crear un servidor Nuget con nuestra propia infraestructura disponible dentro de nuestra organización y esto es el lo que vamos a ver en el desarrollo del artículo.
Prerequisitos
Requerimientos de Hardware
Procesador: 1 Nucleo
Memoria RAM: 1 GB
Disco: 127 GB
Requerimientos de Software
Windows Server 2012 Standard Edition
IIS 8.0 con las siguientes features activadas:
DisplayName
-----------
Web Server (IIS)
Web Server
Common HTTP Features
Default Document
Directory Browsing
HTTP Errors
Static Content
Health and Diagnostics
HTTP Logging
Logging Tools
Request Monitor
Performance
Static Content Compression
Security
Request Filtering
Windows Authentication
Application Development
.NET Extensibility 3.5
.NET Extensibility 4.5
ASP.NET 3.5
ASP.NET 4.5
ISAPI Extensions
ISAPI Filters
Management Tools
IIS Management Console
IIS Management Scripts and Tools
Management Service
Nota: Para obtener este listado puede ejecutar la siguiente línea en powershell:
Import-module servermanager ; Get-WindowsFeature | where {$_.Installed -eq $True -and $_.Path
-like "*web*" }| select displayname
Como vamos a realizar la instalación con WebDeploy necesitamos instalarlo para IIS 8.0
https://www.iis.net/downloads/microsoft/web-deploy
Debemos validar que el servicio Management Services esta levantado así que ejecute esta línea de comando en el servidor web:
net start wmsvc
Por último como el proyecto Nuget Server que vamos a instalar require Framework 4.6 es necesario instalar dicho framework que no viene con Windows Server 2012. Para ello utitlizar el siguiente enlace:
https://www.microsoft.com/en-us/download/details.aspx?id=53344
Listos ahora pasemos a Visual Studio para crear el proyecto Web Nuget Server
Creación de Proyecto Web Nuget Server
Desde Visual Studio Cree un Nuevo Proyecto Web Vacio
Y ejecute desde la consola de Package Manager la siguiente línea:
Install-Package NuGet.Server -Version 2.11.3
Le Preguntará si permite modificar el archivo web.config del proyecto seleccione afirmativamente la opción.
Recomiendo revise las configuraciones del archivo web.config siguientes:
Ahora vamos a crear un perfil de publicación en VS para realizar la instalación automatizada del Servidor Nuget en el Servidor Web recién configurado.
Valide la conexión y si le de errror revise los prerequisitos o vaya al siguiente enlace:
https://docs.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/web-deploy-error-codes
Si vemos el resumen del Perfil de publicación notaremos que el servicio referenciado es Web Management Services o WMSvc
Y finalmente si publicamos el proyecto a través del perfil de publicación obtendremos el resultado final... Nuestro servidor Nuget Listo!:
Y eso es todo amigos, en este articulo revisamos como crear un servidor Nuget Local para crear nuestros paquetes de bibliotecas de código para compartir con el equipo de una forma ágil y eficiente desde Visual Studio 2017, Y lo hicimos de forma automatizada ya que utilizamos Web Deploy para instalar el Proyecto Web del Servidor Nuget en un Servidor Windows 2012 con el Web Server Habilitado y el Servicio Web Management Service para realizar instalaciones remotas a través de la aplicación Web Deploy de Microsoft.
Code4Fun!,
Juan Manuel Herrera Ocheita
Micro publicaciones guía para Power Apps, Power Automate, SharePoint y ademas algunos temas de Azure Dev Ops, Desarrollo Web, SQL Server, Asp.net.
miércoles, 9 de agosto de 2017
Creando Nuget Server Local y haciendo la instalación con WebDeploy
martes, 8 de agosto de 2017
Buenas practicas para desarrollo de soluciones en SharePoint
Una de las buenas practicas para cuando iniciamos una solución en SharePoint no importa la versión es crear una colección de sitios para dicha solución y esta con su bases de datos de contenido, Esto permitirá que sea portable la solución desarrollada.
Para realizar esto debemos hacer lo siguiente:
1) Crear la base de datos de contenido
2) Crear la colección de sitios para la base de datos nueva
Como buen desarrollador prefiero utilizar la línea de comando que la interfaz de usuario. Así que aquí les va en línea de comando:
Crear la base de datos de contenido
PS C:\Users\Administrator> Mount-SPContentDatabase -Name WSS_Content_ArchivoDigi
tal -WebApplication http://sp2013bi
---resultado ----
Id : 47b71298-e23c-421b-bb6a-5e65428b8a4d
Name : WSS_Content_ArchivoDigital
WebApplication : SPWebApplication Name=SharePoint - 80
Server : sp2013bi\powerpivot
CurrentSiteCount : 0
Crear la colección de sitios para la base de datos nueva
PS C:\Users\Administrator> New-SPSite -Url http://sp2013bi/sites/ADigital -Langu
age 1033 -Template STS#0 -Name "Archivo Digital" -OwnerAlias "Administrator" -Co
ntentDatabase WSS_Content_ArchivoDigital -Verbose
---resultado---
VERBOSE: Leaving BeginProcessing Method of New-SPSite.
VERBOSE: Performing operation "New-SPSite" on Target
"http://sp2013bi/sites/ADigital".
Url CompatibilityLevel
--- ------------------
http://sp2013bi/sites/ADigital 15
VERBOSE: Leaving ProcessRecord Method of New-SPSite.
VERBOSE: Leaving EndProcessing Method of New-SPSite.
Ayudas:
Para revisar las plantillas para la colección de sitios ejecutar el comando:
get-SPWebTemplate
Name Title LocaleId Compat
ibilit
yLevel
---- ----- -------- ------
GLOBAL#0 Global template 1033 15
STS#0 Team Site 1033 15
STS#1 Blank Site 1033 15
STS#2 Document Workspace 1033 15
MPS#0 Basic Meeting Workspace 1033 15
MPS#1 Blank Meeting Workspace 1033 15
MPS#2 Decision Meeting Workspace 1033 15
MPS#3 Social Meeting Workspace 1033 15
MPS#4 Multipage Meeting Workspace 1033 15
CENTRALADMIN#0 Central Admin Site 1033 15
WIKI#0 Wiki Site 1033 15
BLOG#0 Blog 1033 15
SGS#0 Group Work Site 1033 15
TENANTADMIN#0 Tenant Admin Site 1033 15
APP#0 App Template 1033 15
APPCATALOG#0 App Catalog Site 1033 15
ACCSRV#0 Access Services Site 1033 15
ACCSVC#0 Access Services Site Internal 1033 15
ACCSVC#1 Access Services Site 1033 15
BDR#0 Document Center 1033 15
DEV#0 Developer Site 1033 15
DOCMARKETPLACESITE#0 Academic Library 1033 15
EDISC#0 eDiscovery Center 1033 15
EDISC#1 eDiscovery Case 1033 15
OFFILE#0 (obsolete) Records Center 1033 15
OFFILE#1 Records Center 1033 15
OSRV#0 Shared Services Administration Site 1033 15
PPSMASite#0 PerformancePoint 1033 15
BICenterSite#0 Business Intelligence Center 1033 15
SPS#0 SharePoint Portal Server Site 1033 15
SPSPERS#0 SharePoint Portal Server Personal Space 1033 15
SPSPERS#2 Storage And Social SharePoint Portal ... 1033 15
SPSPERS#3 Storage Only SharePoint Portal Server... 1033 15
SPSPERS#4 Social Only SharePoint Portal Server ... 1033 15
SPSPERS#5 Empty SharePoint Portal Server Person... 1033 15
SPSMSITE#0 Personalization Site 1033 15
SPSTOC#0 Contents area Template 1033 15
SPSTOPIC#0 Topic area template 1033 15
SPSNEWS#0 News Site 1033 15
CMSPUBLISHING#0 Publishing Site 1033 15
BLANKINTERNET#0 Publishing Site 1033 15
BLANKINTERNET#1 Press Releases Site 1033 15
BLANKINTERNET#2 Publishing Site with Workflow 1033 15
SPSNHOME#0 News Site 1033 15
SPSSITES#0 Site Directory 1033 15
SPSCOMMU#0 Community area template 1033 15
SPSREPORTCENTER#0 Report Center 1033 15
SPSPORTAL#0 Collaboration Portal 1033 15
SRCHCEN#0 Enterprise Search Center 1033 15
PROFILES#0 Profiles 1033 15
BLANKINTERNETCONT... Publishing Portal 1033 15
SPSMSITEHOST#0 My Site Host 1033 15
ENTERWIKI#0 Enterprise Wiki 1033 15
PROJECTSITE#0 Project Site 1033 15
PRODUCTCATALOG#0 Product Catalog 1033 15
COMMUNITY#0 Community Site 1033 15
COMMUNITYPORTAL#0 Community Portal 1033 15
SRCHCENTERLITE#0 Basic Search Center 1033 15
SRCHCENTERLITE#1 Basic Search Center 1033 15
visprus#0 Visio Process Repository 1033 15
GLOBAL#0 Global template 1033 14
STS#0 Team Site 1033 14
STS#1 Blank Site 1033 14
STS#2 Document Workspace 1033 14
MPS#0 Basic Meeting Workspace 1033 14
MPS#1 Blank Meeting Workspace 1033 14
MPS#2 Decision Meeting Workspace 1033 14
MPS#3 Social Meeting Workspace 1033 14
MPS#4 Multipage Meeting Workspace 1033 14
CENTRALADMIN#0 Central Admin Site 1033 14
WIKI#0 Wiki Site 1033 14
BLOG#0 Blog 1033 14
SGS#0 Group Work Site 1033 14
TENANTADMIN#0 Tenant Admin Site 1033 14
ACCSRV#0 Access Services Site 1033 14
ACCSRV#1 Assets Web Database 1033 14
ACCSRV#3 Charitable Contributions Web Database 1033 14
ACCSRV#4 Contacts Web Database 1033 14
ACCSRV#6 Issues Web Database 1033 14
ACCSRV#5 Projects Web Database 1033 14
BDR#0 Document Center 1033 14
OFFILE#0 (obsolete) Records Center 1033 14
OFFILE#1 Records Center 1033 14
OSRV#0 Shared Services Administration Site 1033 14
PPSMASite#0 PerformancePoint 1033 14
BICenterSite#0 Business Intelligence Center 1033 14
SPS#0 SharePoint Portal Server Site 1033 14
SPSPERS#0 SharePoint Portal Server Personal Space 1033 14
SPSMSITE#0 Personalization Site 1033 14
SPSTOC#0 Contents area Template 1033 14
SPSTOPIC#0 Topic area template 1033 14
SPSNEWS#0 News Site 1033 14
CMSPUBLISHING#0 Publishing Site 1033 14
BLANKINTERNET#0 Publishing Site 1033 14
BLANKINTERNET#1 Press Releases Site 1033 14
BLANKINTERNET#2 Publishing Site with Workflow 1033 14
SPSNHOME#0 News Site 1033 14
SPSSITES#0 Site Directory 1033 14
SPSCOMMU#0 Community area template 1033 14
SPSREPORTCENTER#0 Report Center 1033 14
SPSPORTAL#0 Collaboration Portal 1033 14
SRCHCEN#0 Enterprise Search Center 1033 14
PROFILES#0 Profiles 1033 14
BLANKINTERNETCONT... Publishing Portal 1033 14
SPSMSITEHOST#0 My Site Host 1033 14
ENTERWIKI#0 Enterprise Wiki 1033 14
SRCHCENTERLITE#0 Basic Search Center 1033 14
SRCHCENTERLITE#1 Basic Search Center 1033 14
SRCHCENTERFAST#0 FAST Search Center 1033 14
visprus#0 Visio Process Repository 1033 14
SharePoint4fun!,
Juan Manuel Herrera O.
Para realizar esto debemos hacer lo siguiente:
1) Crear la base de datos de contenido
2) Crear la colección de sitios para la base de datos nueva
Como buen desarrollador prefiero utilizar la línea de comando que la interfaz de usuario. Así que aquí les va en línea de comando:
Crear la base de datos de contenido
PS C:\Users\Administrator> Mount-SPContentDatabase -Name WSS_Content_ArchivoDigi
tal -WebApplication http://sp2013bi
---resultado ----
Id : 47b71298-e23c-421b-bb6a-5e65428b8a4d
Name : WSS_Content_ArchivoDigital
WebApplication : SPWebApplication Name=SharePoint - 80
Server : sp2013bi\powerpivot
CurrentSiteCount : 0
Crear la colección de sitios para la base de datos nueva
PS C:\Users\Administrator> New-SPSite -Url http://sp2013bi/sites/ADigital -Langu
age 1033 -Template STS#0 -Name "Archivo Digital" -OwnerAlias "Administrator" -Co
ntentDatabase WSS_Content_ArchivoDigital -Verbose
---resultado---
VERBOSE: Leaving BeginProcessing Method of New-SPSite.
VERBOSE: Performing operation "New-SPSite" on Target
"http://sp2013bi/sites/ADigital".
Url CompatibilityLevel
--- ------------------
http://sp2013bi/sites/ADigital 15
VERBOSE: Leaving ProcessRecord Method of New-SPSite.
VERBOSE: Leaving EndProcessing Method of New-SPSite.
Ayudas:
Para revisar las plantillas para la colección de sitios ejecutar el comando:
get-SPWebTemplate
Name Title LocaleId Compat
ibilit
yLevel
---- ----- -------- ------
GLOBAL#0 Global template 1033 15
STS#0 Team Site 1033 15
STS#1 Blank Site 1033 15
STS#2 Document Workspace 1033 15
MPS#0 Basic Meeting Workspace 1033 15
MPS#1 Blank Meeting Workspace 1033 15
MPS#2 Decision Meeting Workspace 1033 15
MPS#3 Social Meeting Workspace 1033 15
MPS#4 Multipage Meeting Workspace 1033 15
CENTRALADMIN#0 Central Admin Site 1033 15
WIKI#0 Wiki Site 1033 15
BLOG#0 Blog 1033 15
SGS#0 Group Work Site 1033 15
TENANTADMIN#0 Tenant Admin Site 1033 15
APP#0 App Template 1033 15
APPCATALOG#0 App Catalog Site 1033 15
ACCSRV#0 Access Services Site 1033 15
ACCSVC#0 Access Services Site Internal 1033 15
ACCSVC#1 Access Services Site 1033 15
BDR#0 Document Center 1033 15
DEV#0 Developer Site 1033 15
DOCMARKETPLACESITE#0 Academic Library 1033 15
EDISC#0 eDiscovery Center 1033 15
EDISC#1 eDiscovery Case 1033 15
OFFILE#0 (obsolete) Records Center 1033 15
OFFILE#1 Records Center 1033 15
OSRV#0 Shared Services Administration Site 1033 15
PPSMASite#0 PerformancePoint 1033 15
BICenterSite#0 Business Intelligence Center 1033 15
SPS#0 SharePoint Portal Server Site 1033 15
SPSPERS#0 SharePoint Portal Server Personal Space 1033 15
SPSPERS#2 Storage And Social SharePoint Portal ... 1033 15
SPSPERS#3 Storage Only SharePoint Portal Server... 1033 15
SPSPERS#4 Social Only SharePoint Portal Server ... 1033 15
SPSPERS#5 Empty SharePoint Portal Server Person... 1033 15
SPSMSITE#0 Personalization Site 1033 15
SPSTOC#0 Contents area Template 1033 15
SPSTOPIC#0 Topic area template 1033 15
SPSNEWS#0 News Site 1033 15
CMSPUBLISHING#0 Publishing Site 1033 15
BLANKINTERNET#0 Publishing Site 1033 15
BLANKINTERNET#1 Press Releases Site 1033 15
BLANKINTERNET#2 Publishing Site with Workflow 1033 15
SPSNHOME#0 News Site 1033 15
SPSSITES#0 Site Directory 1033 15
SPSCOMMU#0 Community area template 1033 15
SPSREPORTCENTER#0 Report Center 1033 15
SPSPORTAL#0 Collaboration Portal 1033 15
SRCHCEN#0 Enterprise Search Center 1033 15
PROFILES#0 Profiles 1033 15
BLANKINTERNETCONT... Publishing Portal 1033 15
SPSMSITEHOST#0 My Site Host 1033 15
ENTERWIKI#0 Enterprise Wiki 1033 15
PROJECTSITE#0 Project Site 1033 15
PRODUCTCATALOG#0 Product Catalog 1033 15
COMMUNITY#0 Community Site 1033 15
COMMUNITYPORTAL#0 Community Portal 1033 15
SRCHCENTERLITE#0 Basic Search Center 1033 15
SRCHCENTERLITE#1 Basic Search Center 1033 15
visprus#0 Visio Process Repository 1033 15
GLOBAL#0 Global template 1033 14
STS#0 Team Site 1033 14
STS#1 Blank Site 1033 14
STS#2 Document Workspace 1033 14
MPS#0 Basic Meeting Workspace 1033 14
MPS#1 Blank Meeting Workspace 1033 14
MPS#2 Decision Meeting Workspace 1033 14
MPS#3 Social Meeting Workspace 1033 14
MPS#4 Multipage Meeting Workspace 1033 14
CENTRALADMIN#0 Central Admin Site 1033 14
WIKI#0 Wiki Site 1033 14
BLOG#0 Blog 1033 14
SGS#0 Group Work Site 1033 14
TENANTADMIN#0 Tenant Admin Site 1033 14
ACCSRV#0 Access Services Site 1033 14
ACCSRV#1 Assets Web Database 1033 14
ACCSRV#3 Charitable Contributions Web Database 1033 14
ACCSRV#4 Contacts Web Database 1033 14
ACCSRV#6 Issues Web Database 1033 14
ACCSRV#5 Projects Web Database 1033 14
BDR#0 Document Center 1033 14
OFFILE#0 (obsolete) Records Center 1033 14
OFFILE#1 Records Center 1033 14
OSRV#0 Shared Services Administration Site 1033 14
PPSMASite#0 PerformancePoint 1033 14
BICenterSite#0 Business Intelligence Center 1033 14
SPS#0 SharePoint Portal Server Site 1033 14
SPSPERS#0 SharePoint Portal Server Personal Space 1033 14
SPSMSITE#0 Personalization Site 1033 14
SPSTOC#0 Contents area Template 1033 14
SPSTOPIC#0 Topic area template 1033 14
SPSNEWS#0 News Site 1033 14
CMSPUBLISHING#0 Publishing Site 1033 14
BLANKINTERNET#0 Publishing Site 1033 14
BLANKINTERNET#1 Press Releases Site 1033 14
BLANKINTERNET#2 Publishing Site with Workflow 1033 14
SPSNHOME#0 News Site 1033 14
SPSSITES#0 Site Directory 1033 14
SPSCOMMU#0 Community area template 1033 14
SPSREPORTCENTER#0 Report Center 1033 14
SPSPORTAL#0 Collaboration Portal 1033 14
SRCHCEN#0 Enterprise Search Center 1033 14
PROFILES#0 Profiles 1033 14
BLANKINTERNETCONT... Publishing Portal 1033 14
SPSMSITEHOST#0 My Site Host 1033 14
ENTERWIKI#0 Enterprise Wiki 1033 14
SRCHCENTERLITE#0 Basic Search Center 1033 14
SRCHCENTERLITE#1 Basic Search Center 1033 14
SRCHCENTERFAST#0 FAST Search Center 1033 14
visprus#0 Visio Process Repository 1033 14
SharePoint4fun!,
Juan Manuel Herrera O.
Etiquetas:
PowerShell para SharePoint 2010,
PowerShell para SharePoint 2013,
PowerShell para SharePoint 2016,
SharePoint
jueves, 29 de junio de 2017
Soluciones de Granja: Error al activar una Custom Feature o Característica Personalizada
Las razones para este error pueden ser muchas, por lo que les compartiré el escenario en el que me sucedió, algunos tips y la solución para corregirlo.
Las soluciones de granja aunque no sea un modelo de programación migrable a O365 es por mucho el modelo más poderoso en el cual tenemos el control total de los recursos del servidor. Y esta vigente y por estos rumbos seguimos escogiendo desarrollar bajo este modelo. Mientras haya version en SharePoint en Premisas y el modelo siga soportado continuaremos desarrollando con el modelo donde tenemos mayor libertad y poder sobre los recursos de los servidores de la granja de SharePoint. El único inconveniente es el desarrollo debe de suceder desde un servidor con SharePoint instalado esto lo hace más complicado y tedioso.
Vamos a la obra describamos el Escenario.
Escenario:
Versión de Visual Studio: 2015 update 3
Versión de SharePoint: SharePoint Server 2013 Standard Edition SP1
Versión de SQL Server: SQL Server 2012 Standard Edition
Versión de Sistema Operativo: Windows Server 2012 SP1
Características de la solución:
Feature1 :
Scope: Site Collection
Elements: Web parts
Feature2:
Scope: Web Site
Elements: Instancia de una Lista Personalizada o Instant of Custom List.
Definición de una Lista Personalizada o Custom List Definition
Elementos (Paginas) de una lista personalizada o Module with Elements
Feature 1:
Feature2:
Error:
Cuando se intantaba activar la Feature2 que creaba las listas y elementos daba el error al intentar activar la feature. Sin mayor información.
Situación:
En la red encontrarás información como forzar la instalación agregar el FeatureID a la instancia de la lista, y pueda que esto funcione o igualmente te lo impida. La situación real es que hay un problema, hay que averiguarlo y corregirlo.
Proceso:
Para poder averigurar el verdadero problema tuve que realizar los siguientes pasos:
1) El feature a nivel Web quite el parte del modulo que tiene la definición y creación de los elementos y solo deje la definición y la instancia de la lista personalizada.
2) Realice con éxito el deployment sin errores
3) Agrege el primer elemento dentro del modulo y funcióno exitosamente
<![CDATA[
]]>
...
Definición dentro de Elements.xml del Modulo
List="Lists/Asuetos"
BaseViewID="0"
WebPartZoneID="wpCalendar2"
WebPartOrder="1"
Type="CALENDAR"
Scope="Recursive"
RecurrenceRowset="TRUE">
<![CDATA[
]]>
Solución:
Agregue a la solución de SharePoint en Visual Studio un nuevo elemento la definición de la lista tipo Calendario con su respectiva instancia y el problema se solución.
En conclusión dire que si hay un problema de activación es porque hay algo que se esta haciendo referencia que no existe y es necesario encontrar que es lo que no esta e incluirlo en la solución.
Code4Fun!,
Juan Manuel Herrera Ocheita
jueves, 1 de junio de 2017
Tip del día: Sabias porque no logras ver otros servidores de SQL Server
El servicio de SQL Browser es el responsable de permitir descubrise a si mismo y permitir a otras instancias o servidores que lo descubran.
Probablemente esta apagado solo debes de encenderlo.
Si no lo siguies viendo probablemente es el firewall que esta bloqueando el puerto y protocolo de comunicación
Miremos la información oficial
SQL Server Browser service
UDP port 1434
The SQL Server Browser service listens for incoming connections to a named instance and provides the client the TCP port number that corresponds to that named instance. Normally the SQL Server Browser service is started whenever named instances of the Database Engine are used. The SQL Server Browser service does not have to be started if the client is configured to connect to the specific port of the named instance.
Eso es todo por este artículo.
SQL4Fun!,
Juan Manuel Herrera Ocheita
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:
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
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.
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
Etiquetas:
Azure,
Azure Virtual Machines,
Release Management,
TFS 2017
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
Etiquetas:
SharePoint,
SharePoint 2010,
SharePoint 2013,
SharePoint 2016
Suscribirse a:
Entradas (Atom)