オンプレミスの Azure DevOps の環境間を移動する
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
最も一般的な環境ベースの移動シナリオは、ドメイン名の変更かワークグループからドメインへの移行かにかかわらず、Azure DevOps Server展開のドメインを変更することです。
重要
場合によっては、Azure DevOps Server展開のドメインとそのハードウェアを変更する必要があります。 ハードウェアの変更は復元ベースの移動であり、これら 2 種類の移動を組み合わせないでください。 最初に ハードウェアの移動を完了してから、環境を変更します。
さらに、環境の移動の一環としてAzure DevOps Serverの ID を変更することは、多くの場合、競合や問題を引き起こす側面です。 ID コマンドは強力なツールですが、特定の制限があります。 移動を計画するときに、この制限についてよく調べてください。 移動を確実に成功させるには、次の要件について必ず理解するようにしてください。
- ユーザー アカウントがAzure DevOps Serverに存在する場合、削除したり、別のアカウントをマップしたりすることはできません。 たとえば、DomainA/UserA を DomainB/UserB に移動する場合、Id コマンドは、DomainB/UserB がまだAzure DevOps Serverに存在しない場合にのみ、ユーザーの移行に機能します。
- ローカル Administrators グループのメンバーは自動的にAzure DevOps Serverに追加されるため、ドメインまたは環境を変更する前に、そのグループから移行するアカウントをすべて削除してください。
背景情報の詳細については、ツールの制限など、Azure DevOps Serverでの ID の変更のしくみの詳細については、こちらを参照してください。
次のセクションでは、Azure DevOps Serverデプロイの環境を変更する手順について説明します。
- アクセス許可とアカウントの確認
- Azure DevOps Server サービスを停止する
- データのバックアップ
- Azure DevOps Serverを新しいドメインに参加させる
- ユーザー アカウントとサービス アカウントAzure DevOps Server移動する
- Reporting Services と Analysis Services の構成
- Azure DevOps Server サービスを再起動する
アクセス許可とアカウントの確認
Azure DevOps Serverの環境を正常に変更するには、ローカル コンピューターの管理者である必要があります。また、Azure DevOps Serverおよび展開が依存するすべてのソフトウェア (SQL Server、レポート、および Project Server など、展開が相互運用するその他のソフトウェア) が必要です。 ただし、ローカル Administrators グループのすべてのメンバーがAzure DevOps Serverに自動的に含まれるため、アカウントを移行しようとすると問題が発生する可能性があります。 したがって、環境の移動の一環として移行しないアカウントを使用する必要があります。 移動のためだけに特別な管理者アカウントを追加し、そのアカウントを使用して移行することを検討してください。
管理者レベルのアクセス許可の確認するには
- 使用しているアカウントが、次のグループのメンバーであることを確認します。
- サーバー: Administrators (ローカル Administrators グループまたはその同等のグループ)
- Azure DevOps Server: Team Foundation 管理者と管理 コンソール ユーザー
- SQL Server: sysadmin
これらのグループの 1 つ以上のメンバーでない場合は、 今すぐアクセス許可を取得します。
使用しているアカウントに必要なアクセス許可すべてが付与されていることを確認したら、アカウント チェックを開始して、移動先の環境の名前またはグループとの間に競合がないことを確かめます。 ローカル Administrators グループのメンバーのアカウントを移行できないことはわかっているため、まずは、そのアカウントを削除しましょう。
ローカル Administrators グループからの移行アカウントの削除
- ローカル Administrators グループを開き、新しい環境に移行するすべてのアカウントを削除します。 影響を受ける可能性がある他のグループについて、この手順を繰り返します。
現在のAzure DevOps Server環境の ID の一覧をチェックし、新しい環境に存在する可能性のあるグループまたは個々のユーザー アカウントに関する潜在的な問題を探します。
ヒント
どのアカウントが自動的に移動できない可能性があるかを含め、環境の移動の一環として移動する ID の表や移行マップを作成することを検討してください。
ID の確認
Azure DevOps のアプリケーション層サーバーで、管理アクセス許可を持つコマンド プロンプト ウィンドウを開き、 %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools に移動し、次のコマンドを実行して、システム内の現在の ID を表示します。
TFSConfig Identities
ID の一覧が表示されます。 これらのユーザーとグループを確認して、Azure DevOps Server移動する環境で ID に重複や問題が発生する可能性がないことを確認し、潜在的な競合を軽減するための手順を実行します。
サービスを停止する
サービスを停止することは、移動プロセスの最中や後にユーザーによる作業項目の変更や元の配置へのソース コードのチェックインを禁止するために役立ちます。
アプリケーション層コンピューターでコマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\TFS 12.0\Tools に変更します。
次の TFSServiceControl コマンドを 入力します。
TFSServiceControl の休止
データベースと SQL Server Reporting Services の暗号化キーをバックアップする
Azure DevOps Serverの管理コンソールを開き、[スケジュールされたバックアップ] ページで完全バックアップを実行します。 これにより、バックアップ計画でバックアップ対象として構成したすべてのデータがバックアップされますが、このバックアップはすぐに実行されます。バックアップ計画でスケジュールした時間には従いません。 配置でレポート機能を使用している場合は、このバックアップ セットの一部として暗号化キーをバックアップできます。
(バックアップが構成されていない場合は、完全バックアップを実行する前に プランを作成 する必要があります)。
バックアップが完了したら、そのバックアップがストレージ デバイスまたはネットワーク共有で使用できること、新しいハードウェアからアクセスできることを確認します。
アプリケーション層サーバーを新しいドメインに参加させる
各サーバーでコンピューターのプロパティを開きます。
コンピューターのドメインの設定で、サーバーを参加させるドメインまたはワークグループに変更します。
このコンピューターをドメインに参加させるためのアクセス許可を持つアカウントのユーザー名とパスワードを入力するためのダイアログが表示される場合は、適切な資格情報を入力します。
コンピューターを再起動して、ドメインの変更を反映します。
注意
コンピューターを再起動すると、サービスまたはドライバーを開始できなかったことを示す警告が表示される場合があります。 次の手順に進みます。
ユーザー アカウントとサービス アカウントを移動する
このトピックの冒頭で説明したように、特にユーザー移行を慎重に計画しないと、アカウントを移動するときに、非常に高い可能性で問題が発生します。 TFSConfig Identities コマンドは、Azure DevOps Serverに既に存在するアカウントにアカウントを移行できません。
両方のドメインでアカウント名が同じで、ドメイン名のみが異なる場合は、TFSConfig ID のバッチ モードを使用して、すべての ID をまとめて変更できます。 それ以外の場合は、ID を個別に変更し、異なるターゲット アカウント名を指定する必要があります。次に詳しく説明します。
Azure DevOps のアプリケーション層サーバーで、管理アクセス許可を持つコマンド プロンプト ウィンドウを開き、 %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools に移動し、次のコマンドを実行して、サービス アカウントのサービス ID (SID) を新しいドメインに変更します。
TFSConfig identities /change /fromdomain:OldComputerorDomainName /todomain:NewDomainName /account:OldTFSServiceAccount /toaccount:NewTFSServiceAccount
警告
サービス アカウントがネットワーク サービスなどのシステム アカウントでない場合は、サービス アカウントを直接移行できません。同じ名前のシステム アカウントが新しい環境に存在するためです。 2 段階のプロセス変更を実行する必要があります。 「ID コマンド」の例を参照してください。
新しい環境で同じ名前を持つすべてのアカウントを移行するには、次のコマンドを入力します。
TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName
これにより、アカウントのバッチ処理が実行されます。
新しいドメインに環境間で名前が変更される 1 つ以上の ID が含まれている場合は、それらの ID ごとに SID を手動で更新する必要があります。 たとえば、Christie Church のユーザー アカウントが前の環境では Fabrikam\CChurch で、新しい環境では NewFabrikam\ChristieC の場合は、Christie の SID を手動で更新する必要があります。 この要件を持つすべてのアカウントについて、次のコマンドを入力します。
TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName /account:OldAccountName /toaccount:NewAccountName
次のコマンドを実行してサービス アカウントを更新します。
TFSConfig Accounts /change /AccountType:ApplicationTier /account:AccountName /password:Password
配置でレポート機能を使用している場合は、次のコマンドを実行して、レポート機能に使用するデータ ソース アカウントを更新します。
TFSConfig Accounts /change /AccountType:ReportingDataSource /account:AccountName /password:Password
デプロイで Azure DevOps プロキシ サーバーを使用している場合は、次のコマンドを実行して、プロキシに使用されるサービス アカウントを更新します。
TFSConfig Accounts /change /AccountType:Proxy /account:AccountName /password:Password
注意
信頼されていないドメインに移行する場合は、チーム、プロジェクト、コレクション、Azure DevOps Server自体にユーザーとグループを手動で追加することが必要になる場合もあります。 詳細については、「プロジェクトにユーザーを追加する」、「プロジェクト コレクションの管理者権限を設定する」、および「Azure DevOps Serverの管理者権限を設定する」を参照してください。
配置が Project Server と統合される場合、サービス アカウントが操作に必要なアクセス権を持つように構成する必要がある可能性があります。 詳細については、「 TFS-Project Server 統合をサポートするためのアクセス許可の割り当て 」および 「ConfigureTFS-Project Server 統合」を参照してください。
Reporting Services と Analysis Services の構成
配置の一環としてレポートを使用していない場合は、この手順を省略できます。
この種類の移動の一部としてレポート サーバーの名前を変更した場合は、新しい場所でレポート サーバーにAzure DevOps Serverをリダイレクトする必要があります。 さらに、ウェアハウスを再起動して、Analysis Services のデータベースを手動でリビルドする必要があります。
Azure DevOps の管理コンソールを開き、[レポート] ノードに移動し、設定を編集します。
サーバーの新しい名前を含むように 3 つのすべてのタブの値を変更します。 新しい環境でのデータ ソース アカウントについて指定した情報が正しいことを確認します。
[ ジョブの開始] を選択して、レポートを再起動します。
[ 再構築の開始] を選択して、ウェアハウスを再構築します。
バックアップを構成する
ネットワーク共有名またはストレージ デバイス名をドメイン名の変更に合わせて変更した場合は、名前を変更したそれらのリソースを参照するように、スケジュールされたバックアップ計画を更新する必要があります。
- 管理コンソールで、[スケジュールされたバックアップ] ノードに移動し、スケジュールされたバックアップを再構成して、新しいサーバー上のAzure DevOps Server データベースをバックアップします。 詳細については、「バックアップ スケジュールと計画をCreateする」を参照してください。
Restart services
新しい環境のすべての情報をAzure DevOps Server更新したので、サービスを再起動します。
Azure DevOps Server アプリケーション層コンピューターで、管理者権限を持つコマンド プロンプト ウィンドウを開き、ディレクトリを Drive:\%programfiles%\TFS 12.0\Tools に変更します。
次の TFSServiceControl コマンドを入力します。
TFSServiceControl の不一致
Q & A
Q: 配置用にドメインではなく物理サーバーを変更する手順を教えてください。 それは可能ですか?
A: はい。 これはハードウェアベースの移動と呼ばれ、手順は「 あるハードウェアから別のハードウェアに移動または複製する」で提供されています。 環境ベースの移動をハードウェア ベースの移動と組み合わせないでください。 まずハードウェアの移動を完了してから、環境を変更します。