Realizar una instalación desatendida

Azure DevOps Server 2020 | Azure DevOps Server 2019

Nota

Azure DevOps Server se denominaba anteriormente Visual Studio Team Foundation Server.

Con una instalación desatendida, puede establecer todos los parámetros de configuración para la Azure DevOps Server de antemano. El comando tfsconfig unattend es especialmente útil cuando está familiarizado con el proceso de configuración de Azure DevOps Server y está implementando Azure DevOps en un entorno de varias máquinas.

Por ejemplo, muchos sistemas empresariales a gran escala tienen varios servidores designados para las compilaciones. La instalación desatendida permite a un administrador iniciar rápidamente el proceso de instalación de Team Build en estas máquinas sin tener que supervisar cada una de ellas de forma independiente. Además, dado que la configuración de cada servidor de compilación probablemente será casi o completamente idéntica, debería ser fácil establecer rápidamente los parámetros de configuración de cada máquina.

Importante

En este artículo se describe el uso del comando desatendido tfsconfig para realizar una instalación desatendida en Azure DevOps Server 2019. Aunque los pasos son similares para las versiones anteriores de Team Foundation Server, la sintaxis del comando desatendido tfsconfig ha cambiado. Para obtener más información, seleccione la versión del artículo que desee en TFSConfig, Unattend.

Use el comando unattend para realizar los siguientes tipos de instalaciones:

  • Nueva instalación de servidor único o de varios servidores
  • Actualizar
  • Actualización de preproducción
  • Configuración de un nuevo nivel de aplicación
  • Clonación de una implementación existente
  • Configuración de un servidor proxy de control de versiones

Para obtener información sobre el uso de la sintaxis del comando desatendido tfsconfig, consulte Uso de TFSConfigpara administrar Azure DevOps local, Unattend .

Prerrequisitos

  1. Prepare un único equipo que cumpla los requisitos del sistema.

  2. Si no tiene previsto usar SQL Server Express, configure una versión compatible de SQL Server. Al configurar SQL Server para Azure DevOps local, instale como mínimo las características Motor de base de datos y Full-Text y semántica para las características de búsqueda.

    Se recomienda usar el SQL Server Express solo para implementaciones personales o de evaluación. Las copias de pago Azure DevOps local incluyen una SQL Server Standard licencia. Para obtener más información, vea Azure DevOps Server precios. Si usa la licencia incluida, solo puede usarla para las bases de datos creadas con esos productos.

  3. La cuenta que use para configurar la instalación debe ser miembro del rol de servidor sysadmin en SQL Server.

    Nota

    La Azure DevOps local implica un conjunto de operaciones que requieren un alto grado de privilegios. Estas operaciones incluyen la creación de bases de datos, el aprovisionamiento de inicios de sesión para cuentas de servicio, etc. Técnicamente, todo lo que se necesita es:

    • Pertenencia al rol serveradmin.
    • Permisos de ámbito de servidor ALTER ANY LOGIN, CREATE ANY DATABASE y VIEW ANY DEFINITION.
    • Permiso CONTROL en la base de datos principal.
      La pertenencia al rol de servidor sysadmin concede todas estas pertenencias y permisos. Es la manera más fácil de asegurarse de que la configuración se realiza correctamente. Si es necesario, puede revocar estas pertenencias y permisos después de la instalación.
  4. Para admitir la instalación y configuración de la extensión search, debe proporcionar un nombre de usuario y una contraseña. La instalación y configuración de Search admite características de búsqueda de código, elemento de trabajo y wiki. Para obtener más información, vea Configurar la búsqueda.

    Nota

    La búsqueda también requiere Oracle Server JRE 8 (Actualización 60 o posterior). Para descargar e instalar o actualizar a la versión más reciente, acepte el Contrato de licencia de código binario de Oracle para el servidor JRE y seleccione Configurar. Tenga en cuenta que esto establecerá JAVA_HOME variable de entorno para que apunte al directorio de instalación de Java y que Server JRE no proporciona actualizaciones automáticas.

  5. Al configurar el nivel de aplicación, tiene la opción de configuración del sitio web. Revise la configuración del sitio web para comprender las opciones y los requisitos.

