オンプレミスの Azure DevOps 用にハードウェア間を移動または複製する

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

Azure DevOps Server ソフトウェアのデプロイを移動または複製できます。 Azure DevOps Server を新しいハードウェア (復元ベースの移動と呼ばれる) に復元することで、あるマシンから別のマシンに移動します。 たとえば、容量を増やしたり、処理速度を向上させたりして、Azure DevOps Server をサーバーに移動できます。 新しいサーバーに移動しても、プロジェクト履歴は失われません。

Azure DevOps Server デプロイを複製するには、移動と同じ手順に加えて、いくつかの追加の手順を実行します。

元のハードウェアと Azure DevOps Server のデプロイの使用を中止する予定がある場合は、移動を実行します。 元の Azure DevOps Server インスタンスを引き続き使用する場合は、複製を実行します。

重要

場合によっては、Azure DevOps Server のデプロイのドメインとそのハードウェアを変更することが必要になる場合があります。 ドメインの変更は環境ベースの移動であり、2 つの移動の種類を組み合わせてはいけません。 最初にハードウェアの移動を完了してから、環境を変更します。

権限を確認します

Azure DevOps Server を正常に移動するには、両方のハードウェア セット (古いものと新しいハードウェア) の管理者である必要があります。 さらに、Azure DevOps Server の管理者である (または同等のアクセス許可を持っている) 必要があります。また、デプロイが依存するすべてのソフトウェア (SQL Server、レポート、および Project Server など、デプロイが相互運用できるその他のソフトウェア) も必要です。

次のグループのメンバーであることを確認します

  • サーバー: 管理者 (ローカル管理者グループまたはそれと同等)
  • Azure DevOps Server: Team Foundation 管理者と管理コンソール ユーザー
  • SQL Server: sysadmin

これらのグループの 1 つ以上のメンバーでない場合は、 アクセス許可を今すぐ取得します

データベースと暗号化キーをバックアップする

  1. Azure DevOps Server の管理コンソールを開き、 スケジュールされたバックアップ ページで完全バックアップを実行します。 バックアップでは、バックアップ計画でバックアップ用に構成したすべてのものがバックアップされますが、プランでスケジュールされた時刻に従ってではなく、すぐにバックアップされます。 デプロイでレポートが使用されている場合は、このバックアップ セットの一部として暗号化キーをバックアップできます。

    ジョブの完了中にウィンドウを閉じることができます

    (バックアップを構成していない場合は、完全バックアップを作成する前にプランを作成する必要があります)。

  2. バックアップが完了したら、ストレージ デバイスまたはネットワーク共有でバックアップが使用可能であり、新しいハードウェアからこのバックアップにアクセスできることを確認します。

新しいデータ層サーバーに SQL Server をインストールして構成する

  • 新しいサーバーに SQL Server をインストールし、動作していることを確認します。 以前の配置でレポートを使用していた場合は、レポート サービスコンポーネントと Analysis Services コンポーネントが含まれていることを確認してください。 以前に使用したのと同じバージョンとエディション (Service Pack および累積的な更新レベルを含む) をインストールする必要があります。

    SQL Server 2008 R2 のインストール - 機能

    別の方法として、一致するバージョンが既にインストールされているサーバー上に SQL Server のインスタンスを作成し、そのインスタンスに Azure DevOps Server データベースを復元できますが、復元後の構成が必要になります。

    SQL Server のインストールと構成のオプションの詳細については、 こちらを参照してください。

    SQL Server をインストールした後、配置にレポートが含まれている場合は、SQL Server Management Studio を開き、ReportServer データベースと ReportServerTempDB データベースをデタッチします。 そうしないと、Azure DevOps Server データベース用に作成したバックアップを使用してこれらのデータベースを復元できない場合があります。

    復元する前に既存のデータベースをデタッチする必要がある

新しいアプリケーション層サーバーにソフトウェアをインストールして構成する

