当前位置: 首页 > news >正文

CI/CD环境搭建

服务简介

  • Gitlab
    官网:https://about.gitlab.com/

GitLab
是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。安装方法是参考GitLab在GitHub上的Wiki页面。Gitlab是被广泛使用的基于git的开源代码管理平台,基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理,Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch,意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并

  • Jenkins
    官网:https://www.jenkins.io/
    中文文档:https://www.jenkins.io/zh/doc/

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

  • harbor
    官网:https://goharbor.io/

Harbor 是一个开源的镜像仓库服务,用于容器镜像、Helm Chart 等符合 OCI 标准的 Artifact 的安全托管及高效分发,能够帮助您跨云原生计算平台(如 Kubernetes 和 Docker)一致且安全地管理 Artifact。

QingCloud Harbor 镜像仓库将 Harbor 制作成了 App,能直接在 AppCenter 进行一键部署,并提供了一个高可用、高安全、高性能的解决方案。

部署安装

Gitlab

rpm源:https://packages.gitlab.com/gitlab/gitlab-ce
1.创建部署目录及YAML

mkdir /data/gitlab
vim /data/gitlab/docker-compose-gitlab.yml
version: "3.6"
services:gitlab:container_name: gitlabimage: gitlab/gitlab-ce:14.1.8-ce.0restart: alwaysenvironment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.1.241'                 #WEB站点URLgitlab_rails['time_zone'] = 'Asia/Shanghai'          #时区gitlab_rails['smtp_enable'] = true                   #开启邮件服务gitlab_rails['smtp_address'] = "smtp.qq.com"      #设置邮件服务器地址gitlab_rails['smtp_port'] = 465                      #邮箱服务器端口gitlab_rails['smtp_user_name'] = "xxx@qq.com"  #发件邮箱gitlab_rails['smtp_password'] = "xxxxxxxxxx"      #发件邮箱密码gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = 'xxx@qq.com'      #发件邮箱ports:- "181:80"- "122:22"- "1443:443"volumes:- ./data:/var/opt/gitlab- ./logs:/var/log/gitlab- ./config:/etc/gitlab

2.启动gitlab(需要初始化 启动会有点慢)

docker-compose -f docker-compose-gitlab.yml up -d

3.访问后台管理页面(初始root密码在config目录initial_root_password)

#查看root初始密码
cat /data/gitlab/config/initial_root_password
#登录后台
http://192.168.1.141:181

在这里插入图片描述

jenkins

下载地址:https://www.jenkins.io/download/

1.创建部署目录

mkdir /data/jenkins

2.创建docker-compose文件

vim /data/jenkins/docker-compose-jenkins.yml
version: '3'
services:jenkins:restart: alwaysimage: jenkins/jenkins:ltscontainer_name: jenkinsuser: rootprivileged: trueenvironment:- TZ=Asia/Shanghaiports:- '8080:8080'- '50000:50000'volumes:- /data/jenkins/jenkins_data/:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/docker

3.启动jenkins

docker-compose -f docker-compose-jenkins.yml up -d

4.访问管理后台

http://IP:port

admin初始密码文件位置: /data/jenkins/jenkins_data/secrets/initialAdminPassword
在这里插入图片描述
在这里插入图片描述

harbor(离线安装包-v2.5.6)

官网:https://github.com/goharbor/harbor

注意: 安装时需关注对应版本的前置要求【服务器配置,docker版本,docker-compose版本等。】

在这里插入图片描述
在这里插入图片描述

1.下载离线安装包

mkdir /data/harbor/src
cd /data/harbor/src
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz

2.解压离线安装包

cd /data/harbor/src
tar zxf harbor-offline-installer-v2.5.6.tgz
cd /data/harbor/src/habor

3.修改配置文件

cp harbor.yml.tmpl harbor.yml
vim harbor.yml
hostname: 192.168.1.241       			#本机IP或者域名
http:port: 80                    			#http端口
https:port: 443                   			#https端口,如果不需要注释掉此部分即可certificate: /your/certificate/path   #ssl证书位置,本地目录绝对路径private_key: /your/private/key/path
harbor_admin_password: 123456 			#后台admin初始密码
database:password: 123456                      #设置数据库初始密码max_idle_conns: 100max_open_conns: 900
data_volume: /data/harbor/data			#数据目录位置(本地目录绝对路径)
# Log configurations
log:level: info 							#日志级别local:rotate_count: 50					#日志文件个数rotate_size: 200M					#单个日志大小location: /var/log/harbor			#日志位置
###########其余配置保持默认即可

4.执行安装,等待安装完成即可

cd /data/harbor/src/habor
./install

无报错打印successfully即安装完成
在这里插入图片描述
5.访问后台管理界面(创建用户,创建项目,用户授权)

http://IP:Port

在这里插入图片描述

http://www.lryc.cn/news/323517.html

相关文章:

  • API调试管理工具Postman下载及操作介绍
  • vue集成百度地图,实现关键字搜索并自定义覆盖物,保存成静态图片
  • Java中的Stream流
  • 前端UI怎么防止用户反复提交?
  • OpenHarmony游戏应用程序-实现的一个手柄游戏
  • Redis+Lua脚本+SpringAOP实现接口限流
  • 【wpf应用8】如何让WPF Grid控件根据屏幕尺寸自动调整
  • 掌握ChatGPT:如何用AI撰写高质量论文
  • 平衡隐私与效率,Partisia Blockchain 解锁数字安全新时代
  • 【JavaScript】NPM常用指令指南
  • k8s-多容器Pod、容器保护策略、宽限期、最大生命周期、嵌入式脚本、多容器Pod、资源监控工具
  • 机器学习——线性回归(头歌实训)
  • Echarts 利用多X轴实现未来15天天气预报
  • [数据结构初阶]二叉树
  • matlab和stm32的安装环境。能要求与时俱进吗,en.stm32cubeprg-win64_v2-6-0.zip下载太慢了
  • Opencv面试题
  • Python连接MariaDB数据库
  • 基于python+vue的ITS 信息平台的设计与实现flask-django-nodejs-php
  • MediatR 框架使用FluentValidation对Comand/Query进行自动拦截验证
  • TS + Vue3 elementUI 表格列表中如何方便的标识不同类型的内容,颜色区分 enum
  • 从零开始一步一步掌握大语言模型---(2-什么是Token?)
  • 使用专属浏览器在国内直连GPT教程
  • Wireshark 抓包工具与长ping工具pinginfoview使用,安装包
  • 分享Pandas 数据分析实战课程
  • 26. 删除有序数组中的重复项 (Swift版本)
  • python学生作业管理系统flask-django-nodejs-php
  • 蓝桥杯第二天刷真题
  • RK3568 安装jupyter和jupyterlab
  • 简易指南:国内ip切换手机软件怎么弄
  • Git学习笔记之Git 别名