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

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

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

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

このページの内容:

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

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

たとえば、オースティンのローカル チームが Bitbucket Cloud (プライマリ) を操作し、シドニーにいるリモート チームが、自分たちの最も近くにホストされているミラーからクローンとプルを実行します。リモート チームはプライマリへプッシュします。ミラーは読み取り専用のため、プッシュは許可されません。

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

 

同期

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

認証

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

 

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

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


ミラーからプルし、Bitbucket にプッシュする

Bitbucket スマートミラーは読み取り専用のため、スマートミラーにプッシュすることはできません。スマート ミラーリングを使用する際には、ミラーに対して Git の クローンプル (またはフェッチ) 操作を行うことになりますが、プッシュの宛先は Bitbucket Cloud になります。つまり、ミラーと Bitbucket Cloud に異なるリモート URL を設定する必要があります。この手順は、ミラーからクローンを作成した後で実行することになります。

プッシュ URL を更新する方法

  1. Bitbucket Cloud のリポジトリで、[クローン] ボタンをクリックします。
  2. [クローン元] ドロップダウンでミラーを選択してから、次のようなコマンドをコピーします。

    git remote set-url --push origin ssh://git@bitbucket.example.com:7999/PROJ/repo.git

  3. ターミナルで、クローンされたディレクトリに移動し、コマンドを実行します。

リモート プッシュ URL は、Bitbucket Cloud (プライマリ) をポイントするようになりました。

作業する各ミラー リポジトリに対してこの手順を実行する必要があります。

 

Git LFS でミラーを使用する

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

 

Sourcetree でミラーを使用する

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

Sourcetree を使用する際は、クローンまたはプルはミラーから行い、プッシュは Bitbucket に行うことを覚えておく必要があります。 

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

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

  1. Bitbucket のリポジトリへ移動します。
  2. [クローン] ボタンをクリックします。
  3. [クローン元] ドロップダウンを使用して、最も近いミラーを選択します。ミラーが異なると、クローン URL も異なります。
  4. クローン URL (SSH または HTTPS) をコピーします。
    SSH プロトコルを使用している場合は、公開キーが正しく構成されていることを確認します。 
  5. ターミナル ウィンドウで、リポジトリをクローンするローカル ディレクトリに移動します。
  6. git clone」と入力してから、コピーしたクローン URL を貼り付けます。
    コマンドとクローン URL は次のようになります。

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

クローンが成功すると、ローカル ドライブに新しいサブディレクトリが作成されます。ディレクトリは、クローンした Bitbucket リポジトリと同じ名前になります。クローンには、ソース ファイルに加えた変更を保持するために Git が必要とする、ファイルとメタデータが含まれます。

ミラーは読み取り専用です、以降のセクションで説明するように、ミラーからクローンを作成した後で、Bitbucket をポイントするようにリモート プッシュ URL を更新する必要があります。

Bitbucket のプッシュ URL を更新する

ミラーからクローンを作成した後、Bitbucket をポイントするようにプッシュ URL を設定する必要があります。

SourceTree で プッシュ URL を更新する方法
  1. Bitbucket Server のリポジトリで、[クローン] をクリックします。
  2. [クローン元] ドロップダウンでミラーを選択してから、次のようなコマンドをコピーします。

    git remote set-url --push origin ssh://git@bitbucket.example.com:7999/PROJ/repo.git

    コマンドは必要ありません。必要なのはプッシュ URL (ssh:// で開始する文字列) のみです。

  3. SourceTree で リポジトリ設定を開きます。
  4. 元のリポジトリ パスを選択してから、[構成ファイルを編集...] をクリックします。
    テキスト エディターが表示されます。 
  5. 構成ファイルの [remote "origin"] の下で、「pushurl =」と入力してから、「=」の後にプッシュ URL のみを貼り付けます。
    構成ファイルは次のようになります。

    pushurl = ssh://git@bitbucket.example.com:7999/PROJ/repo.git
  6. 構成ファイルを保存して閉じます。[OK] をクリックしてリポジトリ設定画面を閉じます。

SourceTree 内のリモート プッシュ URL が、プライマリ Bitbucket Data Center インスタンスをポイントするようになりした。

 

ミラーを別の 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 アドレスは公開されますが、ミラーは無効として表示されます。

最終更新日 2017 年 9 月 13 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.