系统运维 / DevOps / Nexus

Nexus安装与配置教程

温馨提示:本文最后更新于2021-03-02 18:42:58,某些文章具有时效性,若有错误或已失效,请在下方留言或提交工单提交工单
浅时光 · 3月23日 · 2020年 本文4447个字,预计阅读12分钟 72202次已读

一、Nexus介绍

Nexus是Maven仓库管理器,也可以叫Maven的私服。Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织原文链接:https://www.dqzboy.com数据。

Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。对于Maven来说,仓库只有两种:本地仓库和远程仓库。

Nexus Repository 是以 Java 和 JavaScript 为主,实现的一个包含前端与后台的 Web 服务。 后台方面,它采用 Jetty 作为应用服务器、Karaf 作为 OSGi 容器、OrientDB 作为数据库。 前端方面,它使用Swagger UI 作为框架,是一个单页面 Web App。

另外,它也通过 Resteasy 支持 REST API,可以通过网络进行访问控制。 并且,自行实现了一个插件系统,用插件的方式支持了更多复杂的功能。 比如,Maven、PyPI、Docker 这些支持,都是由插件实现的。 如果希望支持其它方式的代理、缓存、发布,比如 APT,也可以通过插件定制。

二、Nexus下载

官网地址:https://www.sonatype.com/

下载地址:https://help.sonatype.com/repomanager3/download

image 266
  • 同时我们也需要安装JDK,点击这里下载Oracle JDK
  • 如果Nexus下载不下来,请通过我提供的网盘地址进行下载,版本为3.21.1

三、Nexus安装

1、安装JDK

[root@nexus ~]# mkdir -p /opt/soft/	#存储软件包
[root@nexus ~]# cd /opt/soft/

#安装JDK
[root@nexus soft]# rpm -ivh jdk-8u231-linux-x64.rpm
文章来源(Source):https://www.dqzboy.com

2、安装Nexus

[root@nexus soft]# mkdir /usr/local/nexus
[root@nexus soft]# tar -zxvf latest-unix.tar.gz -C /usr/local/nexus/

3、启动Nexus

[root@nexus soft]# cd /usr/local/nexus/
  • 解压后会有2个文件夹第一个文件夹是核心文件,第二个文件夹用来存储下载下来的jar
image 267
  • 修改端口,默认端口为8081
[root@nexus nexus]# cd nexus-3.21.1-01/
[root@nexus nexus-3.21.1-01]# cd etc/
[root@nexus etc]# vim nexus-default.properties
image 268
  • 启动服务
[root@nexus etc]# cd ../bin/ 
[root@nexus bin]# ./nexus start
image 269
  • 启动比较慢;如果启动失败请查看日志
    • /usr/local/nexus/sonatype-work/nexus3/log/nexus.log
image 270

4、配置防火墙

  • 默认访问端口8081,上面已经改成了8090,这里防火墙需要放通8090端口
[root@nexus bin]# lsof -i:8090
[root@nexus bin]# firewall-cmd --permanent --zone=public --add-port=8090/tcp
[root@nexus bin]# firewall-cmd –reload

5、访问Nexus

image 271
image 272
  • 至此Nexus已经安装部署完成

6、设置系统服务

  • 现在我们将Nexus服务由Systemd进行管理
