プロジェクト コレクションを分割する

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

ビジネスが変わると、1 つのプロジェクト コレクションを複数のプロジェクト コレクションに分割できます。 例:

  • コレクション内のプロジェクトを組織内の事業単位別に揃えたいと考えており、コレクション内のプロジェクトは、現在、別々の部署が所有している。

  • 以前のバージョンのAzure DevOps Serverからアップグレードした場合、コレクションは 1 つだけであり、セキュリティやビジネスの連携のためにプロジェクトを個別のコレクションに整理する必要があります。

  • コレクション内のプロジェクトの一部の所有権を、Azure DevOps Serverの独自の展開を持つリモート オフィスに変更する必要があります。 このシナリオでは、まず、1 つのコレクションを分割してから、生成されたコレクションの 1 つをリモート オフィス配置に移動する必要があります。

    注意

    この記事の手順では、プロジェクト コレクションの分割のみがサポートされています。 分割後にコレクションを移動するには、「 プロジェクト コレクションを移動する」を参照してください。

プロジェクト コレクションを分割するには、次の手順に従います。

  1. コレクションを分割する準備をする

    1. コレクションをデタッチする
    2. コレクション データベースをバックアップする
  2. コレクションを分割する

    1. 別の名前でコレクション データベースを復元する
    2. オリジナルのコレクション データベースをアタッチする
    3. 名前を変更したコレクション データベースをアタッチする
    4. 分割したコレクションからプロジェクトを削除する
    5. コレクションを開始する
  3. 分割コレクションを構成する

    1. 分割プロジェクト コレクションのユーザーとグループを構成する
    2. コレクション内のプロジェクトのユーザーとグループを構成する

始める前に

サーバーとSQL ServerとAzure DevOps Serverの管理者であることを確認します。 管理者でない場合は、 管理者として追加します

1-a. コレクションをデタッチする

まず、実行中のAzure DevOps Serverの展開からコレクションをデタッチします。 コレクションをデタッチすると、コレクション データベース自体だけでなく、すべてのジョブとサービスが停止します。 さらに、デタッチ プロセスは、構成データベースからコレクション固有のデータをコピーし、プロジェクト コレクション データベースの一部として保存します。

プロジェクト コレクションをデタッチする

  1. 分割するコレクションをホストするサーバー上の Azure DevOps の管理コンソールを開きます。

  2. [ プロジェクト コレクション] を選択し、コレクションの一覧で分割するコレクションを選択します。

    この例では、管理者が TestProjects を選択します。

    コレクションの一覧からコレクションを選択する

    ヒント

    プロジェクト コレクションの既定の名前は DefaultCollection です。 このデータベースを分割する場合は、2 番目のコレクションに別の名前を付けます。これは接続時の既定の選択であるためです。

  3. [ 全般 ] タブで、[ コレクションの停止] を選択します。

    コレクション インターフェイスを停止する

    [ プロジェクト コレクションの状態の理由 ] ダイアログ ボックスが開きます。 入力したテキストがユーザーに表示されます。 [ 停止] を選択し、コレクションが停止するまで待ちます。 停止すると、その状態は [オフライン] と表示されます。

  4. [ 全般 ] タブで、[ コレクションのデタッチ] を選択します。

    プロジェクト コレクションのデタッチ ウィザードが開きます。

    コレクションのデタッチ ウィザード

  5. (省略可能)[ プロジェクト コレクションのサービス メッセージを提供する ] ページの [ サービス メッセージ] で、このコレクション内のプロジェクトへの接続を試みるユーザーにメッセージを提供します。

  6. [ プロジェクト コレクションのデタッチに使用する設定の確認 ] ページで、詳細を確認します。 設定を変更するには、[ 前へ] を選択します。 正しい場合は、[確認] を選択 します

  7. すべての準備チェックが正常に完了したら、[デタッチ] を選択 します

  8. [ プロジェクト コレクションのデタッチの進行状況の監視 ] ページで、すべてのプロセスが完了したら、[ 次へ] を選択します。

  9. (省略可能)[ このプロジェクト コレクションの補足情報を確認 する] ページで、ログ ファイルの場所を選択またはメモし、ウィザードを閉じます。

    プロジェクト コレクションは、管理コンソールのコレクションの一覧に表示されなくなります。

1-b. コレクション データベースをバックアップする

