手机微信网站模板,wordpress rest,wordpress上传到哪个目录,中国行业客户资源网文章目录 一、前言二、软件环境2.1 版本变更#xff1a;2.1.1 变更存储的原因2.2.2 H2作为存储的注意点 三、资源配置四、开始部署4.1 部署jdk174.2 离线部署nexus4.2.1 下载4.2.2 部署1. 上传到服务器2. 解压3. 添加用户4. 修改启动参数5. 迁移sonatype-work #xff0c;并授… 文章目录 一、前言二、软件环境2.1 版本变更2.1.1 变更存储的原因2.2.2 H2作为存储的注意点 三、资源配置四、开始部署4.1 部署jdk174.2 离线部署nexus4.2.1 下载4.2.2 部署1. 上传到服务器2. 解压3. 添加用户4. 修改启动参数5. 迁移sonatype-work 并授权6. 创建软链接7. 创建nexus.service 五、登录5.1 获取初始化密码5.2 禁用匿名访问5.3 Nexus was not configured with an encryption key and is using the Default key5.3.1 创建 JSON 密钥文件5.3.2 启用重新加密5.3.3 通过 API 创建重新加密任务5.3.4 重启nexus 六、快速部署脚本6.1 上传安装包6.2 部署脚本deploy_nexus.sh6.3 授权脚本并运行6.4启动完成 一、前言
Nexus有诸多优点比如集中管理版本依赖缓存安全访问等用来做maven库npm库docker镜像库等。公司内部一般都会使用。当然也有其他优秀的产品主要看公司开发人员的规模访问量大小。
本篇博客以最新的nexus版本为例演示如何部署文章最后也提供了快速部署脚本可供大家参考。
二、软件环境
操作系统 ubuntu24.04
nexus: 3.73.012 java17
2.1 版本变更
在3.70.x 之前的版本是用OrientDB作为存储
3.71.0及之后的版本是用 postgresql 或者 H2 作为存储的
使用外部 PostgreSQL 数据库需要付费的 Pro 许可证由于本公司内部人员规模不大所以采用他默认的嵌入式 H2 数据库。
2.1.1 变更存储的原因
https://help.sonatype.com/en/upgrading-to-nexus-repository-3-71-0-and-beyond.html 2.2.2 H2作为存储的注意点
https://help.sonatype.com/en/sonatype-nexus-repository-system-requirements.html 不过也不用担心10W个组件一般用不了目前我们研发部几个部门公用才5W多的组件 至于20000个请求一般来说也不会超过而且超过只是对性能有影响。
三、资源配置
官网推荐的系统配置 CPU 8核
内存 16 GB
磁盘 300 GB
sda[系统盘] 100GB 默认分区
sdc[数据盘] 200GB 挂载点 /data
四、开始部署
4.1 部署jdk17
参考 离线部署jdk8jdk17 jdk21
4.2 离线部署nexus
4.2.1 下载
下载地址 https://download.sonatype.com/nexus/3/nexus-3.73.0-12-unix.tar.gz 4.2.2 部署
1. 上传到服务器 2. 解压
tar -zxf nexus-3.73.0-12-unix.tar.gz -C /opt
3. 添加用户
# 添加用户
groupadd nexus
useradd -r -g nexus -s /bin/false nexus4. 修改启动参数
如何修改jvm参数可参考官方文档: Nexus Repository Memory Overview vim /opt/nexus-3.73.0-12/bin/nexus.vmoptions 5. 迁移sonatype-work 并授权
mkdir /data mv /opt/sonatype-work/ /data
chown -R nexus:nexus /data/sonatype-work
chown -R nexus:nexus /opt/nexus-3.73.0-126. 创建软链接
ln -s /opt/nexus-3.73.0-12/bin/nexus /etc/init.d/nexus
7. 创建nexus.service
vim /etc/systemd/system/nexus.service
[Unit]
Descriptionnexus service
Afternetwork.target[Service]
Typeforking
LimitNOFILE65536
EnvironmentJAVA_HOME/usr/share/jdk-17.0.12
ExecStart/etc/init.d/nexus start
ExecStop/etc/init.d/nexus stop
Usernexus
Restarton-abort
TimeoutSec600[Install]
WantedBymulti-user.target注 如果你的java环境配置在了/etc/profile中nexus是没有权限获取到的启动会报错 所以在启动脚本中指定了JAVA_HOME的地址
激活服务
systemctl daemon-reload
systemctl enable nexus.service
systemctl start nexus.service启动大概2~3分钟 启动成功
五、登录
访问 http://ip:8081 5.1 获取初始化密码
cat /data/sonatype-work/nexus3/admin.password
登录后让你修改密码
5.2 禁用匿名访问 5.3 Nexus was not configured with an encryption key and is using the Default key
登录进去你会发现有告警 这个告警在官网中也有说明
Re-encryption in Nexus Repository
这是nexus 3.73.0 为了增强安全性让修改密钥。
官网中有详细步骤以下是处理步骤
5.3.1 创建 JSON 密钥文件
mkdir -p /usr/local/secrets vim /usr/local/secrets/file.json填写以下内容
{active: nexus-private-newkey123,keys: [{id: nexus-private-newkey123,key: JavaOpsPro}]
}
注 active中的值与 keys中的id要对应
5.3.2 启用重新加密
找到并打开 /data/sonatype-work/nexus3/etc/nexus.properties 文件
添加 nexus.secrets.file 属性并将其设置为指向密钥 JSON 文件的完整路径
nexus.secrets.file/usr/local/secrets/file.json5.3.3 通过 API 创建重新加密任务
打开网站F12 随便刷新一个页面找到请求接口找到请求头中的token curl -X PUT \http://192.168.10.4:8081/service/rest/v1/secrets/encryption/re-encrypt \-H accept: application/json \-H Content-Type: application/json \-H NX-ANTI-CSRF-TOKEN: 0.6079550043331956 \-H X-Nexus-UI: true \-d {secretKeyId: nexus-private-newkey123,notifyEmail: qguo2019163.com
}5.3.4 重启nexus
systemctl restart neuxs这步重启也可在5.3.2 后做官网中没说需要重启但实践后发现必须重启否则不生效。
重启后重新登录并验证。 部署完成
六、快速部署脚本
提供一个快速部署脚本方便运维人员快速部署使用。请注意环境和版本适当修改。
6.1 上传安装包 6.2 部署脚本deploy_nexus.sh
#!/bin/bash# 定义变量
NEXUS_VERSION3.73.0-12
JDK_VERSION17.0.12
NEXUS_PACKAGEnexus-${NEXUS_VERSION}-unix.tar.gz
JDK_PACKAGEjdk-${JDK_VERSION}_linux-x64_bin.tar.gz
INSTALL_DIR/opt
DATA_DIR/data
NEXUS_SERVICE_FILE/etc/systemd/system/nexus.service
JAVA_HOME/usr/share/jdk-${JDK_VERSION}# 检查是否为root用户
if [ $EUID -ne 0 ]; thenecho 脚本必须使用root用户执行exit 1
fi# 检查Nexus安装包是否存在
if [ ! -f ${NEXUS_PACKAGE} ]; thenecho Nexus安装包 ${NEXUS_PACKAGE} 不存在请确保已将安装包放置在当前目录。exit 1
fi# 检查JDK安装包是否存在
if [ ! -f ${JDK_PACKAGE} ]; thenecho JDK安装包 ${JDK_PACKAGE} 不存在请确保已将安装包放置在当前目录。exit 1
fi# 安装JDK
if [ ! -d ${JAVA_HOME} ]; thentar -zxf ${JDK_PACKAGE} -C /usr/share/
fi# 部署Nexus安装包
tar -zxf ${NEXUS_PACKAGE} -C ${INSTALL_DIR}# 添加用户nexus
groupadd nexus
useradd -r -g nexus -s /bin/false nexus# 修改启动参数按照官方推荐的配置
sed -i s|-Xms2703m|-Xms5G|g ${INSTALL_DIR}/nexus-${NEXUS_VERSION}/bin/nexus.vmoptions
sed -i s|-Xmx2703m|-Xmx5G|g ${INSTALL_DIR}/nexus-${NEXUS_VERSION}/bin/nexus.vmoptions
sed -i s|../sonatype-work|/data/sonatype-work|g ${INSTALL_DIR}/nexus-${NEXUS_VERSION}/bin/nexus.vmoptions# 移动sonatype-work并授权
mkdir -p ${DATA_DIR}
mv ${INSTALL_DIR}/sonatype-work/ ${DATA_DIR}
chown -R nexus:nexus ${DATA_DIR}/sonatype-work
chown -R nexus:nexus ${INSTALL_DIR}/nexus-${NEXUS_VERSION}# 创建软链接
ln -s ${INSTALL_DIR}/nexus-${NEXUS_VERSION}/bin/nexus /etc/init.d/nexus# 创建nexus.service明确指定JAVA_HOME路径
cat EOF ${NEXUS_SERVICE_FILE}
[Unit]
Descriptionnexus service
Afternetwork.target[Service]
Typeforking
LimitNOFILE65536
EnvironmentJAVA_HOME${JAVA_HOME}
ExecStart/etc/init.d/nexus start
ExecStop/etc/init.d/nexus stop
Usernexus
Restarton-abort
TimeoutSec600[Install]
WantedBymulti-user.target
EOF# 激活服务
systemctl daemon-reload
systemctl enable nexus.service
systemctl start nexus.serviceecho Nexus部署完成6.3 授权脚本并运行
chmod x deploy_nexus.sh
./deploy_nexus.sh6.4启动完成 后续nexus的配置和使用请参考另一篇博客 Nexus配置手册