はじめに Nexusは企業向けのMavenリポジトリ管理ツールであり、コンポーネントのバージョン管理やプロキシキャッシュ、チーム協力を効率的に実現することができる。特にJavaの依存パッケージを統一して管理したい開発チームにとって非常に役立つ。中小規模のチームから大規模な企業まで、このツールはその信頼性と安定性で多くの恩恵をもたらす。
Nexusを使用する際には、事前にリポジトリ構造を計画しておくことをおすすめする。ホストリポジトリ、プロキシリポジトリ、グループリポジトリを区別することで、後からのメンテナンスがしやすくなる。また、定期的に無効なキャッシュを削除することで、ストレージの使用量を抑えることができ、サービスの滑らかさを保つことができる。
ただし、Nexusはデフォルトでは内網に配置されるため、チームメンバーは会社のローカルネットワーク内でのみアクセス可能である。遠隔勤務や出張時に依存パッケージを更新しようとすると、VPNなどの方法で内網に接続しなければならず、手間がかかり効率に悪影響を与える。
しかし、NexusとCPolarを組み合わせることで、複雑な設定なしに内網サービスをパブリックネットワークにマッピングすることが可能になる。これにより、チームメンバーはどこにいてもインターネットに接続してリポジトリにアクセスできるようになり、プロジェクトの必要なコンポーネントを直接取得できるようになる。例えば、遠隔地での開発者も、パブリックアドレスを通じてプロジェクトに必要なコンポーネントを取得でき、場所を問わず協力が可能になる。
以下では、Linux上でDockerを使ってNexus Mavenプライベートリポジトリをワンクリックで構築し、CPolarを導入してNexusをリモートから管理する方法について説明する。
- DockerでNexusをインストール
ここではDocker Composeを使ってNexusコンテナを起動する。まず任意のディレクトリに
docker-compose.ymlというファイルを作成する。
sudo vim docker-compose.yml
次に以下のように内容を追加する:
version: '3'
services:
nexus:
image: sonatype/nexus3
ports:
- "8081:8081"
volumes:
- nexus-data:/nexus-data
volumes:
nexus-data:
保存後、docker-compose up -dコマンドを実行してコンテナを起動する。コンテナが動作していることを確認するためにdocker psコマンドを実行する。ポートは8081で、続いてローカルでNexusにアクセスするテストを行う。
-
ローカルでNexusにアクセス 上記でNexusを起動した後、ブラウザでLinuxのローカルIPアドレスと8081ポートを入力すると、Nexusの管理画面にアクセスできる。続いて、CPolarという内網透過ツールのインストールについて説明する。これにより、パブリックネットワークでもローカルのNexus画面にリモートアクセスできる。
-
LinuxにCPolarをインストール ローカルにDockerでNexusを構築し、ローカルでアクセスできたので、今度はLinuxにCPolarをインストールする。CPolarを介してローカルのポートを公開するHTTPのパブリックアドレスにマッピングすることで、リモートアクセスが容易になる。以下の手順に従ってインストールする。
CPolar公式サイト: https://www.cpolar.com
- 1つのスクリプトでインストールするコマンド
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- システムにサービスを追加する
sudo systemctl enable cpolar
- CPolarを起動する
sudo systemctl start cpolar
CPolarのインストールが完了したら、外部のブラウザでLinuxの9200ポート(例: http://ローカルIP:9200)にアクセスし、CPolarのアカウントでログインする。ログイン後、CPolarのWeb管理画面が表示され、次のステップに進む。
- Nexusのパブリックアドレスを設定 左側のダッシュボードの「トンネル管理」を選択し、「作成」をクリックしてNexus用のパブリックHTTPアドレスのトンネルを作成する。
- トンネル名:独自の名前を指定する。既存のトンネル名と重複しないようにする。
- プロトコル:HTTPを選択
- 本地地址:8081(ローカルでアクセスするアドレス)
- ドメインタイプ:無料でランダムドメインを選択
- 地域:中国を選択
「作成」をクリックする。
トンネルが作成された後、「状態」タブの「オンライントンネル一覧」に移動し、生成されたパブリックアクセスアドレスを確認する。HTTPとHTTPSの2種類のアクセス方法がある。
- Nexusのリモートアクセス 先ほど生成されたCPolarのHTTPSパブリックアドレスを、任意の端末のブラウザでアクセスすれば、Nexusのホーム画面を表示できる。これにより、パブリックドメインを用いてリモートアクセスが可能となり、自身で云サーバーを購入する必要がない。
小結び 本記事では、CPolarによって生成されたトンネルを使用して説明を行ったが、そのパブリックアドレスはランダムに生成される。このランダムなアドレスの利点は、すぐに利用可能であることだが、欠点としては、URLが覚えにくいこと(例: 3ad5da5.r10.cpolar.cn)、そして24時間以内に変化することである。これは一時的な使用に適している。
私は通常、固定されたサブドメインを使用しており、同僚や顧客にURLを送るときに固定された、覚えやすいパブリックアドレス(例: nexus.cpolar.cn)を使うことで、正式な印象を与え、協業の際により使い勝手が良くなると考えている。
- 固定されたNexusのパブリックアドレスを設定 前述のように、CPolarによって生成されたトンネルはランダムなパブリックアドレスを使用しており、24時間ごとに変化してしまうため、長期的なリモートアクセスには不向きである。そこで、サブドメインを固定する設定を行う。このアドレスは変化せず、安定して使用できる(注意: cpolar.cnは登録済み)。
注意: 契約プランを基本プラン以上にアップグレードする必要があり、各プランには帯域幅の違いがある(cpolar.cnは登録済み)。
CPolarの公式サイトにログインし、左側の「予約」を選択し、保留するサブドメイン名を設定する。設定後、保留成功後にコピーする。
保留成功後、CPolarのWeb UI管理画面に戻り、「トンネル管理」→「トンネル一覧」を選択し、対応するトンネルを選択して編集する。
トンネル情報を編集し、保留したサブドメインをトンネルに設定する。
- ドメインタイプ:サブドメインを選択
- Sub Domain:保留したサブドメインを入力
「更新」をクリックする(一度クリックすれば十分で、繰り返しは不要)。
更新後、オンライントンネル一覧に移動し、パブリックアドレスが変更されていることを確認する。ドメイン名も固定されたサブドメインに変更されている。
- 固定されたアドレスでNexusにアクセス 最後に、固定されたパブリックHTTPSアドレスでNexusにアクセスする。アクセスが成功したことを確認する。これにより、常に変化しないパブリックアドレスが設定され、いつでもリモートからローカルのNexus画面にアクセス可能となる。
Nexusを用いた依存管理と、CPolarによる内網制限の突破により、リポジトリの安定した管理と柔軟なリモートアクセスが可能となり、開発チームの依存管理に実用的で便利なソリューションを提供する。これにより、協業効率が向上する。
参考元:CPolar公式サイト
- CPolarブログ:サブドメインの設定: https://www.cpolar.com/blog/configure-the-secondary-subdomain-name
- CPolarブログ:カスタムドメインの設定: https://www.cpolar.com/blog/configure-your-own-domain-name
- CPolarブログ:固定TCPポートの設定: https://www.cpolar.com/blog/configure-fixed-tcp-port-address
- CPolarブログ:固定FTPアドレスの設定: https://www.cpolar.com/blog/configure-fixed-ftp-address