如何企业二进制部署NXRM?

文件服务

1 基础知识

1.1 NXRM的介绍

– NXRM是Nexus Repository Manager的缩写,翻译为nexus存储库管理器
– NXRM是专用的服务器应用程序,负责管理团队开发中的所有存储库(如Maven Central、npm等)
– NXRM响应多数软件开源或专用第三方代码组装的情况下开发
– NXRM可有效获取、存储、共享和部署软件部件
– NXRM不是从公共存储库直接下载、重复下载或手动分发而是提供一个中央访问和管理点

1.2 NXRM的功能

– 代理远程存储库并缓存
– 托管内部存储库
– 将多个存储库分组到一个存储库中,提供一个用于配置的URL

1.3 NXRM的优点

– NXRM允许系统自动从远程存储库中获取组件并缓存
– NXRM缓存有利于减少网络流量和构建实践
– NXRM可解决公共存储库故障或删除组件的问题

1.4 安装要求

1.4.1 硬件要求

– CPU:最低4Core(推荐8Core)
– 内存:最低8GB
– 硬盘:存储库小于20个,推荐小于20GB;存储库小于50个,推荐小于200GB,存储库大于50个,推荐200GB以上

1.4.2 系统要求

– Windows
– Linux
– Unix
– Macintosh

1.4.3 运行时要求

– Java 8(JRE)
– 必须指定内存堆栈的最小(-Xms)和最大(-Xmx)值
– 8GB指定范例(-Xms2703M -Xmx2703M -XX:MaxDirectMemorySize=2703M)
– 12GB指定范例(-Xms4G -Xmx4G -XX:MaxDirectMemorySize=4014M)
– 16GB指定范例(-Xms4G -Xmx4G -XX:MaxDirectMemorySize=6717M)
– 32GB指定范例(-Xms6G -Xmx6G -XX:MaxDirectMemorySize=15530M)
– 64GB指定范例(-Xms8G -Xmx8G -XX:+UseG1GC -XX:MaxDirectMemorySize=35158M)

1.4.4 文件句柄要求

echo 'nexus - nofile 65536' > /etc/security/limits.conf.d/nexus-repository-manager.conf

1.4.5 版本分类

– Nexus Repository OSS,即Open Source Software,开源软件
– Nexus Repository Pro,即Professional,专业版

2 最佳实践

2.1 安装的准备

2.1.1 系统信息

OS = RHEL 8.x x86_64
Host Name = any.cmdschool.org
IP Address = 10.168.0.67

2.1.2 安装openJDK

如何部署openJDK?


或者,你可以使用如下命令直接安装,

yum install -y java-1.8.0-openjdk

推荐安装openjdk 1.8.0_191以上版本,安装完毕,请使用如下命令确认Java的安装,

java -version

可见如下显示,

openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)

2.1.3 关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2.1.4 下载安装包

cd ~
wget https://download.sonatype.com/nexus/3/nexus-3.38.0-01-unix.tar.gz

2.2 部署软件包

2.2.1 解压安装包

cd ~
tar -xf nexus-3.38.0-01-unix.tar.gz

2.2.2 配置运行用户

groupadd nexus
useradd -g nexus -d /var/lib/nexus nexus

2.2.3 部署安装包

cd ~
mv nexus-3.38.0-01 /usr/

部署完成后,建议创建以下目录便于管理,

ln -s /usr/nexus-3.38.0-01/etc/ /etc/nexus

另外,还需配置目录权限

chown nexus:nexus -R /usr/nexus-3.38.0-01
chmod 755 -R /usr/nexus-3.38.0-01

2.2.4 配置软件包的环境变量

vim /etc/profile.d/nexus.sh

加入如下定义,

export nexus_HOME=/usr/nexus-3.38.0-01
export PATH=${nexus_HOME}/bin:$PATH

– 变量“nexus_HOME”声明nexus的家目录
– 变量“PATH”声明可执行文件的位置(加入nexus执行文件的声明)
创建完成后,你需要使用如下命令导入环境变量,

source /etc/profile.d/nexus.sh

2.3 配置软件包

2.3.1 配置运行时环境

cp /usr/nexus-3.38.0-01/bin/nexus.vmoptions /usr/nexus-3.38.0-01/bin/nexus.vmoptions.default
vim /usr/nexus-3.38.0-01/bin/nexus.vmoptions

修改如下配置,