Instalaciones compatibles

La característica de instalación desatendida admite todos los mismos tipos de instalación que el Asistente para configuración y contiene campos para el mismo conjunto de parámetros de configuración. En su mayor parte, el nombre de cada tipo de configuración para la instalación desatendida refleja el nombre en el Asistente.

Esta es una lista de nombres y descripciones de los tipos de configuraciones desatendidas:

InstallType Descripción
NewServerBasic Configura los servicios de desarrollo esenciales para Azure DevOps Server. Esto incluye Azure Boards (seguimiento de trabajo) Azure Repos (control de código fuente), Azure Pipelines (compilación y versión) y, opcionalmente, Buscar.
NewServerAdvanced Configura los servicios de desarrollo esenciales y permite la configuración opcional de la integración con Reporting Services.
Actualizar Actualiza Azure DevOps Server a la versión actual desde una versión anterior compatible.
PreProductionUpgrade Pruebe la actualización en una implementación de Azure DevOps Server existente en un entorno de preproducción. Esto se hace normalmente mediante bases de datos restauradas a partir de copias de seguridad de producción. Este escenario incluye pasos adicionales para asegurarse de que la nueva implementación no interfiera con la implementación de producción.
ApplicationTierOnlyBasic Configure un nuevo nivel de aplicación mediante la configuración existente de la base de datos de configuración proporcionada. Esta opción permite que un nuevo nivel de aplicación se ejecute rápidamente mediante la configuración existente. Si desea poder cambiar la configuración existente, use el tipo Advanced ApplicationTierOnlyAdvanced en su lugar.
ApplicationTierOnlyAdvanced Configure un nuevo nivel de aplicación con control total sobre todas las opciones. La configuración tendrá como valor predeterminado los valores existentes de la base de datos de configuración proporcionada. Si desea conservar toda la configuración existente, use el tipo ApplicationTierOnlyBasic en su lugar.
Clonar Configure una nueva Azure DevOps Server que sea un clon de una implementación existente. Esto suele hacerse mediante bases de datos restauradas a partir de copias de seguridad de producción para crear un entorno donde se puedan probar los cambios de configuración, las extensiones y otras modificaciones. Este escenario incluye pasos adicionales para asegurarse de que la nueva implementación no interferirá con la implementación de producción.
Proxy Configura un servicio de proxy de control de versiones.

Importante

Antes de ejecutar la configuración, debe asegurarse de que tiene una copia de seguridad actual de las bases de datos y, a continuación, invalidar "ConfirmBackup" para que "ConfirmBackup=True". De lo contrario, la configuración no se ejecutará.

Escenarios no admitidos

La instalación desatendida solo está pensada para su uso en escenarios locales. La instalación desatendida no admite los siguientes escenarios:

  • Aunque el Asistente para configuración puede instalar instancias de compilación y proxy que apunten a bases de datos de Azure, esta funcionalidad no se implementa para la línea de comandos (no hay ningún lugar para proporcionar la información de la cuenta de Azure Cloud Storage).
  • La instalación desatendida está disponible para Azure DevOps Server Express; sin embargo, solo los tipos de configuración "build" y "basic" (donde "SqlInstance=SqlExpress") se ejecutarán correctamente. La instalación desatendida se bloqueará en los tipos de configuración que no se pueden instalar en la SKU de Express, como "spinstall", "spextensions" y "proxy", y se producen errores para los tipos de configuración "atonly" y "Standard", ya que Azure DevOps Server Express solo es compatible con SQL Express.
  • Actualmente no se admite la utilización de archivos de configuración desatendidos entre máquinas porque los archivos de configuración usan el nombre del equipo en determinados valores de parámetro predeterminados. Tenemos previsto mejorar esta funcionalidad en el futuro. Mientras tanto, los usuarios pueden escribir sus propios scripts para cambiar dinámicamente los nombres de las máquinas en su archivo de configuración para satisfacer sus necesidades.

