GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal dan Mengonfigurasi Nexus Repository Manager di Ubuntu 20.04

Nexus adalah pengelola repositori yang menyediakan platform yang melindungi seluruh siklus pengembangan perangkat lunak Anda. Ini memungkinkan Anda untuk mengumpulkan, dan mengelola dependensi Anda dan membuatnya lebih mudah untuk mendistribusikan perangkat lunak Anda. Ini adalah sumber tunggal dari semua komponen, binari, dan artefak bangunan. Ini memberikan dukungan untuk Gradle, Ant, Maven dan Ivy, dan memungkinkan dev untuk mengelola komponen melalui binari, kontainer, rakitan, dan barang jadi. Anda juga dapat mengintegrasikan Nexus dengan pengguna dan sistem autentikasi yang ada seperti, LDAP dan Atlassian Crowd.

Dalam tutorial ini, kami akan menunjukkan cara menginstal manajer repositori Nexus di Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04.
  • Sandi root dikonfigurasi untuk server.

Memulai

Sebelum memulai, Anda perlu memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya menggunakan perintah berikut:

apt-get update -y

Setelah server Anda diperbarui, Anda dapat melanjutkan ke langkah berikutnya.

Instal Java

Nexus didasarkan pada Java sehingga Anda perlu menginstal Java versi 8 di sistem Anda. Anda dapat menginstalnya dengan perintah berikut:

apt-get install openjdk-8-jdk -y

Setelah Java diinstal, Anda dapat memverifikasi versi Java yang diinstal dengan perintah berikut:

java -version

Anda akan mendapatkan output berikut:

openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

Setelah Java diinstal, Anda dapat melanjutkan ke langkah berikutnya.

Instal Nexus

Sebelum memulai, Anda harus membuat pengguna terpisah untuk menjalankan Nexus. Anda dapat membuatnya dengan menjalankan perintah berikut:

useradd -M -d /opt/nexus -s /bin/bash -r nexus

Selanjutnya, izinkan pengguna nexus untuk menjalankan semua pengguna dengan sudo tanpa kata sandi apa pun. Anda dapat melakukannya dengan dengan menjalankan perintah berikut:

echo "nexus ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nexus

Selanjutnya, buat direktori untuk Nexus dan unduh Nexus versi terbaru dengan perintah berikut:

mkdir /opt/nexus
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.29.2-02-unix.tar.gz

Setelah unduhan selesai, ekstrak file yang diunduh ke direktori /opt/nexus dengan menjalankan perintah berikut:

tar xzf nexus-3.29.2-02-unix.tar.gz -C /opt/nexus --strip-components=1

Selanjutnya, setel kepemilikan yang tepat ke direktori nexus dengan menjalankan perintah berikut:

chown -R nexus:nexus /opt/nexus

Selanjutnya, edit nexus.vmoptions file konfigurasi dan tentukan ukuran memori maksimal:

nano /opt/nexus/bin/nexus.vmoptions

Setel ukuran memori maks Java dan ganti "../sonatype-work" dengan "./sonatype-work":

-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m

-XX:LogFile=./sonatype-work/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=./sonatype-work/nexus3
-Dkaraf.log=./sonatype-work/nexus3/log
-Djava.io.tmpdir=./sonatype-work/nexus3/tmp

Simpan dan tutup file kemudian edit file nexus.rc dan tentukan run as user:

nano /opt/nexus/bin/nexus.rc

Batalkan komentar dan ubah baris berikut dengan pengguna nexus:

run_as_user="nexus"

Simpan dan tutup file tersebut kemudian jalankan layanan Nexxus dengan perintah berikut:

sudo -u nexus /opt/nexus/bin/nexus start

Selanjutnya, verifikasi Nexus dengan perintah berikut:

tail -f /opt/nexus/sonatype-work/nexus3/log/nexus.log

Anda akan mendapatkan output berikut:

