Chapters
📘 Chapter #1
📗 Chapter #1-1 継続的インテグレーション(CI)構築
📗 Chapter #1-2 継続的インテグレーション(CI)手順
📘 Chapter #2
📗 Chapter #2-1 VB6で使用する 環境設定
📗 Chapter #2-2 VB6で使用する プロジェクトの追加
📘 Chapter #A
📗 Chapter #A-1 バージョンアップ TFS 2018 Update 1 → Update 3、検索サービスの分割
📗 Chapter #A-2 バージョンアップ 2019→2019 Update1
TL;DR
- Team Foundation Server 2018 Update 1のシングルサーバー構成から、Team Foundation Server 2018 Update 3.2のマルチサーバー構成へのアップグレード、設定変更に関する手順について記載する
アップグレードする理由
Team Foundation Server 2018 Update 2以降では、Wiki検索機能など大幅に機能が向上している。
しかし、それに伴いElastic Searchの実行にリソースを使用するため、マルチサーバーの環境を使用することが推奨されている。
Requirements for Azure DevOps on-premises
実際、以前2015→2018にアップグレードを試みた際には、シングルサーバー構成ではパフォーマンスが遅すぎたため、Update 1でアップグレードを止めていた。
ハマるポイント
インストール手順の中では、以下がはまるポイントとしてあげられる
- サーバー1では、途中でインストール画面のまま中断して、サーバー2のインストールを行う手順となる(後から変更も可能、との記載あり)
- サーバー2でのJREのインストール先のパスは、空白を含まないこと(Elasticsearchのインストールが先に進まない)
環境
移行前
サーバー1:アップグレード対象サーバー
- マシン名 server1
- Windows Server 2012 R2
- SQL Server 2016 SP2 X64
- Team Foundation Server 2018 Update 1
- ElasticSearch 同一サーバー
- Java SE Runtime Environment 8u201
- 仮想コア 2
- メモリ 12GB
サーバー2:Elastic Search 新規インストールサーバー
- マシン名 server2
- Windows Server 2016
- 仮想コア 1
- メモリ 8GB
環境(移行後)
サーバー1:アップグレード対象サーバー
- マシン名 server1
- Windows Server 2012 R2
- SQL Server 2016 SP2 X64
- Team Foundation Server 2018 Update 3.2
- ElasticSearch
同一サーバー停止 - Java SE Runtime Environment 8u201
- 仮想コア 2
- メモリ 12GB
サーバー2:Elastic Search 新規インストールサーバー
- マシン名 server2
- Windows Server 2016
- ElasticSearch
- Java SE Runtime Environment 8u201
- 仮想コア 1
- メモリ 8GB
インストール手順
サーバー1での作業(1/2)
-
アップグレード前にバックアップ(仮想基盤のスナップショットを作成)
-
Team Foundation Server 2018 Update 3.2のインストーラーを実行
サーバー2用のファイルの収集
-
前項で表示したサーバー1の次のフォルダをコピー
C:\Program Files\Microsoft Team Foundation Server 2018\Search\zip
同梱のReadme.txtをよく確認すること
-
Java SE Runtime Environment 8u201 のダウンロード
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
jre-8u201-windows-x64.exe
サーバー2での作業
-
前項のインストーラーで、Java SE Runtime Environment 8u201のインストール。
-
環境変数
JAVA_HOME
を設定C:\app\Java\jre1.8.0_201
-
前項のElastic Searchのフォルダを
C:\Program Files\Microsoft Team Foundation Server 2018\Search\zip
をサーバー2のローカルにコピー(C:\tempなど) -
C:\ES
、C:\ESDATA
を作成 -
PowerShellで以下のコマンドを実行
cd (Configure-TFSSearch.ps1のローカルコピーしたフォルダ) .\Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath C:\ES -TFSSearchIndexPath C:\ESDATA -User elasticuser -Password (サーバー1からElasticSearchへの接続用のパスワード)
**
.\
**がないと実行できないので、注意 -
インストール完了
実行結果の最後Your Search service URL is: http://server2:9200 Point your TFS instance to this Search Service instance via the Search Configuration wizard.
トラブルシューティング
JREがインストールされていない、またはJAVA_HOMEが設定されていない場合
[ERROR]: System environment variable JAVA_HOME is not set correctly.
[ERROR]:
Search requires Oracle Server JRE 8 (Update 60 or higher), and a suitable version was not detected or is not
correctly configured on this computer. If Server JRE is installed, see Java installation notes to resolve this and then
rerun this installer.
JREのインストール先にスペースを含んでいる場合
Removing environment variable ES_JAVA_OPTS
Elasticsearch output: elasticsearch-service.bat : 'Files' は、内部コマンドまたは外部コマンド、
発生場所 C:\temp\zip\modules\ElasticsearchHelper.psm1:244 文字:15
+ $output = & $serviceBatPath install 2>&1 | Out-String
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ('Files' は、内部コマンドまたは外部コマンド、:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
操作可能なプログラムまたはバッチ ファイルとして認識されていません。