コレクションをデタッチしたら、そのデータベースをバックアップしてから、コピーを別の名前でサーバーに復元します。 このコピーが、別のコレクションに分割するオリジナルのコレクションの一部のデータベースになります。 このタスクを実行するには、SQL Serverで提供されているツールを使用します。

データベースをバックアップする

コレクション データベースをバックアップする

2-a. コレクション データベースを復元する

コレクションを分割するときは、コレクション データベースのバックアップを、Azure DevOps Serverのデプロイをサポートするように構成されたSQL Serverのインスタンスに復元する必要があります。 データベースを復元したら、それにオリジナルのコレクション データベースとは別の名前を付ける必要があります。

ヒント

次の手順では、SQL Server Management Studioを使用して SQL Server 2012 でプロジェクト コレクション データベースを復元する方法の一般的な概要を示します。 個々のデータベースを手動でバックアップおよび復元する方法の詳細については、「SQL Serverでのデータベースのバックアップと復元」を参照してください。 デプロイに一致するSQL Serverのバージョンを必ず選択してください。

新しい名前でコレクション データベースを復元する

  1. SQL Server Management Studio開き、プロジェクト コレクションを分割するデータベースをホストするインスタンスに接続します。

  2. オブジェクト エクスプローラーで、[データベース] を展開し、分割するデータベースのサブメニューを開き、[タスク] を選択し、[復元] を選択して、[データベース] を選択します。

    [データベースの復元] ウィンドウが [ 全般 ] ページで開きます。

    [全般] ウィンドウの [データベースの復元] オプション

  3. [ ソース] で、プロジェクト コレクション データベースが選択されていることを確認します。 [ 変換先] で、データベースのコピーの名前を指定します。 Tfs_プレフィックスを保持し、個別の名前を追加します。 通常、この名前は分割プロジェクト コレクションの名前です。 [ 復元プラン] で、復元するバックアップ セットが復元先であることを確認します。 これらが有効なセットであることを確認するには、[ バックアップ メディアの確認 ] を選択し、[ ページの選択] で [オプション] を選択します。

  4. [復元オプション] で、すべてのチェックボックスを空白のままにします。 [回復状態] が [RESTORE WITH RECOVERY] に設定されていることを確認します。 [ログ末尾のバックアップ] で、[復元中の状態にソース データベースを残す] チェックボックスをオフにし、[OK] を選択します

    ヒント

    データベースが使用中で上書きできないことを示すエラー メッセージで復元操作が失敗した場合は、データベースの新しい名前を反映するようにすべての論理ファイル名を手動で構成する必要がある場合があります。 [ ページの選択] で [ ファイル] を選択し、復元する各ファイルの横にある省略記号ボタンを選択し、ファイルの名前に、古い名前ではなくデータベースの新しい名前が反映されていることを確認します。 その後で、もう一度、復元操作を試してみてください。

2-b. オリジナルのコレクション データベースをアタッチする

別の名前でデータベースを復元したら、元のコレクション データベースを Azure DevOps Server のデプロイに再アタッチします。

コレクションをアタッチする

  1. Azure DevOps の管理コンソールを開きます。

  2. [ プロジェクト コレクション] を選択し、[ コレクションのアタッチ] を選択します。

    プロジェクト コレクションのアタッチ ウィザードが開きます。

  3. [アタッチするプロジェクト コレクション データベースの選択] ページの [SQL Server インスタンス] で、コレクション データベースをホストするサーバーとインスタンスの名前を指定します (まだ表示されていない場合)。

  4. [ データベース ] ボックスの一覧で、アタッチするコレクション データベースを選択します。

    データベースの一覧

  5. [ プロジェクト コレクション情報の入力 ] ページで、[名前] にコレクションの名前を指定 します (まだ存在しない場合)。 これは元のコレクションであるため、以前と同じ名前のままにすることを選択できます。 [ 説明] で、必要に応じてコレクションの説明を指定します。

  6. プロジェクト コレクションのアタッチに使用する [設定の確認] ページで、情報を確認します。

  7. 設定を変更するには、[ 前へ] を選択します。 すべての設定が正しい場合は、[ 確認] を選択します。

  8. すべての準備チェックが正常に完了したら、[アタッチ] を選択 します

  9. [ プロジェクト コレクションアタッチの進行状況の監視 ] ページで、すべてのプロセスが完了したら、[ 次へ] を選択します。

  10. (省略可能)[ このプロジェクト コレクションの補足情報を確認 する] ページで、ログ ファイルの場所を選択またはメモして、ウィザードを閉じます。

  11. プロジェクト コレクションは、管理コンソールのコレクションの一覧に表示されます。 コレクションの状態が [オンライン] と表示されている場合は続行する前に停止する必要があります。一覧からコレクションを選択し、[全般] タブで [コレクションの停止] を選択します。

    コレクションイメージを停止する

