Jenkins+Nexus的制品库简单部署

一、nexus 介绍

  1. Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。

  2. Nexus 可以帮助开发团队提高软件包管理的效率和可靠性,减少软件包冲突和版本不一致的问题,并提供了一个安全、可靠的软件包分发渠道。

  3. Nexus 支持多种仓库类型,包括 Maven 仓库、npm 仓库、Docker 仓库等,并且可以与其他工具和系统集成,如 Jenkins、Ansible、Kubernetes 等,以实现自动化的构建、部署和管理。

  4. 总的来说,Nexus 是一个非常有用的工具,可以帮助开发团队更好地管理和分发软件包,提高软件开发的效率和质量。

二、 nexus 支持的仓库

仓库名 介绍
apt 用于存储和管理 Debian 软件包。
bower Web 前端包管理器,用于管理 Web 前端资源。
docker 用于存储 Docker 镜像。
gitlfs 用于存储 Git 大文件。
helm 用于存储 Kubernetes Helm charts。
maven2 Java 项目构建的仓库。
npm Node.js 软件包管理器。
nuget 用于 .NET 平台的软件包管理。
pypi Python 软件包索引。
r R 语言的软件包仓库。
raw 一般用于存储任意类型的文件。
rubygems Ruby 的软件包管理器。
yum 用于存储 Yum 软件包管理器的仓库。

 三、Jenkins+Nexus的制品库部署

1.部署环境准备两台服务器

        jenkins:192.168.40.128

        nexus:192.168.40.129

        两台服务器均关闭防火墙和seinux

systemctl stop firewalld && setenforce 0

2.安装jenkins11

        运行jdk:

[root@jenkins ~]# ll
-r--------  1 root root   8296049 10月 31 11:30 apache-maven-3.8.8-bin.tar.gz
-r--------  1 root root 169440335 11月 22 19:52 jdk-11.0.19_linux-x64_bin.tar.gz
-r--------  1 root root  89542047 10月 19 00:13 jenkins-2.414.3.war
-r--------  1 root root 297294835 11月 29 06:11 plugins-2.414.3.tar.gz
[root@jenkins ~]# tar xf jdk-11.0.18_linux-x64_bin.tar.gz -C /opt
#处理环境变量
[root@jenkins ~]# vim /etc/profile.d/java.sh
TOMCAT_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/java
PATH=$TOMCAT_HOME/bin:$JAVA_HOME/bin:$PATH
export TOMCAT_HOME JAVA_HOME PATH
[root@jenkins ~]# source /etc/profile.d/java.sh
[root@jenkins ~]# yum -y install fontconfig
[root@jenkins ~]# mv .jenkins/plugins/ plugins.bak
[root@jenkins ~]# tar xf plugins-2.414.3.tar.gz -C .jenkins/
[root@jenkins ~]# java -jar jenkins-2.414.3.war  #页面初始化

 

3.安装nexus

        安装jdk环境:jenkins8 ,其他版本不支持, 安装流程查:

        安装nexus:

[root@nexus ~]# ll
-r--------  1 root root 194990602 10月 30 11:46 jdk-8u211-linux-x64.tar.gz
-r--------  1 root root 231282880 11月 26 20:29 nexus-3.62.0-01-unix.tar.gz

[root@nexus ~]# tar xf nexus-3.62.0-01-unix.tar.gz -C /opt
[root@nexus ~]# ln -s /opt/nexus-3.62.0-01/ /opt/nexus #创建硬链接方便操作
[root@nexus ~]# cd /opt/nexus
[root@nexus nexus]# ./bin/nexus run  #run前台运行,start后台运行

         192.168.40.129:8081浏览器访问,注册之后才能享有操作权限:

Jenkins+Nexus的制品库简单部署_第1张图片

Jenkins+Nexus的制品库简单部署_第2张图片

Jenkins+Nexus的制品库简单部署_第3张图片 Jenkins+Nexus的制品库简单部署_第4张图片

Jenkins+Nexus的制品库简单部署_第5张图片 Jenkins+Nexus的制品库简单部署_第6张图片

 

四、nexus 数据备份

设置=> system[tasks] => create task

Jenkins+Nexus的制品库简单部署_第7张图片

Admin-export 导出数据备份

Jenkins+Nexus的制品库简单部署_第8张图片

Jenkins+Nexus的制品库简单部署_第9张图片

五、创建一个内网yum源

创建一个存储库 Blob(Binary Large Object)是一种二进制大对象,通常用于存储图像、音频、视频等大型文件。Blob Stores 是一种用于存储和管理 Blob 的数据存储服务,通常由云服务提供商提供。

Jenkins+Nexus的制品库简单部署_第10张图片

Jenkins+Nexus的制品库简单部署_第11张图片

创建一个Repositories 仓库

Jenkins+Nexus的制品库简单部署_第12张图片

创建仓库类型为yum Nexus 仓库类型包括 Group、Hosted 和 Proxy。 Group(组仓库):用于组织其他仓库,它本身不存储任何软件包。Group 仓库可以包含其他类型的仓库,例如 Hosted 或 Proxy 仓库,以方便管理和访问。 Hosted(宿主仓库):用于存储自己构建或上传的软件包。Hosted 仓库通常用于内部开发团队共享软件包,或者用于存储私有软件包。 Proxy(代理仓库):用于代理其他公共仓库的软件包。Proxy 仓库可以缓存公共仓库中的软件包,以提高下载速度和节省带宽。Proxy 仓库还可以用于管理和控制对公共仓库的访问。