Azure DevOps Server 用に新しいサーバーを構成するには、まず、それをサポートするために必要なソフトウェアをインストールして構成する必要があります。 このソフトウェアには、次のコンポーネントが含まれています。

  • 展開構成でサポートされているオペレーティング システム

  • Windows、IIS (既定で構成されていない場合) をインストールして構成し、サーバーとそのソフトウェアが動作していることを確認します。 

    詳細については、「 Azure DevOps Server のシステム要件を参照してください。

Azure DevOps Server データベースを復元する

復元ツールを使用して Azure DevOps Server データベースを復元するには、新しいデータ層サーバーに Azure DevOps Server をインストールするが構成しない必要があります。その後、スケジュールされたバックアップ ノードで復元機能を使用する必要があります。

SQL Server 復元ツールを使用して Azure DevOps Server データベースを手動で復元する場合は、可能ですが、これはより困難な手順です。 さらに、新しいデプロイでデータベースを手動で取り消す必要があります。 Azure DevOps Server の復元ウィザードは、復元プロセスの一環として自動的にこれを行いますが、その機能は SQL Server の復元ツールの一部ではありません。

  1. Azure DevOps Server インストール メディアを起動します。 Team Foundation Server セットアップ ページで、[Install を選択します。

  2. インストールが完了すると、 Team Foundation Server Configuration Center が開きます。 閉じます。

    管理コンソールは、構成されていない状態で自動的に開きます。 これは予期されることです。

  3. 復元ウィザードを開始するには、Azure DevOps Server の管理コンソールを開き、 スケジュールされたバックアップを開きます。

    復元ウィザードを開始する

  4. バックアップ セットへのパスを指定し、古いデプロイを休止した後に作成したセットを選択します。

    ネットワーク パスを選択し、復元セットを選択します

  5. ウィザードを完了し、データベースを SQL Server の新しいインスタンスに復元します。

    データベースは新しいサーバーに復元されます

(Clone オプション)サーバー ID の再構成とデータベースの再マップ

Note

PrepareClone は、別のサーバーで既に運用されているデータベース バックアップを使用して、新しい Azure DevOps Server デプロイを立ち上げる前に使用することをお勧めします。 このコマンドは、構成ウィザードの運用前のアップグレードと複製のシナリオにその機能を組み込んだため、不要になりました。

元の Azure DevOps Server インスタンスを引き続き使用する場合は、新しいアプリケーション層サーバーで次の一連の手順を実行します。 これらの手順は、一方または両方のデプロイが破損するリスクを回避するために必要です。 両方のサーバーが稼働している場合、特に同じレポート リソースを指している場合は、破損が生じる可能性があります。

  1. 管理者としてコマンド プロンプト ウィンドウを開き、ディレクトリを Drive:%programfiles%\TFS 12.0\Tools に変更します。 コマンド プロンプト ウィンドウを開き、次のように入力します。

  2. TFSConfig PrepareClone コマンドを実行して、スケジュールされたバックアップとレポート リソースに関する情報を削除します。

    TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:DatabaseName /notificationURL: ApplicationTierURL
    
  3. TFSConfig ChangeServerID コマンドを実行して、データベースに関連付けられているサーバー GUID を変更します。 GUID は、Azure DevOps Server デプロイ内で一意である必要があります。

    TFSConfig ChangeServerID /SQLInstance:ServerName] /DatabaseName:ConfigurationDatabaseName [/ProjectCollectionsOnly] [/ConfigDBOnly] [/usesqlalwayson]
    
  4. TFSConfig RemapDBs コマンドを実行して、複製された Azure DevOps Server をデータベースにリダイレクトします。

    TFSConfig RemapDBs /DatabaseName:ServerName;DatabaseName /SQLInstances:ServerName1,erverName2 [/AnalysisInstance:ServerName] [/AnalysisDatabaseName:DatabaseName] [/review] [/continue] [/usesqlalwayson]
    

