LoginSignup
1
0

More than 3 years have passed since last update.

Azure DevOps Server #A-1 バージョンアップ TFS 2018 Update 1 → Update 3、検索サービスの分割

Last updated at Posted at 2019-04-29

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)

  1. アップグレード前にバックアップ(仮想基盤のスナップショットを作成)

  2. Team Foundation Server 2018 Update 3.2のインストーラーを実行

    1. Webインストーラーを実行

      image.png
      image.png

    2. 画面に従いインストール

      image.png
      image.png
      image.png
      image.png
      image.png
      image.png

    3. 「検索構成の設定を指定します。」の画面を表示したまま一旦中断し、「検索サービスのパッケージ」のリンクをクリック

      image.png
      image.png

      C:\Program Files\Microsoft Team Foundation Server 2018\Search\zip
      

サーバー2用のファイルの収集

  1. 前項で表示したサーバー1の次のフォルダをコピー

    C:\Program Files\Microsoft Team Foundation Server 2018\Search\zip
    

    同梱のReadme.txtをよく確認すること

  2. Java SE Runtime Environment 8u201 のダウンロード

    https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

    jre-8u201-windows-x64.exe
    

サーバー2での作業

  1. 前項のインストーラーで、Java SE Runtime Environment 8u201のインストール。

    1. 「宛先フォルダ」にチェックして次へ

      image.png

    2. ライセンス確認画面で次へ(このバージョンならば、ライセンスに問題はない)

      image.png

    3. インストール先として、C:\app\Java\jre1.8.0_201を選択

      image.png

  2. 環境変数JAVA_HOMEを設定

    image.png

    C:\app\Java\jre1.8.0_201
    
  3. 前項のElastic SearchのフォルダをC:\Program Files\Microsoft Team Foundation Server 2018\Search\zipをサーバー2のローカルにコピー(C:\tempなど)

  4. C:\ESC:\ESDATAを作成

  5. PowerShellで以下のコマンドを実行

    cd (Configure-TFSSearch.ps1のローカルコピーしたフォルダ)
    .\Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath C:\ES -TFSSearchIndexPath C:\ESDATA -User elasticuser -Password (サーバー1からElasticSearchへの接続用のパスワード)
    

    .\がないと実行できないので、注意

  6. インストール完了

    実行結果の最後
    Your Search service URL is:
    http://server2:9200
    
    Point your TFS instance to this Search Service instance via the Search Configuration wizard.
    

    image.png

トラブルシューティング

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

操作可能なプログラムまたはバッチ ファイルとして認識されていません。

サーバー1での作業(2/2)

  1. 「検索構成の設定を指定します。」で検索サービスの接続先にserver2のElasticSearchのURLを設定し、設定したIDとパスワードを指定

    image.png
    image.png

  2. 以降は、画面に従いインストール

  3. Wiki検索等が正常に行えることを確認したら、サーバー1のElasticSearchサービスを停止、および無効として、再度動作確認

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0