2-c. 名前を変更したコレクション データベースをアタッチする

元のコレクション データベースをアタッチした後、名前を変更したコレクションを Azure DevOps Server の展開にアタッチする必要があります。 このコレクションはアタッチする際、停止したままになっています。 すべての重複プロジェクトが削除されるまで、このコレクションを開始することができません。

名前を変更したコレクション データベースをアタッチする

  1. Azure DevOps の管理コンソールを開きます。

  2. [ プロジェクト コレクション] を選択し、[ コレクションのアタッチ ] を選択してウィザードを開きます。

  3. [アタッチするプロジェクト コレクション データベースの選択] ページの [SQL Server インスタンス] で、名前が変更されたコレクション データベースをホストするサーバーの名前とインスタンスを指定します (まだ表示されていない場合)。

  4. [データベース] ボックスの一覧 、名前を変更したコレクション データベースを選択します。

  5. [ プロジェクト コレクション情報の入力 ] ページの [名前 ] に、 名前が変更されたコレクションの名前を、コレクションの元の名前とは異なる名前で入力します。 これは、名前が変更されたデータベースに指定した名前と一致し、Tfs_ プレフィックスは付けておく必要があります。

    チーム プロジェクト名のエントリを添付する

  6. (省略可能)[ 説明] に、コレクションの説明を入力します。

  7. プロジェクト コレクションのアタッチに使用する [設定の確認] ページで、情報を確認します。 設定を変更するには、[ 前へ] を選択します。 すべての設定が正しい場合は、[ 確認] を選択します。

  8. すべての準備チェックが正常に完了したら、[アタッチ] を選択 します

  9. [ プロジェクト コレクションアタッチの進行状況の監視 ] ページで、すべてのプロセスが完了したら、[ 次へ] を選択します。

  10. (省略可能)[ このプロジェクト コレクションの補足情報を確認 する] ページで、ログ ファイルの場所を選択またはメモし、ウィザードを閉じます。

  11. 管理コンソールのコレクションの一覧にコレクションの名前が表示され、その状態が [オフライン] と表示されます。

    チーム プロジェクト名のエントリを添付する

  12. 両方のコレクションが一意の ID でアタッチしていることを確認するには、管理コンソールで、イベント ログに移動し、両方のコレクションのアタッチ操作に関するログ ファイルを開きます。 CollectionProperties の GUID は一致 しません

    CollectionProperties の GUID を含むログ

    CollectionProperties GUID が一致する可能性が低い場合は、/clone パラメーターを使用して 2 番目のコレクションで TFSConfig Collection コマンド を実行して、続行する前に ID を一意の ID に変更します。

2-d. 分割したコレクションからプロジェクトを削除する

Azure DevOps Serverにアタッチされているコレクションのコピーが 2 つになったので、両方のコレクションにプロジェクトが残っていないように、元のコレクションまたは名前が変更されたコレクションから各プロジェクトを削除する必要があります。

重要

プロジェクトは複数のコレクション内に存在することができません。 分割したコレクション間で重複しているすべてのプロジェクトを削除するまで、名前を変更したコレクションを開始することができません。

