Sonatype Nexusは、ほとんどのコンポーネント、バイナリ、ビルドアーティファクトに世界中で使用されている人気のあるリポジトリマネージャーです。 Gradle、Ant、Maven、IvyなどのJava仮想マシン(JVM)エコシステムのサポートが付属しています。
Sonatype Nexusリポジトリは、Eclipse、IntelliJ、Hudson、Jenkins、Puppet、Chef、Dockerなどの標準ツールと互換性があり、バイナリコンテナー、アセンブリ、完成品の配信を通じて開発コンポーネントを管理できます。
このチュートリアルでは、CentOS7でSonatypeNexusリポジトリOSSバージョンを設定するための包括的なガイドを提供します。
CentOS7へのSonatypeNexusリポジトリOSSのインストール
チュートリアルを開始する前に、SonatypeNexusRepoを実行するための最小システム要件を見てみましょう。
システム要件
- 最小CPU:4、推奨CPU:8以上
- ホスト8GBの最小物理/RAM
1。プレインストール
ホスト名の設定から始めます。
hostnamectl set-hostname nexus
CentOSシステムを更新します。
yum update -y
次のコマンドを使用してJavaをインストールします。
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

インストールが完了したら、Javaのバージョンをチェックして、リポジトリをダウンロードする次のステップに進む準備が整っていることを確認します。
java -version

2。 Nexusリポジトリマネージャー3をダウンロード
optディレクトリに移動します:
cd /opt
公式ウェブサイトからリポジトリの最新のURLをコピーし、wgetを使用してダウンロードします。
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
tarファイルを抽出します。
tar -xvzf latest-unix.tar.gz
nexusファイルとnexusデータディレクトリを含む2つのディレクトリが表示されます。
ls -lh

フォルダの名前を変更します。
mv nexus-3.20.1-01 nexus
mv sonatype-work nexusdata

3。ユーザー/権限と構成を設定する
I.ネクサスサービスのユーザーを追加します。
useradd --system --no-create-home nexus
II。ネクサスファイルとネクサスデータの所有権を設定します。
chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/nexusdata
III。 Nexusの構成を変更し、カスタムデータディレクトリを設定します
「nexus.vmoptions」を編集します。
vim /opt/nexus/bin/nexus.vmoptions
データディレクトリを変更します。
-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../nexusdata/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../nexusdata/nexus3 -Dkaraf.log=../nexusdata/nexus3/log -Djava.io.tmpdir=../nexusdata/nexus3/tmp -Dkaraf.startLocalConsole=false
ファイルを保存して終了します。

IV。ネクサスサービスアカウントのユーザーを変更します。
「nexus.rc」ファイルを編集します。
vim /opt/nexus/bin/nexus.rc
「run_as_user」パラメータのコメントを解除し、新しい値を追加します。
run_as_user="nexus"
V.リモート接続のリッスンを停止します。
「nexus-default.properties」ファイルを変更する必要があります。
vim /opt/nexus/etc/nexus-default.properties
application-host=0.0.0.0をapplication-host=127.0.0.1に変更します。

VI。 nexusユーザーのオープンファイル制限を構成します。
vim /etc/security/limits.conf
以下の値をファイルに追加します。
nexus - nofile 65536
保存して終了ファイルを作成します。
4。 Nexusをシステムサービスとして設定する
「/etc/ systemd /system/」にSystemdサービスファイルを作成します。
vim /etc/systemd/system/nexus.service
以下をファイルに追加します。
[Unit] Description=Nexus Service After=syslog.target network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Group=nexus Restart=on-failure [Install] WantedBy=multi-user.target
systemctlをリロードします。
systemctl daemon-reload
システム起動時にサービスを有効にします。
systemctl enable nexus.service
サービスを開始します。
systemctl start nexus.service
ログファイルを監視します。
tail -f /opt/nexusdata/nexus3/log/nexus.log

サービスポートを確認してください。
netstat -tunlp | grep 8081

5。 Nginxをセットアップする
epelリポジトリを設定します。
yum install -y epel-release
リポジトリを一覧表示します。
yum repolist
Nginxをインストールします。
yum install nginx
システムブート時にnginxを設定する
systemctl enable nginx
Nginxのステータスを確認し、サービスが実行されていない場合はサービスを開始します。
systemctl status nginx
systemctl start nginx
6。サーバーのDNSレコードを設定します。
次に、DNSマネージャーに移動し、サーバーのAレコードを追加します。
A Domain Name Server IP
ここでは、AWSRoute53を使用してDNSを設定しました。

7。 certbotを使用してSSLを構成する
I.最初にcertbotパッケージをインストールします。
yum install certbot python2-certbot-nginx
II。証明書をインストールします。
certbot --nginx
いくつかの質問をし、メールアドレス、ドメイン名、必要な入力を次のように入力します。

インストールが完了したら、nginx.confを開きます。
vim /etc/nginx/nginx.conf
certbotSSL構成を確認できます。
III。プロキシパスを追加
次のコンテンツをロケーションブロックに追加します。
location / { proxy_pass "http://127.0.0.1:8081"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; proxy_read_timeout 300; proxy_connect_timeout 300; }

ファイルを保存して終了します。
nginx構文を確認してください:
nginx -t
Nginxを再起動します:
systemctl restart nginx
8。ファイアウォールルールを設定する
次に、特定のパブリックIPへのhttpsアクセスを有効にします。以下のコマンドを実行します。
firewall-cmd --permanent --zone=public --add-rich-rule=' rule family="ipv4" source address="123.44.8.180/32" port protocol="tcp" port="443" accept'を受け入れる
httpsを開いて公開する必要がある場合は、以下のコマンドを実行してください:
firewall-cmd --zone=public --permanent --add-service=https
ファイアウォールをリロードします。
firewall-cmd --reload
9。 NginxのSELinuxポリシーを設定する
setsebool -P httpd_can_network_connect 1
10。ドメイン名を使用してWebサイトを閲覧する
eg: https://nexusrepo.fosslinux.com/

11。サーバーにサインインします
デフォルトのユーザー名で「admin」としてサインインします。サーバーで以下のコマンドを実行し、パスワードを取得します。
cat /opt/nexusdata/nexus3/admin.password

最初のログイン後、以下に示すような同様のウィンドウが表示されます。
[次へ]をクリックして、管理者ユーザーの新しいパスワードを設定します。

もう一度、[次へ]をクリックすると、[匿名アクセスの構成]ウィンドウが表示されます。匿名アクセスを有効にしないでください。

[次へ]ボタンをクリックすると、完全なセットアップが表示されます。

仕上げをクリックします。
CentOS7にSonatypeNexusリポジトリOSSをインストールする方法は以上です。