Eseguire un'installazione automatica

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

Con un'installazione automatica è possibile impostare tutti i parametri di configurazione per l'istanza di Azure DevOps Server in anticipo. Il comando tfsconfig unattend è particolarmente utile quando si ha familiarità con il processo di configurazione Azure DevOps Server e si distribuisce Azure DevOps in un ambiente di più computer.

Ad esempio, molti sistemi aziendali su larga scala dispongono di diversi server designati per le compilazioni. L'installazione automatica consente a un amministratore di avviare rapidamente il processo di installazione di Team Build in questi computer senza dover supervisionare ognuno in modo indipendente. Inoltre, poiché la configurazione per ogni server di compilazione probabilmente sarà quasi o completamente identica, dovrebbe essere facile impostare rapidamente i parametri di configurazione di ogni computer.

Importante

In questo articolo viene descritto l'utilizzo del comando tfsconfig unattend per eseguire un'installazione automatica in Azure DevOps Server 2019. Anche se i passaggi sono simili alle versioni precedenti di Team Foundation Server, la sintassi per il comando tfsconfig unattend è stata modificata . Per informazioni dettagliate, selezionare la versione dell'articolo desiderata da TFSConfig, Unattend.

Usare il comando unattend per eseguire i tipi di installazioni seguenti:

  • Nuovo server singolo o installazione multi-server
  • Aggiornamento
  • Aggiornamento pre-produzione
  • Configurare un nuovo livello applicazione
  • Clonare una distribuzione esistente
  • Configurare un server proxy di controllo della versione

Per informazioni sull'utilizzo della sintassi del comando unattend tfsconfig , vedere Usare TFSConfig per gestire Azure DevOps locale, Unattend.

Prerequisiti

  1. Preparare un singolo computer che soddisfi i requisiti di sistema.

  2. Se non si prevede di usare SQL Server Express, configurare una versione supportata di SQL Server. Quando si configura SQL Server per Azure DevOps in locale, installare almeno il motore di database e Full-Text e le opzioni di estrazione semantica per le funzionalità di ricerca.

    È consigliabile usare SQL Server Express solo per le distribuzioni personali o di valutazione. Le copie a pagamento di Azure DevOps in locale includono una licenza di SQL Server Standard. Per altre informazioni, vedere prezzi Azure DevOps Server. Se si usa la licenza inclusa, è possibile usarla solo per i database creati con tali prodotti.

  3. L'account usato per configurare l'installazione deve essere membro del ruolo del server sysadmin in SQL Server.

    Nota

    L'installazione di Azure DevOps in locale comporta un set di operazioni che richiedono un livello elevato di privilegi. Queste operazioni includono la creazione di database, il provisioning degli account di accesso per gli account del servizio e altro ancora. Tecnicamente, tutto ciò che è necessario è:

    • Appartenenza al ruolo serveradmin.
    • ALTER ANY LOGIN, CREATE ANY DATABASE e VIEW ANY DEFINITION server-scoped permissions .ALTER ANY LOGIN, CREATE ANY DATABASE e VIEW ANY DEFINITION server-scoped permissions.
    • Autorizzazione CONTROL per il database master
      L'appartenenza al ruolo del server sysadmin conferisce tutte queste appartenenze e autorizzazioni. È il modo più semplice per garantire che la configurazione abbia esito positivo. Se necessario, è possibile revocare queste appartenenze e autorizzazioni dopo l'installazione.
  4. Per supportare l'installazione e la configurazione dell'estensione Di ricerca , è necessario specificare un nome utente e una password. L'installazione e la configurazione della ricerca supporta le funzionalità di ricerca code, elemento di lavoro e wiki. Per altre informazioni, vedere Configurare la ricerca.

    Nota

    La ricerca richiede anche Oracle Server JRE 8 (aggiornamento 60 o versione successiva). È possibile scaricare e installare o aggiornare la versione più recente accettando il Contratto di licenza del codice binario Oracle per Server JRE e selezionando Configura. Si noti che verrà impostata la variabile di ambiente JAVA_HOME per puntare alla directory di installazione Java e che Server JRE non fornisce aggiornamenti automatici.

  5. Quando si configura il livello applicazione si dispone di una scelta delle impostazioni del sito Web. Esaminare le impostazioni del sito Web per comprendere le scelte e i requisiti.

Installazioni supportate

La funzionalità di installazione automatica supporta tutti gli stessi tipi di installazione supportati dalla Configurazione guidata e contiene campi per lo stesso set di parametri di configurazione. Per la maggior parte, il nome di ogni tipo di configurazione per l'installazione automatica riflette il nome nella Procedura guidata.

Ecco un elenco di nomi e descrizioni dei tipi di configurazioni automatiche:

InstallType Descrizione
NewServerBasic Configura i servizi di sviluppo essenziali per Azure DevOps Server. Ciò include Azure Boards (rilevamento lavoro) Azure Repos (controllo del codice sorgente), Azure Pipelines (compilazione e versione) e facoltativamente Ricerca.
NewServerAdvanced Configura i servizi di sviluppo essenziali e consente la configurazione facoltativa dell'integrazione con Reporting Services.
Aggiornamento Aggiorna Azure DevOps Server alla versione corrente da una versione precedente supportata.
PreProductionUpgrade Testare l'aggiornamento in una distribuzione di Azure DevOps Server esistente in un ambiente di pre-produzione. Questa operazione viene in genere eseguita usando i database ripristinati dai backup di produzione. Questo scenario include passaggi aggiuntivi per assicurarsi che la nuova distribuzione non interferisca con la distribuzione di produzione.
ApplicationTierOnlyBasic Configurare un nuovo livello applicazione usando le impostazioni esistenti dal database di configurazione fornito. Questa opzione consente di ottenere un nuovo livello applicazione e di eseguire rapidamente le impostazioni esistenti. Se si vuole modificare le impostazioni esistenti, usare invece il tipo Advanced ApplicationTierOnlyAdvanced.
ApplicationTierOnlyAdvanced Configurare un nuovo livello applicazione con controllo completo su tutte le impostazioni. Le impostazioni verranno predefinite per i valori esistenti dal database di configurazione fornito. Se si desidera mantenere tutte le impostazioni esistenti, usare invece il tipo ApplicationTierOnlyBasic.
Clone Configurare una nuova distribuzione Azure DevOps Server che è un clone di una distribuzione esistente. Questa operazione viene in genere eseguita usando i database ripristinati dai backup di produzione, per creare un ambiente in cui è possibile testare le modifiche di configurazione, le estensioni e altre modifiche. Questo scenario include passaggi aggiuntivi per assicurarsi che la nuova distribuzione non interferisca con la distribuzione di produzione.
Proxy Configura un servizio proxy di controllo della versione.

Importante

Prima di eseguire la configurazione, è necessario assicurarsi di avere un backup corrente dei database e quindi eseguire l'override di "ConfirmBackup" in modo che "ConfirmBackup=True". In caso contrario, la configurazione non verrà eseguita.

Scenari non supportati

L'installazione automatica è destinata solo all'uso negli scenari locali. L'installazione automatica non supporta gli scenari seguenti:

  • Sebbene la configurazione guidata possa installare istanze di compilazione e proxy che puntano ai database di Azure, questa funzionalità non viene implementata per la riga di comando (non è possibile fornire le informazioni sull'account di Archiviazione cloud di Azure).
  • L'installazione automatica è disponibile per Azure DevOps Server Express. Tuttavia, solo i tipi di configurazione 'build' e 'basic' (dove 'SqlInstance=SqlExpress') avranno esito positivo. L'installazione automatica blocca i tipi di configurazione che non possono essere installati nello SKU Express, ad esempio "spinstall", "spextensions" e "proxy" e genererà errori per i tipi di configurazione "atonly" e "Standard", poiché Azure DevOps Server Express è compatibile solo con SQL Express.
  • Il riutilizzo di file di configurazione automatica tra computer non è attualmente supportato perché i file di configurazione usano il nome del computer in determinati valori di parametro predefiniti. Abbiamo intenzione di migliorare questa funzionalità in futuro. Nel frattempo, gli utenti possono scrivere i propri script per disattivare dinamicamente i nomi del computer nel file di configurazione in base alle proprie esigenze.

Scaricare e installare

  1. Scaricare Azure DevOps Server tramite uno dei canali seguenti:

  2. Eseguire un'installazione invisibile all'utente.

     azuredevopsserver2019.1_rc1.exe /Silent
    

    In alternativa, installare in modo automatico la versione express.

     devopsexpress2019_rc1.exe /Silent
    

    Il programma di installazione copia i file nel computer.

  3. Verificare l'installazione esaminando C:\Programmi\Azure DevOps Server cartella 2019.

    Cartelle di file del server installate

  4. È possibile configurare l'installazione scegliendo Avvia procedura guidata oppure uscire e configurare usando l'installazione automatica.

A questo punto, nel computer sono installati i bit, ma Azure DevOps Server non è configurato. Per eseguire una configurazione automatica, è necessario creare un file ini e quindi configurare i computer usando tale file ini.

Creare il file ini

L'opzione di comando /create genera un file di configurazione che è quindi possibile modificare o eseguire per configurare un'istanza del server.

Per iniziare, aprire un prompt dei comandi per l'esecuzione come amministratore e passare alla directory /Tools

In questo caso viene eseguito il comando /create , specificando il tipo di installazione e il nome del file da creare.

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

Al termine, aprire il file .ini in un editor di testo. Appare simile a quello elencato di seguito. Il file di basic.ini generato automaticamente, completamente commentato, specifica per eseguire le attività seguenti:

  • 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


Eseguire la configurazione

Quando si esegue un'installazione automatica, il processo esegue gli stessi controlli di convalida della Configurazione guidata e quindi configura l'istanza di Azure DevOps Server specificata nel computer.

È possibile eseguire il comando /configure in uno dei due modi. La prima opzione consigliata usa il file ini creato nel passaggio precedente. La seconda opzione specifica un tipo di installazione da eseguire e quindi specifica gli input per eseguire l'override delle impostazioni predefinite intelligenti. Ogni opzione si escludono a vicenda. Non è possibile specificare sia un file che un tipo.

Le due forme di base del comando /configure sono:

Opzione 1

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

Opzione 2

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

Per informazioni sull'utilizzo della sintassi del comando di installazione automatica tfsconfig , vedere Usare TFSConfig per gestire Azure DevOps in locale, Unattend.

Nota

Se si sceglie di eseguire il comando /configure senza prima creare un file di configurazione ini per gestire gli input, è consigliabile eseguire /verify prima di procedere con la configurazione completa.

Al termine dell'installazione, è possibile accedere al Azure DevOps Server all'indirizzo:

http://<localhostname>:8080/tfs

In alternativa, per il server Express in:

http://<localhostname>

Passaggi successivi