执行无人参与安装

Azure DevOps Server 2020 |Azure DevOps Server 2019

备注

Azure DevOps Server 以前名为 Visual Studio Team Foundation Server。

使用无人参与安装,可以预先预设Azure DevOps Server实例的所有配置参数。 如果 熟悉配置过程, 并且正在将 Azure DevOps Server部署到多台计算机环境中,tfsconfig 无人参与命令Azure DevOps特别有用。

例如,许多大型企业系统有几个服务器被指定为生成。 无人参与安装允许管理员在这些计算机上快速启动 Team Build 安装过程,而无需单独监督每个计算机。 此外,由于每个生成服务器的配置可能几乎或完全完全相同,因此应可轻松快速设置每台计算机的配置参数。

重要

本文介绍如何使用 tfsconfig 无人 参与命令在 2019 Azure DevOps Server安装。 虽然这些步骤与早期版本的 Team Foundation Server类似,但 tfsconfig 无人参与命令 的语法已更改。 有关详细信息,请从 TFSConfig、无人参与中选择想要的文章版本

使用 无人参与 命令执行以下类型的安装:

  • 新的单一服务器或多服务器安装
  • 升级
  • 预生产升级
  • 配置新的应用程序层
  • 克隆现有部署
  • 配置版本控制代理服务器

有关 tfsconfig 无人 参与命令的语法用法的信息,请参阅使用 TFSConfig 在本地Azure DevOps,无人参与

先决条件

  1. 准备满足系统要求的单个 计算机

  2. 如果计划使用 SQL Server Express,请设置支持的版本SQL Server。 在本地为 SQL Server设置Azure DevOps时,至少安装搜索数据库引擎Full-Text和语义提取。

    建议仅将SQL Server Express或评估部署使用。 本地的付费Azure DevOps包括一个SQL Server Standard许可证。 有关详细信息,请参阅定价Azure DevOps Server定价。 如果使用包含的许可证,则只能将许可证用于使用这些产品创建的数据库。

  3. 用于配置安装的帐户必须是中sysadmin 服务器角色SQL Server。

    备注

    在本地Azure DevOps需要高特权的一组操作。 这些操作包括创建数据库、预配服务帐户的登录名等。 从技术上说,所需的全部是:

    • serveradmin 角色中的成员身份。
    • ALTER ANY LOGIN、CREATE ANY DATABASE 和 VIEW ANY DEFINITION 服务器范围的权限。
    • master 数据库上的 CONTROL 权限。
      sysadmin 服务器角色中的成员身份授予所有这些成员身份和权限。 这是确保配置成功的最简单方法。 如有必要,可以在安装后撤销这些成员身份和权限。
  4. 若要支持搜索扩展的 安装和 配置,需要提供用户名和密码。 安装和配置 搜索支持代码 、工作项和 Wiki 搜索功能。 有关详细信息,请参阅配置 搜索

    备注

    搜索还需要 Oracle Server JRE 8 (Update 60 或更高版本) 。 可以通过接受适用于服务器 JRE 的 Oracle 二进制代码许可协议并选择"配置"来下载并安装或更新到 最新版本。 请注意,这会将 JAVA_HOME 变量设置为指向 Java 安装目录,并且服务器 JRE 不提供自动更新。

  5. 配置应用程序层时,可以选择网站设置。 查看 网站设置 以了解选择和要求。

支持的安装

无人参与安装功能支持配置向导支持的所有相同安装类型,并且包含同一组配置参数的字段。 大多数情况下,无人参与安装的每个配置类型的名称与向导中的名称相同。

下面是无人参与配置类型的名称和说明列表:

InstallType 说明
NewServerBasic 为应用程序配置Azure DevOps Server。 这包括Azure Boards (源代码) Azure Repos (跟踪) 、Azure Pipelines (生成和) 以及可选的搜索。
NewServerAdvanced 配置基本开发服务并允许可选配置与 Reporting Services。
升级 从Azure DevOps Server版本升级到当前版本。
PreProductionUpgrade 在预生产环境中Azure DevOps Server现有部署上测试升级。 这通常使用从生产备份还原的数据库完成。 此方案包括其他步骤,以确保新部署不会干扰生产部署。
ApplicationTierOnlyBasic 使用提供的配置数据库中的现有设置配置新的应用程序层。 使用此选项,可以使用现有设置快速启动和运行新的应用程序层。 如果希望能够更改现有设置,请改为使用高级 ApplicationTierOnlyAdvanced 类型。
ApplicationTierOnlyAdvanced 配置可完全控制所有设置的新应用程序层。 设置默认为所提供的配置数据库中的现有值。 如果要保留所有现有设置,请改为使用 ApplicationTierOnlyBasic 类型。
克隆 配置新的Azure DevOps Server部署,该部署是现有部署的克隆。 这通常通过使用从生产备份还原的数据库完成,以创建一个可在其中测试配置更改、扩展和其他修改的环境。 此方案包括其他步骤,以确保新部署不会干扰生产部署。
代理 配置版本控制代理服务。

重要

在运行配置之前,需要确保具有数据库的当前备份,然后重写"ConfirmBackup",使"ConfirmBackup=True"。 否则,配置不会运行。

不支持的方案

无人参与安装仅用于本地方案。 无人参与安装不支持以下方案:

  • 虽然配置向导可以安装指向 Azure 数据库的生成和代理实例,但此功能未针对命令行实现 (因此没有位置提供 Azure Cloud 存储 帐户) 。
  • 无人参与安装适用于 Azure DevOps Server Express;但是,只有"build"和"basic" (其中"SqlInstance=SqlExpress") 配置类型将成功。 无人参与安装将阻止无法安装在 Express SKU 上的配置类型(如"spinstall"、"spextensions"和"proxy")上,并且将引发"atonly"和"Standard"配置类型的错误,因为 Azure DevOps Server Express 仅与 SQL Express 兼容。
  • 当前不支持跨计算机重新使用无人参与的配置文件,因为配置文件在某些默认参数值中使用计算机名称。 我们计划在将来改进此功能。 在此期间,用户可以编写自己的脚本,以动态切换其配置文件中的计算机名称以满足其需求。

下载并安装

  1. 通过以下通道之一下载 Azure DevOps Server:

  2. 执行无提示安装。

    azuredevopsserver2019.1_rc1.exe /Silent
    

    或者,以无提示方式安装快速版本。

    devopsexpress2019_rc1.exe /Silent
    

    安装程序将文件复制到计算机上。

  3. 查看 C:\Program Files\Azure DevOps Server 2019 文件夹来验证安装。

    已安装的服务器文件夹

  4. 可以通过选择"启动向导"来配置 安装,或者使用无人参与安装退出和配置。

此时,你已在你的计算机上安装了位,Azure DevOps Server未配置这些位。 若要执行无人参与的配置,需要创建一个 ini 文件,然后使用该 ini (配置) 虚拟机。

创建 ini 文件

/create 命令选项会生成配置文件,然后你可以修改或运行该文件来配置服务器实例。

若要开始,请打开命令提示符以管理员角色运行,并更改为 /Tools 目录

在这里,我们将运行 /create 命令,指定要创建的文件的安装类型和名称。

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

完成后,在.ini打开文件。 它看起来类似于下一个列出的项。 自动生成的完全注释的 basic.ini 指定执行以下任务:

  • 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


运行配置

运行无人参与安装时,该过程将执行与配置向导相同的验证检查,然后配置Azure DevOps Server实例。

可以通过以下两种方式之一运行 /configure 命令。 第一个推荐选项使用在上一步中创建的 ini 文件。 第二个选项指定要运行的安装类型,然后指定用于替代智能默认值的输入。 每个选项互斥。 不能同时指定文件和类型。

/configure 命令的两 种基本 形式是:

选项 1

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

方法 2

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

有关 tfsconfig 无人 参与命令的语法用法的信息,请参阅使用 TFSConfig Azure DevOps本地无人参与 。

备注

如果选择运行 /configure 命令而不首先创建 ini 配置文件来管理输入,建议在继续完整配置之前运行 /verify。

安装完成后,可以访问以下Azure DevOps Server:

http://<localhostname>:8080/tfs

或者,对于 express 服务器,位于:

http://<localhostname>

后续步骤