nexus私服仓库centos7部署

为什么要搭建私服
搭建Nexus私服的主要目的是为了解决工作上组件之间的jar包依赖管理。特别是基础架构部门的jar包要共享出来,就需要把jar包deploy发布到nexus私服上

一 二进制部署

目录:/data/nexus

官网地址:https://help.sonatype.com/repomanager3/download

1 下载地址:

wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
tar xf lastest-unix.tar.gz
mv lastest-unix eexus3

neuxs.png

2 加入环境变量

vim /etc/profile

export NEXUS_HOME=/data/nexus3
export PATH=$PATH:$NEXUS_HOME/bin

source /etc/profile

3 关联jdk(可选)

vim /data/nexus3/bin/nexus
INSTALL4J_JAVA_PREFIX="/data/jdk8/bin/java"

neuxs2.png

4 修改默认端口

vim /data/nexus3/etc/nexus-default.properties
application-port=8091 //端口
application-host=0.0.0.0 //主机地址

neuxs3.png

5 修改root用户(可选)

vim /data/nexus3/bin/nexus.rc
run_as_user="root"
vim /data/nexus3/bin/nexus
run_as_root=false

neuxs4.png

6 修改目录(可选)

vim /data/nexus3/bin/nexus.vmoptions
-XX:LogFile=../sonatype-work/log/jvm.log
-Dkaraf.data=../data/nexus3

neuxs5.png

7 启动 run启动web start启动程序 status查看状态

cd /data/nexus3/bin/
./nexus run &
./nexus start
./nexus status

8 访问使用admin/

cat /data/sonatype-work/nexus3/admin.password
http://ip:9091

docker部署nexus私服

官网文档:https://hub.docker.com/r/sonatype/nexus3/

Nexus在docker上提供了官方的镜像,可以支持Nexus ReavabyManager Pro和Nexus存储管理器OSS的安装。
官方镜像地址:https://hub.docker.com/r/sonatype/nexus3/

1 最简单安装

直接运行下面的docker命令,即可完成最简单的安装,但是没有进行数据持久我们并不推荐。

docker run -d -p 8081:8081 --name nexus sonatype/nexus3
    默认的登录凭证: admin / admin123

1.1 它可能需要一些时间(2-3分钟)来启动服务。我们可以通过下面的命令来查看日志来确定Nexus是否已准备好了:

docker logs -f nexus
        当日志展示如下信息,表示启动成功:
         ————————————————-
        Started Sonatype Nexus OSS 3.12.1-01
        ————————————————-

1.2 Nexus的安装目录为: /opt/sonatype/nexus,可以使用下面的命令进入容器内部查看:

docker exec -it nexus /bin/bash

2 数据持久安装

    持久目录:/nexus-data,用于配置,日志和数据存储,该目录由Nexus写入进程,UID为200

2.1 方式一,使用数据卷docker volume(推荐):

docker volume create --name nexus-data
docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3

2.2 方式二,挂载宿主机目录:**

mkdir -p /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data
docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3
    同样的,刚启动就去访问,肯定是不行的,因为启动的时间稍微有点长,等启动完成之后再访问,可以通过上面说的查看日志的方式,去跟进启动情况。

2.3 JVM参数配置**

    在docker中启动nexus的时候,我们可以进行jvm参数的配置,如下使用方式:
docker run -d -p 8081:8081 --name nexus -e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g -Djava.util.prefs.userRoot=/some-other-dir" sonatype/nexus3

就这样了,在浏览器上输入http://ip:8081访问即可。

三 https配置

1 出现访问页面问题

https访问失败.pnghttps访问失败2.png2 解决方案

##转发时使用https协议
proxy_set_header X-Forwarded-Proto https;

四 找回密码

1 停止服务

切换到nexus/bin

./nexus stop

2 进入OrientDB控制台

切换到nexus目录

java -jar ./lib/support/nexus-orient-console.jar

3进入数据库

注意改…/sonatype-work此处为相对目录,所以上一步要求切换到nexus目录下,如果用绝对目录则不需要
可以find / -name security

connect plocal:../sonatype-work/nexus3/db/security admin admin

4 重置admin密码为admin123

update user SET password="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"

5 重新登录web页面修改密码即可

找回密码.png

五 角色权限

1 使用admin登录后,点击上方齿轮图标

2 打开左侧导航,Security

角色权限.pngPrivileges:具体的权限明细,比如我创建一个test仓库,这里就会生成

角色权限1.pngRoles:添加角色,设置每个角色可看到的页面或者仓库,每个角色也可拥有其他的角色

  • Users:添加帐号密码,帐号密码邮箱这些必填信息不说了,这里要选择一个角色

  • Anonymous:这个打开后对钩取消掉就代表未登录不可访问仓库

3 三给角色授予权限

比如创建了一个test仓库,在创建角色页面,进行搜索

角色权限2.pngadd:上传jar包权限

  • browse:浏览权限

  • delete:删除

  • edit:编辑

  • read:读取jar包详细信息

找到对应的权限添加到右边即可,权限全部添加,添加第一条 * 的即可
当然,其他的仓库也可按照上述方式搜索添加
用户可以自己修改密码,但光添加上面的权限是无法修改的,需搜索:userschengepw,把这个权限给到。