4. 移行を監視する

Azure DevOps サービス

初期同期は、リポジトリのサイズに応じて、完了までに数時間または数日かかる場合があります。 初期同期が完了した後、ELM は継続的な更新をキャプチャするために最大 21 日間、定期的な同期を実行し続けます。 この 21 日間の期間中は、カットオーバーを実行して移行を完了する必要があります。

各フェーズでどのリポジトリが存在するかを確認するには、 az devops migrations list を実行し、 stage フィールドでフィルター処理します。 移行状態の出力にエラーが表示されるので、続行する前に問題を特定して修正できます。

Important

コンカレンシーの制限: 各企業は、最大 20 個の初期移行を含め、一度に最大 30 個のアクティブな移行を進行中にすることができます。 別の移行の容量を解放するには、既存の移行のカットオーバーを完了します。

移行の状態を追跡する

組織のすべての移行を一覧表示します。

az devops migrations list --org https://dev.azure.com/<org>

移行ステージ

段階 説明
キューに登録済み 移行は受け入れられます。作業はまだ開始されていません。
検証 移行前チェックの実行。
Synchronization リポジトリコンテンツのコピーと同期。
切り替え 最終的な同期を実行し、GitHubに移行します。
切り替えに向けたレビュー カットオーバーは、未解決の障害がある状態で予定時刻を迎え、cutover approve(または再スケジュール)待ちの状態です。
切り替え準備完了 承認済みで、次回の ELM ジョブで最終カットオーバーが実行されるのを待機中です。
移行済み 移行が完了しました。 GitHubはレコードのシステムです。

移行の状態

地位 意味
アクティブです 移行が実行されています。
成功しました 現在のフェーズは正常に完了しました。
完了 移行がターミナル Migrated ステージに達しました。
失敗 エラーが発生しました。 問題を解決した後で再開できます。
停止中 手動で一時停止しました。 再開できます。

何に注目すべきか

  • 最後に成功した同期時間 — 同期がスケジュールに従って実行されていることを確認します。
  • 同期状態 - 移行が進行中かストールしているかを特定します。
  • エラー状態 — ELM は一時的な障害を自動的に再試行します。 永続的なエラーには調査が必要です。

同期エラー後に再開する

同期エラーが発生した場合は、エラーの詳細を調査し、基になる問題を修正します。 次に、ELM を自動的に再開するか、次のいずれかの方法を使用します。

az devops migrations resume --org https://dev.azure.com/<org>
                            --repository-id <repo-guid>

移行を一時停止して再開する

移行を一時的に停止し、同じモードで再起動する必要がある場合:

移行を一時停止するには、次を実行します。

az devops migrations pause --org https://dev.azure.com/<org>
                           --repository-id <repo-guid>

移行を再開するには、次を実行します。

az devops migrations resume --org https://dev.azure.com/<org>
                            --repository-id <repo-guid>

Note

移行は任意の期間一時停止できますが、21 日間のカットオーバー 期間は引き続き適用されます。

移行を取り消す

同期中はいつでも、移行を停止および削除できます。 この操作により、移行レコードが完全に削除されます。

次のコマンドを実行します。 確認を求められます。

az devops migrations abandon --org https://dev.azure.com/<org>
                             --repository-id <repo-guid>

カットオーバー後、Azure DevOps リポジトリは読み取り専用に設定されます。 書き込みを再開する場合は、書き込みアクセス権を復元する --remove-read-only を追加します。 このフラグは、カットオーバー後にのみ適用されます。

az devops migrations abandon --org https://dev.azure.com/<org>
                             --repository-id <repo-guid>
                             --remove-read-only

対話型の確認プロンプト (スクリプト化されたクリーンアップ用) をスキップするには、 --yesを追加します。

移行を中止した後:

  • Source リポジトリ: Azure DevOps リポジトリは変更されず、完全に書き込み可能です。 クリーンアップの必要はありません。
  • 監査証跡: 移行レコードは保持されませんが、移行が中止されたことを記録するために監査イベントが書き込まれます。 詳細については、「 監査」を参照してください。
  • 新しい移行の開始: 同じソース リポジトリに新しい移行を作成できますが、新しい移行を開始する前に短いクールダウンが適用されます。 同じターゲット GitHub リポジトリ名を再利用する場合は、まず既存のGitHub リポジトリを削除します。 これを行うには、GitHub で Delete repository 権限が必要です。

次のステップ