Realizar una instalación desatendida

| de Azure DevOps Server 2022 Azure DevOps Server 2020 | Azure DevOps Server 2019

Con una instalación desatendida, puede preestablecer todos los parámetros de configuración de la instancia de Azure DevOps Server de antemano. El comando tfsconfig desatendido 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 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 uno de ellos de forma independiente. Además, dado que la configuración de cada servidor de compilación probablemente sea casi o completamente idéntica, debe 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 desea de TFSConfig, Desatendida.

Use el comando desatendida 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 sintaxis del comando desatendido tfsconfig , consulte Uso de TFSConfig para 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 en el entorno local, instale como mínimo el motor de base de datos y las Full-Text y las extracciones semánticas para las características de búsqueda.

    Se recomienda usar SQL Server Express solo para implementaciones personales o de evaluación. Las copias de pago de Azure DevOps locales incluyen una licencia de SQL Server Standard. Para obtener más información, consulte precios de Azure DevOps Server. 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 instalación de 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 necesario es:

    • Pertenencia al rol serveradmin.
    • PERMISOS CON ámbito de servidor ALTER ANY LOGIN, CREATE ANY DATABASE y VIEW ANY DEFINITION.
    • Permiso CONTROL en la base de datos maestra.
      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 realice 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, consulte Configuración de la búsqueda.

    Nota

    La búsqueda también requiere Oracle Server JRE 8 (Actualización 60 o posterior). Puede descargar e instalar o actualizar a la versión más reciente aceptando el Contrato de licencia de código binario de Oracle para JRE del servidor y seleccionando Configurar. Tenga en cuenta que esto establecerá la variable de entorno JAVA_HOME para que apunte al directorio de instalación de Java y que el JRE del servidor 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 admite 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 del 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 de 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. Normalmente, esto se realiza 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 interferirá 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 le permite poner en marcha rápidamente un nuevo nivel de aplicación mediante la configuración existente. Si desea 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 implementación de Azure DevOps Server que sea un clon de una implementación existente. Normalmente, esto se realiza mediante bases de datos restauradas a partir de copias de seguridad de producción, para crear un entorno en el que 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 apuntan 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 realizarán correctamente. La instalación desatendida bloqueará los tipos de configuración que no se pueden instalar en la SKU express, como "spinstall", "spextensions" y "proxy", y generará 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 reutilización de archivos de configuración desatendidos entre máquinas porque los archivos de configuración usan el nombre de la máquina en determinados valores de parámetro predeterminados. Tenemos planes para mejorar esta funcionalidad en el futuro. Mientras tanto, los usuarios pueden escribir sus propios scripts para cambiar dinámicamente los nombres de máquina en su archivo de configuración para satisfacer sus necesidades.

Descargar e instalar

  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 silenciosamente la versión rápida.

     devopsexpress2019_rc1.exe /Silent
    

    El instalador copia los archivos en la máquina.

  3. Compruebe la instalación examinando la carpeta C:\Archivos de programa\Azure DevOps Server 2019.

    Carpetas de archivos de servidor instaladas

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

En este momento, tiene instalados los bits en la máquina, 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 que se ejecute como administrador y cambie al directorio /Tools .

Aquí, ejecutamos el comando /create , especificando el tipo de instalación y el nombre del archivo que se va a crear.

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

Al finalizar, abra el archivo .ini en un editor de texto. Parece similar al que aparece a continuación. El archivo de basic.ini generado automáticamente y con comentarios completos 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

Al ejecutar 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 de Azure DevOps Server especificada en el equipo.

Puede ejecutar el comando /configure de dos maneras. La primera opción y recomendada usa el archivo ini que creó en el paso anterior. La segunda opción especifica un tipo de instalación que se va a ejecutar y, a continuación, especifica las 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 sintaxis del comando desatendido tfsconfig , consulte Uso de TFSConfig para 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 al Azure DevOps Server en:

http://<localhostname>:8080/tfs

O bien, para el servidor express en:

http://<localhostname>

Pasos siguientes