Descarga e instalación

  1. Descargue Azure DevOps Server a través de uno de los siguientes canales:

  2. Realice una instalación silenciosa.

    azuredevopsserver2019.1_rc1.exe /Silent
    

    O bien, instale la versión express de forma silenciosa.

    devopsexpress2019_rc1.exe /Silent
    

    El instalador copia los archivos en el equipo.

  3. Para comprobar la instalación, consulte la carpeta C:\Archivos de programa\Azure DevOps Server 2019.

    Carpetas de archivos de servidor instaladas

  4. Puede configurar la instalación eligiendo El Asistente para inicio o salir y configurar mediante la instalación desatendida.

En este momento, tiene los bits instalados en el equipo, pero Azure DevOps Server no está configurado. Para realizar una configuración desatendida, debe crear un archivo ini y, a continuación, configurar las máquinas con ese archivo ini.

Creación del archivo ini

La opción de comando /create genera un archivo de configuración que puede modificar o ejecutar para configurar una instancia de servidor.

Para empezar, abra un símbolo del sistema para ejecutarse como administrador y cambiar al directorio /Tools.

En este caso, ejecutamos el comando /create, especificando el tipo de instalación y el nombre del archivo que se creará.

C:\Program Files\Azure DevOps Server 2019\Tools>
tfsconfig unattend /create /type:NewServerBasic /unattendfile:basic.ini

Tras la finalización, abra el archivo .ini en un editor de texto. Parece similar a la que aparece a continuación. El archivo de basic.ini generado automáticamente y totalmente comentado especifica para realizar las siguientes tareas:

  • Scenario=NewServerBasic
  • InstallSqlExpress=False
  • SqlInstance=MININT-O0VPFCK\SqlExpress
  • UseExistingEmptyDatabase=False
  • CreateConfigurationDatabase=True
  • StartTrial=False
  • DatabaseLabel=
  • ServiceAccountName=NT AUTHORITY\NETWORK SERVICE
  • LCID=1033
  • WebSiteVDirName=
  • SiteBindings=http:*:80:
  • PublicUrl=http://minint-o0vpfck/
  • FileCacheFolder=C:\AzureDevOpsData\ApplicationTier _ fileCache
  • SmtpEmailEnabled=False
  • EnableSshService=True
  • SshPort=22
  • ConfigureSearch=False
  • InstallSearchService=True
  • CreateInitialCollection=True
  • CollectionName=DefaultCollection
  • CollectionDescription=
  • UseExistingEmptyCollectionDatabase=False
[Configuration]
Activity=Microsoft.TeamFoundation.Admin.ServerConfigurationActivity

Assembly=Microsoft.TeamFoundation.Admin, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

; You can submit information about your Azure DevOps Server configuration and administration experience to Microsoft.
SendFeedback=True

; One of the following configuration Scenarios:
; 
; NewServerBasic:               Configure a new server with only the essential services.
; NewServerAdvanced:            Configure a new server with essential and other optional features.
; NewServerAzure:               Configure a new server with Azure SQL integration.
; ProductionUpgrade:            Upgrade an existing production server.
; PreProductionUpgrade:         Perform a pre-production upgrade using backed up production databases.
; ApplicationTierOnlyBasic:     Basic application tier-only configuration using existing settings.
; ApplicationTierOnlyAdvanced:  Application tier-only configuration that allows full setting customization.
; Clone:                        Create a new deployment from an existing deployment.
; 
Scenario=NewServerBasic

; Whether SQL Express will be installed as part of configuration
InstallSqlExpress=False

; Provide the configured SQL instance in the form of Server,  ServerName\InstanceName or Server,Port
SqlInstance=MININT-O0VPFCK\SqlExpress

; You can elect to create an existing set of empty databases (Tfs_<label>Configuration, Tfs_<label>Warehouse and Tfs_<label>Analysis)
UseExistingEmptyDatabase=False

; Determines whether a configuration database will get created
CreateConfigurationDatabase=True

; Database label controls the names of the configuration databases.  Database name will be Tfs_<label>Configuration, Tfs_<label>Warehouse and Tfs_<label>Analysis
DatabaseLabel=

StartTrial=False

