Bitbucket スマート ミラーリングでの作業

スマート ミラーリングは廃止予定

2021 年 4 月 21 日以降、Bitbucket Cloud のスマート ミラーリングは新規インストールで利用できなくなります。既存のインストールはこれまでどおり機能しますが、この機能はサポートされなくなります。

Bitbucket Cloud のスマート ミラーリングは、お客様自身がホストする Bitbucket Data Center のローカル インストールを使用して、Bitbucket Cloud でホストされるリポジトリをミラーリングします。詳細は、「Bitbucket Cloud のスマート ミラーリング」をお読みください。

このページでは、セットアップおよび実行済みのスマートミラーを操作する方法について説明します。

スマート ミラーリングのしくみ

スマート ミラーリングは、お客様自身がホストする Bitbucket Data Center のローカル インストールを使用して、Bitbucket Cloud でホストされるリポジトリをミラーリングします。

たとえば、オースティンのローカル チームが Bitbucket Cloud (プライマリ) を操作し、シドニーにいるリモート チームが、その近辺でホストされているミラーからクローンとプルを実行します。シドニーのチームはミラーにプッシュでき、ミラーはその変更をプライマリ リポジトリにプッシュします。

リポジトリのブラウジングやプル リクエストの使用などのその他の操作はすべて、Bitbucket Cloud によって提供されます。ミラーとして機能する Bitbucket Data Center は Web UI を提供しません。

ミラーからクローンした場合、プッシュもミラーに行うべきですか?

いいえ。リポジトリにプッシュするには、Bitbucket Cloud の上流のリポジトリを指すようにプッシュ URL を更新する必要があります。コマンドは次のようになります。

$ git remote set-url --push origin git@bitbucket.org:<workspace_id>/repo.git

リポジトリのクローン ダイアログを確認して、これをセットアップする正確なコマンドを見つけます。

同期

ミラーとプライマリ Bitbucket Cloud は自動的に同期されます。 

認証

ユーザーがミラーを操作する際、ミラーは自動的に認証をプライマリに委譲します。ミラーでは追加のユーザー管理は不要です。プライマリ Bitbucket Cloud のすべてのユーザー、グループ、および権限が、ミラー上に正確にレプリケートされます。

ミラーするプロジェクトを決定する

ワークスペース内の個々のプロジェクト、またはそのアカウントのすべてのプロジェクトのみをミラーリングできます。選択したプロジェクトのすべてのリポジトリがミラーリングされます。すべてのプロジェクトをミラーリングするよう決定した場合、個別プロジェクトのみに戻すことはできません。全体のミラーリングから個別プロジェクトのミラーリングに切り替えるには、ミラー インスタンスを削除して再インストールする必要があります。

Git LFS でミラーを使用する

Bitbucket スマート ミラーリングは Git LFS をシームレスにサポートします。リポジトリに GIT LFS ファイルが含まれる場合、ミラーはバックグラウンドでそれらを自動的に同期します。すべての一般的な Git または Git LFS コマンドを使用して、Git LFS ファイルを含むリポジトリをフェッチできます。

Sourcetree でミラーを使用する

Git および Mercurial 向けの Atlassian デスクトップ クライアントである Sourcetree では、スマート ミラーリングを簡単に使用できます。Sourcetree を使い始めたばかりの場合、「Bitbucket で Sourcetree を使用する」をご参照ください。

ミラーからクローンを作成する

ミラーからリポジトリのクローンを作成する方法:

  1. Bitbucket のリポジトリへ移動します。

  2. [クローン] ボタンをクリックします。

  3. [クローン元] ドロップダウンを使用して、最も近いミラーを選択します。ミラーが異なると、クローン URL も異なります。

  4. クローン URL (SSH または HTTPS) をコピーします。
    SSH プロトコルを使用している場合は、公開キーが正しく構成されていることを確認します。 

  5. ターミナル ウィンドウで、リポジトリをクローンするローカル ディレクトリに移動します。

  6. git clone」と入力してから、コピーしたクローン URL を貼り付けます。
    コマンドとクローン URL は次のようになります。

    1 $ git clone ssh://git@bitbucket-au.example.com:7999/upstream/PROJ/repo.git

クローンが成功すると、ローカル ドライブに新しいサブディレクトリが作成されます。このディレクトリは、クローンした Bitbucket リポジトリと同じ名前になります。クローンには、ソース ファイルへの変更を保持するために Git が必要とする、ファイルとメタデータが含まれます。これで、ミラーから作成したクローンに対して必要な変更を行い、その変更をミラーにプッシュできます。ユーザーが行った変更は、Bitbucket のプライマリ リポジトリにも反映されます。

ミラーを別の Bitbucket アカウントに接続する

ミラーの接続先となる Bitbucket アカウントを変更できます。

  1. アカウントの管理者設定に移動して、[スマート ミラーリング] を選択します。

  2. 別のアカウントに再接続するミラーを選択します。

  3. ミラーのベース URL を記録します。

  4. 現在のアカウントからミラーを削除します。

  5. ミラーのベース URL へアクセスし、[再度追加] をクリックします。

  6. ミラーの接続先となる新しいアカウントを選択し、アクセス権を付与します。

ミラーを削除する

アカウントからミラーを削除すると、ワークスペースの他のメンバーは、今後そのミラーからクローンできなくなります。

公開リポジトリのミラー

公開リポジトリを持つプロジェクトをミラーした場合、ミラーのアドレスは公開されます。Bitbucket は Bitbucket サイトへのすべての訪問者にそのミラーをアドバタイズします。訪問者がそのリポジトリにアクセスするためのログインは不要です。これにより、多数のリクエストを受信することになるため、ミラーのパフォーマンスに影響が出る可能性があります。

Bitbucket がミラーにアクセスできるようにするには、ミラーがパブリックでアクセス可能な必要があります。

このトラフィック増加の影響を軽減する方法がいくつかあります。

公開リポジトリを、Bitbucket のミラーされていないプロジェクトに移動させる

これは推奨される手法であり、公開リポジトリのミラーリングを完全に回避します。もちろん、これらのリポジトリは Bitbucket 上では公開のままとなります。

このアプローチを使用してもミラーの IP アドレスは公開されますが、ミラーは無効として表示されます。

IP 許可リスト

IP 許可リストを使用すると、ミラーへのアクセスを一部の受信 IP アドレスに制限できます。

  • 外部に面したファイアウォールで IP 許可リストを設定します。

  • ミラーには、Bitbucket インバウンド アドレスへのアウトバウンド アクセス権限、Bitbucket アウトバウンド アドレスからのインバウンド アクセス権限が必要です。Bitbucket が使用する IP アドレスのリストについては、「Bitbucket Cloud IP アドレス」を参照してください。 

このアプローチを使用してもミラーの IP アドレスは公開されますが、ミラーは無効として表示されます。

その他のヘルプ