2021-02-23 12:20:51,839+0000 INFO  [jetty-main-1]  *SYSTEM com.softwarementors.extjs.djn.servlet.DirectJNgineServlet - Servlet GLOBAL configuration: registryConfiguratorClass=
2021-02-23 12:20:51,853+0000 INFO  [jetty-main-1]  *SYSTEM com.softwarementors.extjs.djn.jscodegen.CodeFileGenerator - Creating source files for APIs...
2021-02-23 12:20:52,582+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - JAX-RS RuntimeDelegate: org.sona[email protected]649a69ca
2021-02-23 12:20:52,611+0000 INFO  [jetty-main-1]  *SYSTEM org.jboss.resteasy.plugins.validation.i18n - RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory
2021-02-23 12:20:53,811+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.siesta.SiestaServlet - Initialized
2021-02-23 12:20:53,817+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Initialized
2021-02-23 12:20:53,852+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.handler.ContextHandler - Started [email protected]{Sonatype Nexus,/,file:///opt/nexus/public/,AVAILABLE}
2021-02-23 12:20:53,883+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started [email protected]{HTTP/1.1, (http/1.1)}{0.0.0.0:8081}
2021-02-23 12:20:53,884+0000 INFO  [jetty-main-1]  *SYSTEM org.eclipse.jetty.server.Server - Started @37529ms
2021-02-23 12:20:53,884+0000 INFO  [jetty-main-1]  *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - 
-------------------------------------------------

Started Sonatype Nexus OSS 3.29.2-02

-------------------------------------------------

Pada titik ini, Nexus dimulai dan mendengarkan pada port 8081. Anda dapat memeriksanya dengan perintah berikut:

ss -altnp | grep 8081

Anda akan mendapatkan output berikut:

LISTEN    0         50                 0.0.0.0:8081             0.0.0.0:*        users:(("java",pid=5548,fd=795)) 

Selanjutnya, hentikan layanan Nexus dengan perintah berikut:

/opt/nexus/bin/nexus stop

Buat File Layanan Systemd untuk Nexus

Selanjutnya, Anda perlu membuat file layanan systemd untuk mengelola layanan Nexus. Anda dapat membuatnya dengan perintah berikut:

nano /etc/systemd/system/nexus.service

Tambahkan baris berikut:

[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target

Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, mulai layanan Nexus dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:

systemctl start nexus
systemctl enable nexus

Anda juga dapat memverifikasi status layanan Nexus menggunakan perintah berikut:

systemctl status nexus

Anda akan mendapatkan output berikut:

? nexus.service - nexus service
     Loaded: loaded (/etc/systemd/system/nexus.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-02-23 12:22:49 UTC; 15s ago
    Process: 6181 ExecStart=/opt/nexus/bin/nexus start (code=exited, status=0/SUCCESS)
   Main PID: 6368 (java)
      Tasks: 40 (limit: 4691)
     Memory: 642.9M
     CGroup: /system.slice/nexus.service
             ??6368 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -server -Dinstall4j.jvmDir=/usr/lib/jvm/java-8-openjdk-amd64/jre -Dexe4j.mo>

Feb 23 12:22:49 ubuntu2004 systemd[1]: Starting nexus service...
Feb 23 12:22:49 ubuntu2004 nexus[6181]: Starting nexus
Feb 23 12:22:49 ubuntu2004 systemd[1]: Started nexus service.
lines 1-13/13 (END)

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasikan Nginx sebagai Proxy Terbalik untuk Nexus

Selanjutnya, Anda perlu menginstal Nginx dan mengkonfigurasi Nginx sebagai proxy terbalik. Pertama, instal paket Nginx dengan perintah berikut:

apt-get install nginx -y

Setelah Nginx terinstal, buat file konfigurasi virtual host Nginx dengan perintah berikut:

nano /etc/nginx/conf.d/nexus.conf

Tambahkan baris berikut:

upstream backend {
  server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name nexus.example.com;

    location / {
        proxy_pass http://backend/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;

        proxy_redirect off;
    }
}

Simpan dan tutup file kemudian verifikasi file konfigurasi Nginx dengan perintah berikut:

nginx -t

Anda akan mendapatkan output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Terakhir, restart layanan Nginx untuk menerapkan perubahan:

systemctl restart nginx

Anda juga dapat memverifikasi status Nginx dengan perintah berikut:

systemctl status nginx

Anda akan mendapatkan output berikut:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-02-23 12:24:57 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 7106 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 7107 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 7123 (nginx)
      Tasks: 3 (limit: 4691)
     Memory: 3.5M
     CGroup: /system.slice/nginx.service
             ??7123 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??7124 nginx: worker process
             ??7125 nginx: worker process

Feb 23 12:24:57 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 23 12:24:57 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Akses Antarmuka Web Nexus

Sebelum mengakses UI web Nexus, cetak kata sandi admin Nexus dengan perintah berikut:

cat /opt/nexus/sonatype-work/nexus3/admin.password

Anda akan mendapatkan output berikut:

b7c899cf-c6d3-4d11-a4cb-9a44e5d1787e

Sekarang, buka browser web Anda dan akses UI web Nexus menggunakan URL http://nexus.example.com . Anda akan diarahkan ke halaman berikut:

Sekarang, klik tombol Masuk tombol. Anda akan diarahkan ke halaman login Nexus:

Berikan nama pengguna, kata sandi admin Anda, dan klik Masuk tombol. Anda akan melihat halaman penyiapan Nexus:

Klik Berikutnya tombol untuk melanjutkan. Anda akan melihat halaman berikut:

Tetapkan kata sandi baru Anda dan klik tombol Berikutnya tombol. Anda akan melihat halaman berikut:

Pilih opsi "Aktifkan akses anonim" dan klik Berikutnya tombol. Anda akan melihat halaman berikut:

Klik tombol Selesai untuk menyelesaikan penyiapan dan klik Setelan roda gigi ikon. Anda akan melihat dasbor repositori Nexus:

Kesimpulan

Selamat! Anda telah berhasil menginstal manajer repositori Nexus dengan Nginx sebagai proxy terbalik di server Ubuntu 20.04. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Ubuntu
  1. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 18.04

  2. Cara Menginstal dan Mengkonfigurasi Redmine di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Samba di Ubuntu 18.04

  1. Cara Menginstal dan Mengonfigurasi Redis di Ubuntu 20.04

  2. Cara Menginstal dan Mengonfigurasi Jenkins di Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi Askbot di Ubuntu 16.04

  1. Cara Menginstal dan Mengonfigurasi MongoDB di Ubuntu 14.04

  2. Cara menginstal dan mengkonfigurasi Solr 6 di Ubuntu 16.04

  3. Cara Menginstal dan Mengonfigurasi GitLab di Ubuntu 16.04