Nexus là một trong những trình quản lý kho lưu trữ phổ biến nhất trong thế giới DevOps. Nó cho phép bạn lưu trữ và truy xuất các hiện vật xây dựng và cũng cung cấp các tính năng để đẩy và kéo hiện vật thông qua các công cụ tích hợp CI và IDE như Visual Studio và Jenkins.
Có hai phiên bản của trình quản lý kho lưu trữ Nexus: Phiên bản thương mại và phiên bản mã nguồn mở. Nó hỗ trợ rất nhiều định dạng như PyPi, Docker, Yum, APT, Helm, npm, Go, R và nhiều định dạng khác nữa.
Sử dụng Nexus làm kho lưu trữ, cho phép các nhà phát triển của bạn lấy và quản lý các gói trên trình quản lý kho lưu trữ tập trung, điều này cũng cung cấp cho nhóm nhà phát triển một nguồn thông tin đáng tin cậy duy nhất cho mọi gói.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Trình quản lý kho lưu trữ Nexus trên máy chủ Ubuntu 22.04. Hướng dẫn này cũng bao gồm cài đặt một số gói như Java OpenJDK và máy chủ web Nginx sẽ được sử dụng làm proxy ngược.
Trước khi cài đặt bất kỳ gói nào, hãy chạy lệnh apt bên dưới để cập nhật và làm mới chỉ mục gói kho lưu trữ của bạn.
Bây giờ, hãy cài đặt Java OpenJDK 8 thông qua lệnh apt bên dưới. Nhập Y khi được yêu cầu xác nhận cài đặt và nhấn ENTER để tiếp tục.
Sau khi Java được cài đặt, hãy xác minh phiên bản Java trên hệ thống của bạn bằng lệnh sau.
Bạn sẽ thấy đầu ra trong ảnh chụp màn hình sau:
Chạy lệnh sau để tạo một người dùng chuyên dụng mới cho Nexus với tên 'nexus'
Tiếp theo, đặt ulimit thành '65536' bằng lệnh bên dưới. Lệnh này chỉ ảnh hưởng tạm thời đến hệ thống trên hệ thống hiện tại. Để làm cho ulimit có hiệu lực vĩnh viễn, bạn có thể tạo một tệp cấu hình mới mà bạn sẽ thực hiện ở bước tiếp theo.
ĐỂ thiết lập ulimit có hiệu lực vĩnh viễn, hãy tạo một tệp cấu hình mới '/etc/security/limits.d/nexus.conf' bằng trình soạn thảo nano.
Thêm cấu hình sau vào tệp. Trong ví dụ này, bạn đang thiết lập ulimit cho người dùng cụ thể 'nexus' với giá trị '65536'.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Với tất cả các yêu cầu cơ bản đã được thiết lập và cấu hình, bạn đã sẵn sàng cài đặt Nexus Repository Manager trên hệ thống Ubuntu của mình.
Tải xuống gói Nexus Repository Manager thông qua lệnh wget như bên dưới. Nếu quá trình tải xuống hoàn tất, bạn sẽ thấy tệp 'nexus-3.41.1-01-unix.tar.gz' trong thư mục làm việc hiện tại của mình.
Bây giờ hãy giải nén tệp 'nexus-3.41.1-01-unix.tar.gz' thông qua lệnh tar bên dưới. Và bạn sẽ nhận được hai thư mục, 'nexus-3.41.1-01' và 'sonatype-work'.
Thư mục 'nexus-3.41.1-01' là thư mục chính cho gói Nexus và thư mục 'sonatype-work' là thư mục làm việc chính cho Nexus.
Tiếp theo, di chuyển các thư mục đã giải nén đó đến '/opt' bằng lệnh sau. Thư mục gói Nexus sẽ là '/opt/nexus' và thư mục làm việc Nexus sẽ là '/opt/sonatype-work'.
Cuối cùng, hãy thay đổi quyền sở hữu của cả hai thư mục thành người dùng và nhóm 'nexus' thông qua lệnh chown bên dưới.
Tiếp theo, bạn sẽ thiết lập cài đặt Nexus của mình bằng cách chỉnh sửa một số tệp cấu hình Nexus.
Mở tệp '/opt/nexus/bin/nexus.rc' bằng trình soạn thảo nano.
Bỏ ghi chú tùy chọn 'run_as_user' và thay đổi giá trị thành 'nexus'. Với cấu hình này, bạn sẽ chạy ứng dụng Nexus với tư cách là người dùng hệ thống 'nexus'.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, mở tệp cấu hình '/etc/nexus/bin/nexus.vmoptions' bằng trình chỉnh sửa nano để thiết lập bộ nhớ heap tối đa cho Nexus.
Thay đổi bộ nhớ heap tối đa mặc định cho cài đặt Nexus của bạn trong các tùy chọn sau. Bạn có thể thay đổi kích thước thành '1024m' dựa trên bộ nhớ mà bạn có trên máy chủ của mình.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Bây giờ, hãy chỉnh sửa tệp cấu hình '/opt/sonatype-work/nexus3/etc/nexus.properties' bằng trình chỉnh sửa nano.
sudo nano /opt/sonatype-work/nexus3/etc/nexus.properties
Bỏ chú thích tùy chọn 'application-host' và thay đổi giá trị thành '127.0.0.1'. Điều này có nghĩa là bạn sẽ chạy Nexus trên máy chủ cục bộ hoặc địa chỉ IP '127.0.0.1'.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ bạn đã tải xuống và định cấu hình Nexus Repository Manager. Tiếp theo, bạn sẽ thiết lập tệp dịch vụ systemd cho Nexus.
Chạy Nexus với tệp dịch vụ systemd cho phép bạn quản lý quy trình nexus thông qua lệnh systemctl.
Bây giờ, hãy tạo tệp dịch vụ mới '/etc/systemd/system/nexus.service' bằng trình soạn thảo nano.
Thêm cấu hình sau vào tệp.
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để tải lại trình quản lý hệ thống và áp dụng tệp dịch vụ mới cho Nexus.
Khởi động và bật 'nexus.service' thông qua lệnh systemctl bên dưới. Trình quản lý kho lưu trữ Nexus hiện sẽ bắt đầu tại địa chỉ IP cục bộ 127.0.0.1 với cổng mặc định '8081'. Ngoài ra, 'nexus.service' sẽ tự động chạy khi khởi động hệ thống.
Cuối cùng, hãy chạy lệnh sau để xác minh 'nexus.service' và đảm bảo dịch vụ đang chạy.
Với Nexus đang chạy như một dịch vụ systemd, giờ đây bạn có thể thiết lập proxy ngược cho Nexus.
Chạy lệnh apt sau để cài đặt máy chủ web Nginx vào hệ thống Ubuntu của bạn. Khi được nhắc xác nhận cài đặt, hãy nhập Y và nhấn ENTER để tiếp tục.
Sau khi Nginx được cài đặt, hãy chạy lệnh systemctl sau để kiểm tra và xác minh dịch vụ nginx. Bạn sẽ thấy dịch vụ nginx được bật và sẽ tự động chạy khi khởi động hệ thống. Và trạng thái của dịch vụ nginx đang chạy.
Tiếp theo, tạo cấu hình khối máy chủ mới '/etc/nginx/sites-available/nexus' bằng trình soạn thảo nano.
Thêm cấu hình Nginx sau vào tệp và nhớ thay đổi tên miền.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, chạy lệnh sau để kích hoạt cấu hình khối máy chủ cho Nexus bằng cách tạo liên kết tượng trưng của tệp cấu hình đến thư mục 'sites-enabled'. Sau đó, xác minh cấu hình Nginx để đảm bảo Nginx được cấu hình đúng cách.
Nếu cấu hình Nginx của bạn được cấu hình đúng cách, bạn sẽ nhận được thông báo đầu ra như "test is successfull".
Cuối cùng, chạy lệnh sau để khởi động lại dịch vụ Nginx và áp dụng cấu hình khối máy chủ mới cho Nexus.
Bây giờ bạn đã thiết lập máy chủ web Nginx làm proxy ngược cho Nexus Repository Manager trên máy Ubuntu của mình. Bây giờ bạn có thể truy cập cài đặt Nexus của mình thông qua tên miền của bạn.
Mở trình duyệt web và truy cập tên miền cài đặt Nexus của bạn (ví dụ: http://nexus.howtoforge.local). Và bạn sẽ nhận được trang Nexus mặc định như bên dưới.
Nhấp vào nút "Đăng nhập" để đăng nhập vào bảng điều khiển quản trị Nexus.
Mật khẩu quản trị mặc định cho Nexus được lưu trữ tại tệp '/opt/sonatype-work/nexus3/admin.properties' với tên người dùng mặc định là admin.
Quay lại thiết bị đầu cuối của bạn và chạy lệnh sau để lấy mật khẩu mặc định để đăng nhập Nexus. Sau đó, sao chép mật khẩu mặc định cho Nexus.
Tiếp theo, nhập người dùng admin và dán mật khẩu cho Nexus. Sau đó, nhấp vào "Đăng nhập".
Bây giờ bạn sẽ nhận được trình hướng dẫn thiết lập của Nexus Repository Manager. Nhấp vào "Tiếp theo" để tiếp tục.
Nhập mật khẩu mạnh mới cho cài đặt Nexus của bạn và lặp lại. Sau đó, nhấp vào "Tiếp theo" một lần nữa.
Đối với cấu hình "Truy cập ẩn danh". Chọn tùy chọn "Tắt truy cập ẩn danh" và nhấp vào "Tiếp theo".
Bây giờ hãy nhấp vào "Hoàn tất" để hoàn tất cấu hình Nexus.
Sau khi cấu hình Nexus hoàn tất, bây giờ bạn sẽ thấy bảng điều khiển quản trị Nexus. Trong ảnh chụp màn hình bên dưới, bạn có thể thấy Nexus Repository Manager.
Cuối cùng, hãy xác minh cài đặt Nexus của bạn thông qua nút kiểm tra trạng thái ở trên cùng. Bây giờ hãy đảm bảo rằng tất cả trạng thái hệ thống được đánh dấu là màu xanh lá cây, điều đó có nghĩa là cài đặt và cấu hình Nexus đã thành công.
Nếu bạn muốn chạy Nexus trên môi trường sản xuất, bạn có thể thiết lập bảo mật cho nexus của mình bằng SSL/TLS thông qua Letsencrypt.
Có hai phiên bản của trình quản lý kho lưu trữ Nexus: Phiên bản thương mại và phiên bản mã nguồn mở. Nó hỗ trợ rất nhiều định dạng như PyPi, Docker, Yum, APT, Helm, npm, Go, R và nhiều định dạng khác nữa.
Sử dụng Nexus làm kho lưu trữ, cho phép các nhà phát triển của bạn lấy và quản lý các gói trên trình quản lý kho lưu trữ tập trung, điều này cũng cung cấp cho nhóm nhà phát triển một nguồn thông tin đáng tin cậy duy nhất cho mọi gói.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Trình quản lý kho lưu trữ Nexus trên máy chủ Ubuntu 22.04. Hướng dẫn này cũng bao gồm cài đặt một số gói như Java OpenJDK và máy chủ web Nginx sẽ được sử dụng làm proxy ngược.
Điều kiện tiên quyết
Trước khi bắt đầu, bạn sẽ cần các yêu cầu sau:- Máy chủ Ubuntu 22.04.
- Người dùng không phải root đã bật sudo/administrator.
- Tên miền trỏ đến địa chỉ IP máy chủ Ubuntu của bạn (Dành cho sản xuất).
Cài đặt Java OpenJDK 8
Nexus Repository Manager yêu cầu Java OpenJDK và JRE v8. Kho lưu trữ Ubuntu mặc định cung cấp nhiều phiên bản Java, vì vậy bây giờ bạn sẽ cài đặt Java OpenJDK và JRE v8 từ kho lưu trữ Ubuntu.Trước khi cài đặt bất kỳ gói nào, hãy chạy lệnh apt bên dưới để cập nhật và làm mới chỉ mục gói kho lưu trữ của bạn.
Mã:
sudo apt update
Mã:
sudo apt install openjdk-8-jdk
Sau khi Java được cài đặt, hãy xác minh phiên bản Java trên hệ thống của bạn bằng lệnh sau.
Mã:
java -version
Thiết lập hệ thống
Để cài đặt Nexus, bạn sẽ cần tạo một người dùng Linux chuyên dụng mới với một shell hợp lệ và cũng cần thiết lập số lượng tệp mở tối đa cho cả giới hạn cứng và mềm là '65536'.Chạy lệnh sau để tạo một người dùng chuyên dụng mới cho Nexus với tên 'nexus'
Mã:
sudo useradd -d /opt/nexus -s /bin/bash nexus
sudo passwd nexus
Tiếp theo, đặt ulimit thành '65536' bằng lệnh bên dưới. Lệnh này chỉ ảnh hưởng tạm thời đến hệ thống trên hệ thống hiện tại. Để làm cho ulimit có hiệu lực vĩnh viễn, bạn có thể tạo một tệp cấu hình mới mà bạn sẽ thực hiện ở bước tiếp theo.
Mã:
ulimit -n 65536
Mã:
sudo nano /etc/security/limits.d/nexus.conf
Mã:
nexus - nofile 65536
Với tất cả các yêu cầu cơ bản đã được thiết lập và cấu hình, bạn đã sẵn sàng cài đặt Nexus Repository Manager trên hệ thống Ubuntu của mình.
Cài đặt Nexus Repository Manager
Có thể cài đặt Nexus Repository Manager thông qua gói phân phối mà bạn có thể tải xuống từ trang tải xuống Sonatype chính thức. Tại thời điểm viết bài này, phiên bản mới nhất của Nexus là v3.41.1. Bây giờ, bạn sẽ tải xuống gói phân phối Nexus Repository Manager và cấu hình cài đặt Nexus.Tải xuống gói Nexus Repository Manager thông qua lệnh wget như bên dưới. Nếu quá trình tải xuống hoàn tất, bạn sẽ thấy tệp 'nexus-3.41.1-01-unix.tar.gz' trong thư mục làm việc hiện tại của mình.
Mã:
wget https://download.sonatype.com/nexus/3/nexus-3.41.1-01-unix.tar.gz
Thư mục 'nexus-3.41.1-01' là thư mục chính cho gói Nexus và thư mục 'sonatype-work' là thư mục làm việc chính cho Nexus.
Mã:
tar xzf nexus-3.41.1-01-unix.tar.gz
Mã:
mv nexus-3.41.1-01 /opt/nexus
mv sonatype-work /opt/
Mã:
chown -R nexus:nexus /opt/nexus /opt/sonatype-work
Tiếp theo, bạn sẽ thiết lập cài đặt Nexus của mình bằng cách chỉnh sửa một số tệp cấu hình Nexus.
Mở tệp '/opt/nexus/bin/nexus.rc' bằng trình soạn thảo nano.
Mã:
sudo nano /opt/nexus/bin/nexus.rc
Mã:
run_as_user="nexus"
Tiếp theo, mở tệp cấu hình '/etc/nexus/bin/nexus.vmoptions' bằng trình chỉnh sửa nano để thiết lập bộ nhớ heap tối đa cho Nexus.
Mã:
sudo nano /etc/nexus/bin/nexus.vmoptions
Mã:
-Xms1024m
-Xmx1024m
-XX:MaxDirectMemorySize=1024m
Bây giờ, hãy chỉnh sửa tệp cấu hình '/opt/sonatype-work/nexus3/etc/nexus.properties' bằng trình chỉnh sửa nano.
sudo nano /opt/sonatype-work/nexus3/etc/nexus.properties
Bỏ chú thích tùy chọn 'application-host' và thay đổi giá trị thành '127.0.0.1'. Điều này có nghĩa là bạn sẽ chạy Nexus trên máy chủ cục bộ hoặc địa chỉ IP '127.0.0.1'.
Mã:
application-host=127.0.0.1
Bây giờ bạn đã tải xuống và định cấu hình Nexus Repository Manager. Tiếp theo, bạn sẽ thiết lập tệp dịch vụ systemd cho Nexus.
Chạy Nexus dưới dạng Dịch vụ SystemD
Trên cài đặt mặc định, Nexus Repository Manager có thể được chạy thủ công thông qua lệnh nhị phân 'nexus' có sẵn trong thư mục '/opt/nexus/bin'. Tuy nhiên, để quản lý Nexus dễ dàng hơn, bạn sẽ thiết lập tệp dịch vụ systemd cho Nexus.Chạy Nexus với tệp dịch vụ systemd cho phép bạn quản lý quy trình nexus thông qua lệnh systemctl.
Bây giờ, hãy tạo tệp dịch vụ mới '/etc/systemd/system/nexus.service' bằng trình soạn thảo nano.
Mã:
sudo /etc/systemd/system/nexus.service
Mã:
[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
Tiếp theo, chạy lệnh sau để tải lại trình quản lý hệ thống và áp dụng tệp dịch vụ mới cho Nexus.
Mã:
sudo systemctl daemon-reload
Mã:
sudo systemctl start nexus.service
sudo systemctl enable nexus.service
Cuối cùng, hãy chạy lệnh sau để xác minh 'nexus.service' và đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl status nexus.service
Với Nexus đang chạy như một dịch vụ systemd, giờ đây bạn có thể thiết lập proxy ngược cho Nexus.
Chạy Nexus bằng Proxy ngược
Trình quản lý kho lưu trữ Nexus hiện đang chạy trên địa chỉ IP cục bộ '127.0.0.1' với cổng mặc định '8081'. Để có thể truy cập từ bên ngoài mạng, bạn sẽ sử dụng proxy ngược Nginx sẽ chạy trên các cổng HTTP/HTTPS chuẩn.Chạy lệnh apt sau để cài đặt máy chủ web Nginx vào hệ thống Ubuntu của bạn. Khi được nhắc xác nhận cài đặt, hãy nhập Y và nhấn ENTER để tiếp tục.
Mã:
sudo apt install nginx
Sau khi Nginx được cài đặt, hãy chạy lệnh systemctl sau để kiểm tra và xác minh dịch vụ nginx. Bạn sẽ thấy dịch vụ nginx được bật và sẽ tự động chạy khi khởi động hệ thống. Và trạng thái của dịch vụ nginx đang chạy.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Tiếp theo, tạo cấu hình khối máy chủ mới '/etc/nginx/sites-available/nexus' bằng trình soạn thảo nano.
Mã:
sudo nano /etc/nginx/sites-available/nexus
Mã:
upstream nexus3 {
server 127.0.0.1:8081;
}
server {
listen 80;
server_name nexus.howtoforge.local;
location / {
proxy_pass http://nexus3/;
proxy_http_version 1.1;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "nâng cấp";
proxy_set_header Máy chủ $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 tắt;
}
}
Tiếp theo, chạy lệnh sau để kích hoạt cấu hình khối máy chủ cho Nexus bằng cách tạo liên kết tượng trưng của tệp cấu hình đến thư mục 'sites-enabled'. Sau đó, xác minh cấu hình Nginx để đảm bảo Nginx được cấu hình đúng cách.
Mã:
sudo ln -s /etc/nginx/sites-available/nexus /etc/nginx/sites-enabled/
sudo nginx -t
Cuối cùng, chạy lệnh sau để khởi động lại dịch vụ Nginx và áp dụng cấu hình khối máy chủ mới cho Nexus.
Mã:
sudo systemctl restart nginx
Cài đặt Nexus Repository Manager
Lúc này, trình quản lý Nexus Repository đang chạy dưới proxy ngược Nginx. Và có thể truy cập thông qua tên miền cài đặt của bạn.Mở trình duyệt web và truy cập tên miền cài đặt Nexus của bạn (ví dụ: http://nexus.howtoforge.local). Và bạn sẽ nhận được trang Nexus mặc định như bên dưới.
Nhấp vào nút "Đăng nhập" để đăng nhập vào bảng điều khiển quản trị Nexus.
Mật khẩu quản trị mặc định cho Nexus được lưu trữ tại tệp '/opt/sonatype-work/nexus3/admin.properties' với tên người dùng mặc định là admin.
Quay lại thiết bị đầu cuối của bạn và chạy lệnh sau để lấy mật khẩu mặc định để đăng nhập Nexus. Sau đó, sao chép mật khẩu mặc định cho Nexus.
Mã:
cat /opt/sonatype-work/nexus3/admin.properties
Bây giờ bạn sẽ nhận được trình hướng dẫn thiết lập của Nexus Repository Manager. Nhấp vào "Tiếp theo" để tiếp tục.
Nhập mật khẩu mạnh mới cho cài đặt Nexus của bạn và lặp lại. Sau đó, nhấp vào "Tiếp theo" một lần nữa.
Đối với cấu hình "Truy cập ẩn danh". Chọn tùy chọn "Tắt truy cập ẩn danh" và nhấp vào "Tiếp theo".
Bây giờ hãy nhấp vào "Hoàn tất" để hoàn tất cấu hình Nexus.
Sau khi cấu hình Nexus hoàn tất, bây giờ bạn sẽ thấy bảng điều khiển quản trị Nexus. Trong ảnh chụp màn hình bên dưới, bạn có thể thấy Nexus Repository Manager.
Cuối cùng, hãy xác minh cài đặt Nexus của bạn thông qua nút kiểm tra trạng thái ở trên cùng. Bây giờ hãy đảm bảo rằng tất cả trạng thái hệ thống được đánh dấu là màu xanh lá cây, điều đó có nghĩa là cài đặt và cấu hình Nexus đã thành công.
Kết luận
Trong hướng dẫn này, bạn đã thiết lập Nexus Repository Manager trên máy chủ Ubuntu 22.04. Bạn cũng đã cấu hình máy chủ web Nginx làm proxy ngược cho Nexus. Bây giờ, bạn có thể thêm kho lưu trữ của các dự án của mình vào trình quản lý kho lưu trữ Nexus và tập trung nguồn của các dự án để có thể dễ dàng xây dựng và phân phối ứng dụng của mình cho các nhà phát triển.Nếu bạn muốn chạy Nexus trên môi trường sản xuất, bạn có thể thiết lập bảo mật cho nexus của mình bằng SSL/TLS thông qua Letsencrypt.