アプリケーション層サーバーを構成する

  1. Azure DevOps Server の管理コンソールから、[インストール済み機能の構成] を選択して構成センターを起動します。

  2. アプリケーション層のみのウィザードを起動し、[データベース] で、Azure DevOps Server データベースを復元した新しい SQL Server インスタンスを指定します。 一覧から Tfs_Configuration データベースを選択します。

    SQL Server とデータベース バックアップ セットを選択する

  3. ウィザードの最後のページを閉じる前に、"i" 記号を探します。 これは、将来参照するために必要になる可能性のある情報を示します。 最後のページには、構成ログの場所も含まれます。

    問題とログ ファイルの場所に注意してください

Azure DevOps Server の URL を更新する

  1. アプリケーション層ノードに移動し、通知と Web ポータルの URL を確認します。 引き続き古いデプロイの場所を指している点に注意してください。 更新します。

    通知と Web URL が古い

  2. 新しいサーバーの名前で URL を更新した後、情報を確認して正しいことを確認します。

    サーバー URL は引き続き localhost を使用します

すべてのサービス アカウントを更新する

Azure DevOps Server (TFSService) とデータ ソース アカウント (TFSReports) のサービス アカウントを更新する必要があります。 これらのアカウントが変更されていない場合でも、ID とアカウントの形式が新しいサーバーに適していることを確認するために、情報を更新する必要があります。

  1. 管理者としてコマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\TFS 12.0\Tools に変更します。

  2. コマンド プロンプトで、次のコマンドを入力して Azure DevOps のサービス アカウントを追加します。ここで、 DatabaseName は構成データベースの名前です (既定では、TFS_Configuration)。

    TfsConfig Accounts /add /AccountType:ApplicationTier /account: AccountName /SQLInstance: ServerName /DatabaseName: DatabaseName

  3. コマンド プロンプトで、次のコマンドを入力してデータ ソース アカウントを追加します。

    TfsConfig Accounts /add /AccountType:ReportingDataSource /account: AccountName /SQLInstance:ServerName /DatabaseName:DatabaseName

    詳細については、「 Accounts コマンド」を参照してください。

ビルド サーバーを更新する

次に、移動した Azure DevOps Server デプロイを指すビルド サーバーをリダイレクトする必要があります。

  1. 各ビルド サーバーで、管理コンソールを開き、ビルド サービスを停止します。

  2. ビルド サービスのプロパティで、通信プロパティを更新します。

    サービスを停止し、変更を加えます

Reporting と Analysis Services の構成

