Beberapa bulan ini saya mengikuti Bootcamp Devops secara online dan saat ini masih berlangsung. Bootcamp ini menurut saya cukup berat karena yang dipelajari adalah berkaitan dengan programming, ditambah lagi saya juga harus menyelesaikan pekerjaan sehari-hari dan juga mengurus usaha diluar pekerjaan tetap yang saya lakukan saat ini. Walau demikian, prosesnya tetap bisa berjalan dengan baik dan saya juga bisa memahami apa yang disampaikan.
Ada banyak hal yang sudah saya pelajari dari bootcamp, salah satunya adalah Nexus Repository Manager. Nexus ini merupakan salah satu komponen untuk menunjang proses Continuous Integration and Continuous Delivery/Continuous Deployment (CICD) yang dilakukan oleh seorang Devops. Nexus berfungsi sebagai repository berbagai macam artifact aplikasi, mulai dari Java Artifact (JAR), Container Image, Linux Package dan lain-lain.
Sebelumnya saya sudah berhasil melakukan instalasi dan menggunakan Nexus sebagai private repository manager untuk project bootcamp saya. Berikut adalah langkah-langkah untuk melakukan instalasi Nexus di Linux Ubuntu 22:
Sebelum melakukan proses instalasi, siapkan server atau VM dengan spesifikasi minimum sebagai berikut:
- vCPU: 2
- Memory: 4 GB
- Disk: 100 GB
Configure server tersebut supaya bisa dilakukan remote via SSH. Spesifikasi diatas sudah cukup jika hanya digunakan untuk uji coba atau hanya digunakan untuk kebutuhan internal dengan cakupan kecil. Namun, jika Nexus digunakan pada lingkungan production sebaiknya menggunakan server atau VM 2x dari spesifikasi diatas.
Langkah 1: Instalasi Dependencies Java 8
- Jalankan perintah-perintah berikut untuk melakukan instalasi Java versi 8:
# apt update # apt install openjdk-8-jre-headless -y
- Cek versi Java:
# java -version openjdk version "1.8.0_362" OpenJDK Runtime Environment (build 1.8.0_362-8u362-ga-0ubuntu1~22.04-b09) OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
Langkah 2: Download Installer Nexus
- Get download URL installer Nexus terbaru untuk sistem operasi berbasis UNIX dari website sonatype https://help.sonatype.com/repomanager3/product-information/download
- Download dan extract installer Nexus di direktori /opt
# cd /opt/ # wget -c https://download.sonatype.com/nexus/3/nexus-3.51.0-01-unix.tar.gz # ls nexus-3.51.0-01-unix.tar.gz # tar -zxvf nexus-3.51.0-01-unix.tar.gz # ls nexus-3.51.0-01 nexus-3.51.0-01-unix.tar.gz sonatype-work
- Rename direktori hasil ekstrak menjadi nama yang lebih simpel
# mv nexus-3.51.0-01 nexus
Langkah 3: Create User Nexus
- Create dedicated user untuk Nexus dengan home directory hasil extract installer Nexus
# adduser --no-create-home --home "/opt/nexus" nexus Adding user `nexus' ... Adding new group `nexus' (1001) ... Adding new user `nexus' (1001) with group `nexus' ... Not creating home directory `/opt/nexus'. New password: Retype new password: passwd: password updated successfully Changing the user information for nexus Enter the new value, or press ENTER for the default Full Name []: nexus Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
- Sesuaikan permission folder Nexus
# chown -R nexus. /opt/nexus /opt/sonatype-work
- Sesuaikan user pada file /opt/nexus/bin/nexus.rc
# echo run_as_user="nexus" > /opt/nexus/bin/nexus.rc
Langkah 4: Start Service Nexus
- Membuat file service untuk Nexus
# cat > /etc/systemd/system/nexus.service << EOF; [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 TimeoutSec=600 [Install] WantedBy=multi-user.target EOF
- Restart daemon Linux
# systemctl daemon-reload
- Start service Nexus
# systemctl start nexus # systemctl enable nexus
Testing:
- Akses webui Nexus Repository Manager melalui web browser menggunakan port 8081
- Sign in menggunakan username admin password yang ada pada file /opt/sonatype-work/nexus3/admin.password
- Masukan password akun admin yang baru
- Disable anonymous access
- Finish