-Xms2703m
-Xmx2703m
-XX:MaxDirectMemorySize=2703m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=/var/log/nexus/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=/etc/nexus/karaf
-Djava.util.logging.config.file=/etc/nexus/karaf/java.util.logging.properties
-Dkaraf.data=/data/nexus
-Dkaraf.log=/var/log/nexus
-Djava.io.tmpdir=/tmp
-Dkaraf.startLocalConsole=false
-Djdk.tls.ephemeralDHKeySize=2048
-Djava.endorsed.dirs=/usr/nexus-3.38.0-01/lib/endorsed

根据以上配置的需求,我们需要执行以下命令,

mkdir -p /data/nexus
chown nexus:nexus -R /data/nexus
chmod 755 -R /data/nexus

mkdir -p /var/log/nexus
chown nexus:nexus -R /var/log/nexus
chmod 755 -R /var/log/nexus

2.3.2 修改服务配置文件

cp /etc/nexus/nexus-default.properties /etc/nexus/nexus-default.properties.default
vim /etc/nexus/nexus-default.properties

修改如下配置,

application-port=8081
application-host=0.0.0.0

2.3.3 手动测试服务

sudo -u nexus /usr/nexus-3.38.0-01/bin/nexus start

启动服务后,可以使用如下命令查看倾听的端口,

netstat -anp | grep java

可见如下显示,

tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      36599/java
tcp        0      0 127.0.0.1:42431         0.0.0.0:*               LISTEN      36599/java
unix  3      [ ]         STREAM     CONNECTED     91471    36599/java
unix  3      [ ]         STREAM     CONNECTED     90416    36599/java
unix  2      [ ]         STREAM     CONNECTED     90393    36599/java
unix  3      [ ]         STREAM     CONNECTED     91470    36599/java
unix  2      [ ]         STREAM     CONNECTED     90362    36599/java
unix  3      [ ]         STREAM     CONNECTED     90415    36599/java

以下控制命令也可以使用,

sudo -u nexus /usr/nexus-3.38.0-01/bin/nexus status
sudo -u nexus /usr/nexus-3.38.0-01/bin/nexus restart
sudo -u nexus /usr/nexus-3.38.0-01/bin/nexus stop

2.3.4 配置启动脚本

vim /usr/lib/systemd/system/nexus.service

加入如下配置,

[Unit]
Description=nexus service
After=network.target
Documentation=https://help.sonatype.com/repomanager3?_ga=2.65860011.409561940.1648172581-1859292968.1647310522

[Service]
Type=forking
User=nexus
LimitNOFILE=65536
Restart=on-abort
TimeoutSec=600
ExecStart=/usr/nexus-3.38.0-01/bin/nexus start
ExecStop=/usr/nexus-3.38.0-01/bin/nexus stop

[Install]
WantedBy=multi-user.target

以上启动依赖zookeeper请根据实际需要配置,脚本创建后,需要使用如下命令重载使配置生效,

systemctl daemon-reload

然后可以使用如下命令服务控制,

systemctl start nexus.service
systemctl restart nexus.service
systemctl stop nexus.service
systemctl status nexus.service

然后可以使用如下命令设置服务自动启动,

systemctl enable nexus.service

2.3.5 开放应用所需的端口

firewall-cmd --permanent --add-port 8081/tcp
firewall-cmd --reload
firewall-cmd --list-all

2.3.6 浏览器测试服务

http://10.168.0.67:8081/

根据以上提示,初始登陆的用户名是“admin”,初始密码需要使用如下命令获取,

cat /data/nexus/admin.password

注:登陆后请根据自己的实际需求完成初始化配置,这里不再赘述。

2.4 增强配置

2.4.1 配置集成LDAP

如何配置NXRM集成LDAP?

参阅文档
==================

Repository Manager 3文档
———————-
https://help.sonatype.com/repomanager3?_ga=2.65860011.409561940.1648172581-1859292968.1647310522

安装系统要求
——————
https://help.sonatype.com/repomanager3/product-information/system-requirements

安装教程
————-
https://guides.sonatype.com/repo3/quick-start-guides/proxying-maven-and-npm/

启动环境变量配置
——————
https://help.sonatype.com/repomanager3/installation-and-upgrades/configuring-the-runtime-environment

软件下载
———-
https://help.sonatype.com/repomanager3/product-information/download?_ga=2.180521892.2067929799.1647235679-2108703830.1647235679

硬件配置要求
————-
https://help.sonatype.com/repomanager3/product-information/system-requirements

软件手册
———–
https://guides.sonatype.com/

没有评论

发表评论

文件服务
如何启用NXRM基于SSL的HTTPS?

1 前言 一个问题,一篇文章,一出故事。 之前的章节我们部署了NXRM(Nexus Reposito …

文件服务
如何配置NXRM集成LDAP?

1 前言 一个问题,一篇文章,一出故事。 之前的章节我们部署了NXRM(Nexus Reposito …