デプロイでレポート サーバーを使用する場合は、Azure DevOps Server をその場所にリダイレクトし、ウェアハウスを再起動して、Analysis Services 用のデータベースを手動で再構築する必要があります。 レポートを使用しない場合は、この手順をスキップします。

  1. [レポート] ノードに移動します。 一覧表示されているレポート サーバーの値は、新しい値ではなく古い値であるため、編集します。

    レポートは引き続き古いサーバーを指しています

  2. 新しいサーバーを指す 3 つのタブの値をすべて変更します。 新しいデプロイで、データ ソース アカウントの正しい情報を指定してください。

    3 つのタブすべてで情報が正しいことを確認する

  3. [ジョブの開始を選択してレポートを再開します。

  4. [再構築開始] を選択して、ウェアハウスを再構築します。

ユーザー、グループ、およびサービス アカウントのアクセス許可を確認する

新しいハードウェアに移行したら、デプロイのすべてのユーザー、グループ、およびサービス アカウントが、各サーバーで正常に機能するために必要なアクセス許可で構成されていることを確認します。 SQL Server やローカル コンピューターでの追加のアクセス許可など、一部のアクセス許可は自動的に移行できません。 たとえば、管理コンソールを開くには、Azure DevOps 管理者がアプリケーション層サーバーのローカル Administrators グループのメンバーである必要があるため、そのグループに手動で追加する必要があります。

  • サーバーにログオンし、操作に必要なアクセス許可でユーザー、グループ、およびサービス アカウントが構成されていることを確認します。 プロジェクト グループとチームのメンバーシップを手動でスポット チェックし、それらのグループとチームに必要なアクセス許可があることを確認します。

  • プロジェクト コレクションを参照し、そのコレクション内のすべてのプロジェクトが期待どおりに表示され、それらのプロジェクトのユーザーが作業項目に適切にアクセスできることを確認します。

  • Web ポータルを開き、チーム サイトとチームが期待どおりに表示されることを確認します。

期待するグループとアクセス許可がわからない場合 詳細については、「プロジェクトへのユーザーの追加プロジェクト コレクションの管理者アクセス許可の設定Azure DevOps Server の管理者アクセス許可の設定、および Azure DevOps Server の Service アカウントと依存関係の設定を参照してください。

クライアント コンピューターのデータ キャッシュを更新する

ユーザーに通知

Azure DevOps Server を移動したので、移動されたデプロイに接続する方法をユーザーに伝える必要があります。 具体的には、次の情報を提供する必要があります。

  • プロジェクトに再接続できるように、新しいサーバーの名前と Web ポータルの URL

  • レポートが配置の一部である場合は、レポート用の新しいデータベース名

  • Git を使用するプロジェクトのメンバーである場合は、そのプロジェクトのすべてのリポジトリに対してローカルに存在するすべてのクローンを更新する方法について説明します。 具体的には、複製ごとに次のコマンドを実行する必要があります。

    git remote set-url <remote name> <new URL>
    

    ユーザーは、[エクスプローラー] タブからプロジェクトを参照することで、各複製の URL を確認できます。

    でリポジトリを手動で複製する URL のコピー

バックアップを構成する

以前のデプロイに対してバックアップがスケジュールされていましたが、それらのスケジュールされたバックアップは、移動されたデプロイをバックアップするように変更されませんでした。 それらを構成する必要があります。

  • 管理コンソールで、スケジュールされたバックアップ ノードに移動し、スケジュールされたバックアップを再構成して、新しいサーバー上の Azure DevOps Server データベースをバックアップします。 詳細については、「 バックアップ スケジュールと計画の作成」を参照してください。

Q & A

Q: 物理サーバーではなく、ドメインを変更する必要があります。 それは可能ですか?

回答: はい。 これは環境ベースの移動と呼ばれ、手順。 環境ベースの移動とハードウェア ベースの移動を組み合わせないようにしてください。 最初にハードウェアの移動を完了してから、環境を変更します。

Q: 新しいハードウェアに移行した後も、古い Azure DevOps Server を引き続き使用したいと思いました。 それは可能ですか?

A: はい。ただし、追加の手順をすぐに実行することが非常に重要です。 理想的には、移動または複製の手順の一部として、これらの手順を実行する必要があります。 これは、一方または両方のデプロイが破損するリスクを回避するための最善の方法です。 両方のサーバーが稼働している場合、特に同じレポート リソースを指している場合は、破損が生じる可能性があります。

この問題の解決方法

  1. 新しいサーバーで TFSConfig PrepareClone コマンドを実行します

  2. 新しいサーバーで TFSConfig ChangeServerID コマンド を実行する

  3. 新しいサーバーで TFSConfig RemapDBs コマンド を実行する

Q: Project Server と統合された展開があります。 移動した Azure DevOps Server で動作させるには、追加の手順を実行する必要がありますか?

A: はい。ハードウェアの移行が完了したら、/tfs/force/pwa オプションを指定して TFSAdmin ProjectServer /RegisterPWA コマンドを使用して、Azure DevOps Server を Project Server に再登録する必要があります。 Azure DevOps Server と Project Server の統合の詳細については、 こちらを参照してください。