Jenkins+Nexus的制品库简单部署_第13张图片

Jenkins+Nexus的制品库简单部署_第14张图片

找到仓库并拷贝路径

Jenkins+Nexus的制品库简单部署_第15张图片

测试上传包

# 仓库地址:
http://192.168.40.129:8081/repository/yum/
​
# 如果你想上传本地缓存的包,可以通过下列命令进行上传
# 注意,这里的admin admin 指的是nexus的账号密码,可以根据不同的权限进行创建
[root@nexus ~]# find /var/cache/yum/ -name "*.rpm" -exec curl -v --user 'admin:Qq111111' --upload-file {} http://192.168.75.188:8081/repository/yum/{} \;

验证是否成功上传

Jenkins+Nexus的制品库简单部署_第16张图片

尝试使用仓库

[root@nexus ~]# cd /etc/yum.repos.d/
[root@nexus yum.repos.d]# vim nexus-yum.repo
[nexus-yum]
name=nexus-yum
baseurl=http://192.168.40.129:8081/repository/yum
gpgcheck=0
enabled=1

六、创建一个代理yum仓库

Jenkins+Nexus的制品库简单部署_第17张图片

[root@nexus ~]# cd /etc/yum.repos.d/
[root@nexus yum.repos.d]# vim nexus-yum.repo
[nexus-yum]
name=nexus-yum
baseurl=http://192.168.40.129:8081/repository/yum-aliyun/$releasever/os/$basearch/
gpgcheck=0
enabled=1

这时,我们可以看到,已经将阿里云的软件包进行了代理,并且,当我们进行了下载时

[root@localhost yum.repos.d]# yum install -y mariadb mariadb-server
...
====================================================================================================
 Package                          Arch            Version                  Repository          Size
====================================================================================================
Installing:
 mariadb                          x86_64          1:5.5.68-1.el7           nexus-yum          8.8 M
 mariadb-server                   x86_64          1:5.5.68-1.el7           nexus-yum           11 M
Installing for dependencies:
 perl-Compress-Raw-Bzip2          x86_64          2.061-3.el7              nexus-yum           32 k
 perl-Compress-Raw-Zlib           x86_64          1:2.061-4.el7            nexus-yum           57 k
 perl-DBD-MySQL                   x86_64          4.023-6.el7              nexus-yum          140 k
 perl-DBI                         x86_64          1.627-4.el7              nexus-yum          802 k
 perl-Data-Dumper                 x86_64          2.145-3.el7              nexus-yum           47 k
 perl-IO-Compress                 noarch          2.061-2.el7              nexus-yum          260 k
 perl-Net-Daemon                  noarch          0.48-5.el7               nexus-yum           51 k
 perl-PlRPC                       noarch          0.2020-14.el7            nexus-yum           36 k
​
Transaction Summary
====================================================================================================
Install  2 Packages (+8 Dependent packages)
...
Dependency Installed:
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7      perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7     
  perl-DBD-MySQL.x86_64 0:4.023-6.el7               perl-DBI.x86_64 0:1.627-4.el7                   
  perl-Data-Dumper.x86_64 0:2.145-3.el7             perl-IO-Compress.noarch 0:2.061-2.el7           
  perl-Net-Daemon.noarch 0:0.48-5.el7               perl-PlRPC.noarch 0:0.2020-14.el7               
​
Complete!

我们可以看到,包已经缓存了下来

Jenkins+Nexus的制品库简单部署_第18张图片

 

七、jenkins 使用 nexus插件

jenkins 插件文档 测试仓库 easy-springmvc-maven

7.1 jenkins 安装插件

Jenkins+Nexus的制品库简单部署_第19张图片

7.2 配置 maven 工程

Jenkins+Nexus的制品库简单部署_第20张图片

这里涉及到的groupid version 等信息,可以在项目的pom.xml文件中找到。

Jenkins+Nexus的制品库简单部署_第21张图片

Jenkins+Nexus的制品库简单部署_第22张图片


  4.0.0
  springmvc-maven
  easy-springmvc-maven
  
  0.0.1
  war
  springmvc-maven
  simple demo about how to use maven combine spring mvc
  
  
   
    easy-springmvc-maven
    
      
        maven-compiler-plugin
        3.1
        
          1.6
          1.6
        
      
       
      maven-war-plugin 
         
        3.0  
        
        
        
         
       
    
  
  
    
        junit
        junit
        4.12
        test
    
    
    
    
        org.springframework
        spring-webmvc
        ${spring.version}
    
    
        org.springframework
        spring-jdbc
        ${spring.version}
    
    
        org.springframework
        spring-context
        ${spring.version}
    
    
        org.springframework
        spring-aop
        ${spring.version}
    
    
        org.springframework
        spring-core
        ${spring.version}
    
    
        org.springframework
        spring-test
        ${spring.version}
    
    
    
    
        jstl
        jstl
        1.2
    
    
        taglibs
        standard
        1.1.2
    
    
  
  
  
    UTF-8
    3.1.2.RELEASE
  

7.3 查看构建和上传Jenkins+Nexus的制品库简单部署_第23张图片

Jenkins+Nexus的制品库简单部署_第24张图片

你可能感兴趣的:(jenkins,运维)