コレクションからプロジェクトを削除する

  1. Azure DevOps の管理コンソールを開きます。

  2. [ プロジェクト コレクション] を選択し、コレクションの一覧で、分割するために停止した元のプロジェクト コレクションを選択します。

  3. [ プロジェクト ] タブのプロジェクトの一覧で、コレクションから削除するプロジェクトを選択し、[削除] を選択 します

    ヒント

    削除するプロジェクトは一度に複数選択することができます。

    プロジェクトを削除するための TFS 管理コンソール

  4. [ワークスペース データの削除] チェック ボックスを選択し、[外部成果物の削除] チェックボックスをオフのままにして、[削除] を選択します

    [外部成果物の削除チェック] ボックスがオフでなく、プロジェクトが Lab Management を使用するように構成されている場合、プロジェクトに関連付けられている仮想マシンとテンプレートはSystem Center Virtual Machine Managerから削除されます。 名前が変更されたコレクション内のプロジェクトでは使用できなくなります。 (ラボ管理は TFS 2017 以降のバージョンでは非推奨になっています。

  5. 元のプロジェクト コレクションでホストしないプロジェクトの削除が完了したら、コレクションの一覧から名前を変更したプロジェクト コレクションを選択します。 次に、[ プロジェクト ] タブで、不要なプロジェクトを新しいコレクションから削除します。

    [プロジェクト] タブの [プロジェクト]

  6. 両方のコレクションに一意のプロジェクトのセットが含まれるまで、このセクションの手順を繰り返します。

2-e. プロジェクト コレクションを開始する

プロジェクトを削除した後、両方のコレクションを再起動します。

プロジェクト コレクションを開始する

  1. Azure DevOps の管理コンソールを開きます。

  2. [ プロジェクト コレクション] を選択し、コレクションの一覧で、停止したコレクションを選択して分割します。

  3. [ 全般 ] タブで、[ コレクションの開始] を選択します。

  4. 新しい名前でアタッチしたコレクションに対して手順 2 を繰り返します。

    TFS 管理コンソール

3-a. 分割したコレクションのユーザーとグループを構成する

分割した両方のコレクションを同じドメイン内に残し、オリジナルのコレクションの管理者に両方のコレクションへのアクセスを許可する場合は、この手順を省略することができます。

コレクションの分割が完了したら、両方のコレクションのアクセス許可グループをそれらのコレクションを管理するユーザーとグループで更新する必要があります。 詳細については、「 プロジェクト コレクションの管理者権限を設定する」を参照してください。

3-b. プロジェクトのユーザーとグループを構成する

分割したコレクションを同じドメイン内に残し、オリジナルのコレクション内のプロジェクトのユーザーに両方のコレクションへのアクセスを許可する場合は、この手順を省略することができます。

両方のコレクションの管理者を構成したら、あなたとその管理者のどちらかが各コレクション内のプロジェクトへのユーザーとグループのアクセスを構成する必要があります。 デプロイによっては、Reporting Servicesでそれらのユーザーのアクセス許可を構成する必要がある場合もあります。 詳細については、「 プロジェクトまたはチームにユーザーを追加する」を参照してください。

Q & A

Q: 自分の配置ではレポート機能が使用されています。 コレクションを分割するときに実行しなければならない追加の手順はありますか。

A: はい。プロジェクトの削除が完了したら、両方のコレクションに一意のプロジェクト セットが含まれるように、レポートを分割する必要があります。 データ ウェアハウスをリビルドする必要もあります。

プロジェクトを削除した後、分割コレクションで使用されるレポートを別のフォルダーに移動し、元のフォルダーから削除します。

重要

レポート フォルダーは両方の場所に存在します。 レポート フォルダーを削除する前に、すべてのレポートが適切に移動されていることを確認します。

レポートを個別のフォルダーに分割する

  1. レポート マネージャーで、分割したコレクションをサポートするレポートをそのコレクションに適切なフォルダーに移動します。 詳細については、「 アイテムの移動ページ」を参照してください。

レポートを分割して両方のコレクションを開始したら、Azure DevOps 用のウェアハウスと Analysis Services 用のデータベースを再構築します。 この手順は、コレクションの分割後にレポートとダッシュボードが配置に対して正しく機能することと、配置内の他のコレクションと競合していないことを確実にするために実行する必要があります。

データ ウェアハウスと Analysis Services データベースを再構築する

  1. Azure DevOps の管理コンソールを開きます。

  2. ナビゲーション バーで、[レポート] を選択 します

  3. [レポート] で、[再構築の開始] を選択します。

  4. [ Warehouse and Analysis Services データベースの再構築 ] ダイアログ ボックスで、[ OK] を選択します

    注意

    リビルドの開始操作が終了しても、ウェアハウスのリビルドとデータの再作成が継続されます。 デプロイのサイズとデータの量によっては、プロセス全体が完了するまでに数時間かかる場合があります。