[root@nexus ~]# cd /etc/systemd/system
[root@nexus system]# vim nexus.service
[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/usr/local/nexus/nexus-3.21.1-01/bin/nexus start
ExecStop=/usr/local/nexus/nexus-3.21.1-01/bin/nexus stop
User=root
Restart=on-abort

[Install]
WantedBy=multi-user.target
  • 停止命令行启动的Nexus,通过systemd启动
[root@nexus system]# /usr/local/nexus/nexus-3.21.1-01/bin/nexus stop
  • 通过systemd启动
[root@nexus system]# systemctl daemon-reload
[root@nexus system]# systemctl start nexus
[root@nexus system]# systemctl enable nexus
[root@nexus system]# systemctl status nexus
  • 等待一会Nexus完全启动后,浏览器查看Nexus访问页面

四、Docker环境部署Nexus

  • 上面通过传统方式安装的nexus,先停止
[root@nexus ~]# systemctl stop nexus
[root@nexus ~]# systemctl disable nexus

1、安装Docker

[root@nexus ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

[root@nexus ~]# vim /etc/yum.repos.d/docker-ce.repo
%s@https://download.docker.com/@https://mirrors.tuna.tsinghua.edu.cn/docker-ce/@

[root@nexus ~]# yum repolist
[root@nexus ~]# yum -y install docker-ce
[root@nexus ~]# docker –version
Docker version 19.03.8, build afacb8b

2、配置镜像加速

[root@nexus ~]# mkdir /etc/docker
[root@nexus ~]# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://9p593175.mirror.aliyuncs.com"]
}

3、启动Docker

[root@nexus ~]# systemctl start docker
[root@nexus ~]# systemctl enable docker
[root@nexus ~]# systemctl status docker

4、安装Docker-compose

[root@nexus ~]# curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

[root@nexus ~]# chmod +x /usr/local/bin/docker-compose
[root@nexus ~]# docker-compose -version
docker-compose version 1.25.4, build 8d51620a

5、通过docker-compose启动nexus容器

5.1:创建yaml文件

#创建docker-compose.yaml文件
[root@nexus ~]# mkdir /usr/local/docker
[root@nexus ~]# cd /usr/local/docker
[root@nexus docker]# vi docker-compose.yaml
version: "2"
services:
  nexus:
    restart: "no" 
    image: sonatype/nexus3
    container_name: nexus
    ports:
      - 8090:8081
    volumes:
      - /usr/local/nexus:/nexus-data

#注意:yaml文件缩进必须用空格

参数说明:

  • version: 指定docker-com原文链接:https://www.dqzboy.compose语法版本,版本不同,支持的docker也不同
  • services: 多种服务的根节点
  • nexus: 服务名随意起,代表要创建的服务
  • restart: 容器的重启策略,有no、always、on-failure、unless-stopped四种可选值。
  • image: 容器依据的镜像
  • container_name: 容器名
  • ports: 端口;这里8090为虚机端口映射文章来源(Source):浅时光博客至nexus容器的8081端口
  • volumes: 数据卷; 指定数据卷,防止每次启动容器,容器里的数据丢失,实现容器和虚拟机数据共享。

5.2:创建数据卷

  • 上面yaml指定了数据卷,我们需要在虚拟机上创建对应的目录
[root@nexus docker]# mkdir /usr/local/nexus

#给目录赋予权限
[root@nexus docker]# chmod 777 /usr/local/nexus

5.3:启动Nexus容器

[root@nexus docker]# docker-compose up -d
nexus up
原文链接:https://www.dqzboy.com
[root@nexus docker]# docker ps

6、访问Nexus

#启动会比较慢,可以登入到容器中,查看nexus日志
[root@nexus docker]# docker exec -it 1a9ec41f4be7 /bin/bash
bash-4.4$ cd /nexus-data/
bash-4.4$ cd log/
bash-4.4$ tail -f nexus.log
nexus come
image 284
image 285

7、密码修改

[root@nexus ~]# docker ps | grep nexus
[root@nexus ~]# docker exec -it nexus /bin/bash
bash-4.4$ cd nexus-data/
bash-4.4$ cat admin.password 
80asde6c-asdd-42ab-e3bf-d24f45b212ac
image 50
image 52
image 53
image 54
image 55



本文作者:浅时光
原文链接:https://www.dqzboy.com/1980.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可
转载时请以超链接形式标明文章原始出处和作者信息

1 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. cool未知2021-1-3 · 22:38

    按照教程搭建配置好了