; Boolean to determine whether the account is a built-in account
IsServiceAccountBuiltIn=True

; Account that the Azure DevOps web site will run as.  On a domain joined machine, this can be a domain account or NT Authority\Network Service.  On a workgroup machine, it can be a local account or NT Authority\Local Service
ServiceAccountName=NT AUTHORITY\NETWORK SERVICE

; The LCID to use for this Azure DevOps Server installation.
LCID=1033

; The host name portion of the web site URL.  This is typically the machine name but can be customized for more advanced scenarios such as HTTPS or NLB
UrlHostNameAlias=MININT-O0VPFCK

; The web site virtual directory name can be either empty or up to 8 alphanumeric characters.
WebSiteVDirName=

; 
; SiteBindings is a semi-colon separated list of bindings, each of which consists
; of 4 or 6 parts (4 for http, 6 for https):
; 
; [http|https]:[ipaddress]:[port]:[host]:[certificateStore]:[certificateThumprint|"generate"]
; 
; Examples:
; http:*:80:
; 
; A single http binding on port 80, for all unassigned IP addresses, with no host header
; 
; https:*:443:contoso.com:My:generate
; 
; A single https binding on port 443, for all unassigned IP addresses, having a host header 'contoso.com',
; including a generated self-signed certificate that will be stored in the Personal store
; on the local machine.
; 
; http:*:80:;http:*:8082:
; 
; Two bindings separated by a semi-colon
; 
; https:*:443:contoso.com:My:‎169CE0BCCECBD854321A61670413F8000A798F31
; 
; A single https binding on port 443 with a certificate thumbprint.
; Azure DevOps will look for the thumbprint in the Personal store for the local
; machine.
; 
SiteBindings=http:*:80:

; The Public URL is the primary URL that users specify to connect to the system and is the URL used in the text of e-mail alerts.
PublicUrl=http://minint-o0vpfck/

; The Windows file system folder used by Azure DevOps Server to cache data.
FileCacheFolder=C:\AzureDevOpsData\ApplicationTier\_fileCache

; Determines if Email notifications will be enabled.
SmtpEmailEnabled=False

; Determines if SSH service will be enabled.
EnableSshService=True

; The port used by the SSH service.
SshPort=22

; Configure Search in Azure DevOps deployment.
ConfigureSearch=False

; You can select to install new search service or use an existing search service
InstallSearchService=True

; Determines whether an initial collection will be created.  This can be disabled for advanced scenarios such as different SQL instances by using the create collection wizard in the administration console after configuring the server.
CreateInitialCollection=True

; The name of the collection
CollectionName=DefaultCollection

; The description for the collection
CollectionDescription=

UseExistingEmptyCollectionDatabase=False


Ejecutar la configuración

Cuando se ejecuta una instalación desatendida, el proceso realiza las mismas comprobaciones de validación que el Asistente para configuración y, a continuación, configura la instancia Azure DevOps Server especificada en la máquina.

Puede ejecutar el comando /configure de una de estas dos maneras. La primera opción recomendada usa el archivo ini que creó en el paso anterior. La segunda opción especifica un tipo de instalación que se ejecutará y, a continuación, especifica entradas para invalidar los valores predeterminados inteligentes. Cada opción es mutuamente excluyente. No se puede especificar un archivo y un tipo.

Las dos formas básicas del comando /configure son:

Opción 1

tfsconfig unattend /configure /unattendfile:<file> [/inputs:<inputs>] [/verify] [/continue]

Opción 2

tfsconfig unattend /configure /type:<type> [/inputs:<inputs>] [/verify] [/continue]

Para obtener información sobre el uso de la sintaxis del comando desatendido tfsconfig, consulte Uso de TFSConfigpara administrar Azure DevOps local, Unattend .

Nota

Si decide ejecutar el comando /configure sin crear primero un archivo de configuración ini para administrar las entradas, se recomienda ejecutar /verify antes de continuar con la configuración completa.

Una vez completada la instalación, puede acceder a la Azure DevOps Server en:

http://<localhostname>:8080/tfs

O bien, para el servidor express en:

http://<localhostname>

Pasos siguientes