무인 설치 수행

Azure DevOps Server 2020년 | Azure DevOps Server 2019

참고

Azure DevOps Server의 이전 이름은 Visual Studio Team Foundation Server였습니다.

무인 설치를 사용하면 Azure DevOps Server 인스턴스에 대한 모든 구성 매개 변수를 미리 설정하면 됩니다. tfsconfig 무인 명령은 Azure DevOps Server 구성 프로세스에 익숙하고 여러 컴퓨터 환경에 Azure DevOps 배포하는 경우에 특히 유용합니다.

예를 들어 많은 대규모 엔터프라이즈 시스템에는 빌드하도록 지정된 여러 서버가 있습니다. 무인 설치를 사용하면 관리자가 각 컴퓨터를 독립적으로 감독하지 않고도 이러한 컴퓨터에서 Team Build 설치 프로세스를 신속하게 시작할 수 있습니다. 또한 각 빌드 서버에 대한 구성은 거의 또는 완전히 동일할 수 있기 때문에 각 컴퓨터의 구성 매개 변수를 빠르게 쉽게 설정할 수 있습니다.

중요

이 문서에서는 tfsconfig 무인 명령을 사용하여 Azure DevOps Server 2019에서 무인 설치를 수행하는 방법을 설명합니다. 이 단계는 이전 버전의 Team Foundation Server 유사하지만 tfsconfig 무인 명령의 구문이 변경되었습니다. 자세한 내용은 TFSConfig, 무인에서원하는 문서 버전을 선택합니다.

무인 명령을 사용하여 다음 유형의 설치를 수행합니다.

  • 새 단일 서버 또는 다중 서버 설치
  • 업그레이드
  • 사전 프로덕션 업그레이드
  • 새 애플리케이션 계층 구성
  • 기존 배포 복제
  • 버전 제어 프록시 서버 구성

tfsconfig 무인 명령의 구문 사용에 대한 자세한 내용은 TFSConfig를 사용하여 온-프레미스 Azure DevOps 관리, 무인을참조하세요.

사전 준비 사항

  1. 시스템 요구 사항을 충족하는 단일 컴퓨터를 준비합니다.

  2. SQL Server Express 사용할 계획이 없는 경우 지원되는 버전의 SQL Server설정합니다. Azure DevOps 온-프레미스에 대한 SQL Server 설정하는 경우 최소한 검색 기능에 대한 데이터베이스 엔진 및 Full-Text 및 의미 체계 추출을 설치합니다.

    개인 또는 평가판 배포에만 SQL Server Express 사용하는 것이 좋습니다. Azure DevOps 온-프레미스의 유료 복사본에는 SQL Server Standard 라이선스가 포함됩니다. 자세한 내용은 Azure DevOps Server 가격 책정을 참조하세요. 포함된 라이선스를 사용하는 경우 해당 제품으로 만든 데이터베이스에만 사용할 수 있습니다.

  3. 설치를 구성하는 데 사용하는 계정은 SQL Server sysadmin 서버 역할의멤버여야 합니다.

    참고

    온-프레미스에 Azure DevOps 설치하려면 높은 수준의 권한이 필요한 일련의 작업이 필요합니다. 이러한 작업에는 데이터베이스 만들기, 서비스 계정에 대한 로그인 프로비전 등이 포함됩니다. 기술적으로 필요한 것은 다음과 같습니다.

    • serveradmin 역할의 멤버 자격.
    • ALTER ANY LOGIN, CREATE ANY DATABASE 및 VIEW ANY DEFINITION 서버 범위 사용 권한
    • master 데이터베이스에 대한 CONTROL 권한
      sysadmin 서버 역할의 멤버 자격은 이러한 모든 멤버 자격 및 권한을 부여합니다. 구성이 성공하도록 하는 가장 쉬운 방법입니다. 필요한 경우 설치 후 이러한 멤버 자격 및 사용 권한을 취소할 수 있습니다.
  4. 검색 확장의 설치 및 구성을 지원하려면 사용자 이름과 암호를 제공해야 합니다. 검색 설치 및 구성은 코드, 작업 항목 및 Wiki 검색 기능을 지원합니다. 자세한 내용은 검색 구성을 참조하세요.

    참고

    검색에는 Oracle Server JRE 8(업데이트 60 이상)도 필요합니다. 서버 JRE에 대한 Oracle 이진 코드 사용권 계약에 동의하고 구성을 선택하여 최신 버전을 다운로드하여 설치하거나 업데이트할 수 있습니다. 이렇게 하면 JAVA_HOME 환경 변수가 Java 설치 디렉터리를 가리키도록 설정되며 Server 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 배포를 구성합니다. 일반적으로 프로덕션 백업에서 복원된 데이터베이스를 사용하여 구성 변경, 확장 및 기타 수정 내용을 테스트할 수 있는 환경을 만듭니다. 이 시나리오에는 새 배포가 프로덕션 배포를 방해하지 않도록 하는 추가 단계가 포함되어 있습니다.
Proxy (프록시) 버전 제어 프록시 서비스를 구성합니다.

중요

구성을 실행하기 전에 데이터베이스의 현재 백업이 있는지 확인한 다음 'ConfirmBackup=True'가 되도록 'ConfirmBackup'을 재정의해야 합니다. 그렇지 않으면 구성이 실행되지 않습니다.

지원되지 않는 시나리오

무인 설치는 온-프레미스 시나리오에서만 사용할 수 있습니다. 무인 설치는 다음 시나리오를 지원하지 않습니다.

  • 구성 마법사는 Azure 데이터베이스를 가리키는 빌드 및 프록시 인스턴스를 설치할 수 있지만 이 기능은 명령줄에 대해 구현되지 않습니다(Azure Cloud Storage 계정 정보를 제공할 위치는 없음).
  • 무인 설치는 Azure DevOps Server Express에 사용할 수 있습니다. 그러나 'build' 및 'basic'(여기서 'SqlInstance=SqlExpress') 구성 형식만 성공합니다. 무인 설치는 Express SKU에 설치할 수 없는 구성 유형(예: 'spinstall', 'spextensions', 'proxy')에서 차단되며, Azure DevOps Server Express는 SQL Express와만 호환되므로 'atonly' 및 'Standard' 구성 유형에 대한 오류가 발생합니다.
  • 구성 파일은 특정 기본 매개 변수 값에 컴퓨터 이름을 사용하므로 컴퓨터 간에 무인 구성 파일을 다시 사용할 수 없습니다. 향후 이 기능을 개선할 계획입니다. 그 동안 사용자는 자신의 요구에 맞게 구성 파일에서 컴퓨터 이름을 동적으로 전환하는 자체 스크립트를 작성할 수 있습니다.

다운로드 및 설치

  1. 다음 채널 중 하나를 통해 Azure DevOps Server 다운로드합니다.

  2. 자동 설치를 수행합니다.

    azuredevopsserver2019.1_rc1.exe /Silent
    

    또는 Express 버전을 자동으로 설치합니다.

    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 파일은 다음 작업을 수행 하도록 지정 합니다.

  • 시나리오 = 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 관리를 참조 하세요.

참고

입력을 관리 하기 위해 먼저 ini 구성 파일을 만들지 않고 /configure 명령을 실행 하도록 선택 하는 경우 전체 구성을 진행 하기 전에 /verify 를 실행 하는 것이 좋습니다.

설치가 완료 되 면 다음 위치에서 Azure DevOps Server에 액세스할 수 있습니다.

http://<localhostname>:8080/tfs

또는 express 서버에 대해 다음을 수행 합니다.

http://<localhostname>

다음 단계