Nexus 制品库管理实践01 概念以及部署
工作流定义:
- 集成流水线: 提交代码,构建,单测,代码扫描,上传制品【生成制品】
- 制品晋级流水线:输入版本,选择晋级策略。(将制品复制到对应环境的仓库)
- 发布流水线: 输入版本号, 输入部署环境.(从对应环境的制品库中取制品)
集成流水线没有问题,那么包就要发布到环境里面去验证了,集成流水线就是去做一个基本的验证,验证之后,发布到环境进行测试,功能都正常,这个时候将包传到制品库,那么多个环境都可以使用这个制品。
多个环境,那么每个环境都有一个仓库对应,测试有测试的仓库,生产有生产的仓库,测试没问题了,那么就可以放到生产仓库。(制品的进阶)
制品类型: 二进制制品, docker镜像(制品库:可以将我们交付的包全部存起来)
核心技能点:
- 制品库管理规范(创建)
- 上传制品
- 晋级制品
- 下载制品
Nexus 基本功能简介
制品库就是存储制品的仓库,有些时候不仅仅作为制品的仓库,还可以进行安全扫描,比如上传的制品,制品里面依赖了哪些包,是否有问题都可以帮你扫描出来。
同时还可以使用其作为yum源,有些时候企业内部有自己的yum源,那么就可以使用Nexus将外网源proxy代理到内网,或者maven的私服代理进来。
从3.x开始,它默认支持许多主流的软件包格式。Docker、Maven、Npm:
仓库类型Type:
- proxy 代理仓库。(比如要搭建一个私服,将外网源代理进来,就可以在内网配置代理仓库,输入外部的仓库地址,然后就指定这个仓库下载这些包的时候自动给你缓存进来)
- hosted 私有仓库。在本地搭建私服仓库,如maven类型的或者npm类型的,在打包编译的时候,直接通过私服仓库去获取这些包(存放本地制品的仓库)
- group 仓库组,将多个仓库组合在一起,通过同一个URL对外提供。
代理仓库 : Maven、Npm等。用于存储外网公共仓库中的插件和依赖,不可进行修改和私自上传。
所以仓库也可以分为制品仓库和依赖仓库。私服代理都是依赖仓库。
components-组件
这里的组件其实就是依赖包,这些包的依赖会在pom里面去定义,引用依赖的方式如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
所以一个包就是一个组件,在构建过程当中以依赖包的形式让其他程序去依赖。这个包的格式可以是jar包,也可以是其他的类文件,还可以是文本,图片等。
组件还可以有多种格式jar包,war包,前端项目一般会打成zip包。
所以制品仓库存储的就是各种语言,前端后端的格式。
Nexus仓库管理
通过仓库和制品的坐标来定位制品。
release与snapshot
在存储开发,经常需要更新的,那么放在snapshot里面,在生产环境当中,定义为release版本。
Nexus安装部署配置
docker pull sonatype/nexus3:3.30.0
mkdir -p /data/cicd/nexus3/data
chmod 777 -R /data/cicd/nexus3/
docker run -itd \
--privileged=true --name=nexus3 \
-p 8081:8081 \
-v /data/cicd/nexus3/data:/nexus-data \
sonatype/nexus3:3.30.0
日志查看Nexus是否已启动并准备就绪,请运行以下命令:
docker logs nexus3 -f
在日志中,看到消息:Started Sonatype Nexus OSS 3.30.0-01
这意味着Nexus Repository Manager可以使用了。现在转到浏览器并打开。
http://your-ip-addr:8081
安装完成后, 默认的admin账号密码存储在了数据目录,获取初始化密码:
docker exec -i nexus3 cat /nexus-data/admin.password
登录后更新密码 admin/admin123
Nexus 配置管理
目录 返回
首页