CI/CD环境搭建

news2024/9/30 13:24:54

服务简介

  • 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: gitlab
    image: gitlab/gitlab-ce:14.1.8-ce.0
    restart: always
    environment:
      TZ: Asia/Shanghai
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.1.241'                 #WEB站点URL
        gitlab_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'] = true
        gitlab_rails['smtp_tls'] = true
        gitlab_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: always
    image: jenkins/jenkins:lts
    container_name: jenkins
    user: root
    privileged: true
    environment:
      - TZ=Asia/Shanghai
    ports:
      - '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: 100
  max_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.coloradmin.cn/o/1537750.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题——LeetCode1720.解码异或后的数组

方法一 异或运算的性质 encoded[i−1]arr[i−1]⊕arr[i] 在等式两边同时异或arr[i−1] 由于: 一个数异或它自己,结果总是0。 0异或任何数,结果都是那个数本身。 所以等式可以转化为: arr[i]arr[i−1]⊕encoded[i−1] 由于 a…

智慧工业园区的物联网解决方案

智慧工业园区的物联网解决方案 智慧工业园区的物联网解决方案,是一种深度融合物联网、大数据、云计算及人工智能等前沿技术,以实现工业园区全方位、智能化管理与服务的综合体系。该方案旨在通过高效采集和分析园区内的各类实时数据,构建出一…

什么是PLC物联网关?PLC物联网关有哪些功能?

在数字化浪潮的推动下,工业物联网(IIoT)正逐步成为推动制造业智能化转型的关键力量。而在这一变革中,PLC物联网关扮演着至关重要的角色。今天,就让我们一起走进PLC物联网关的世界,了解它的定义、功能&#…

直播行业网络安全建设

一、引言 直播行业近年来蓬勃发展,吸引了大量用户和资本的关注。然而,随着行业的壮大,网络安全问题也日益凸显。构建一个安全、稳定的直播行业网络对于保障用户权益、维护行业秩序具有重要意义。本文将详细探讨直播行业安全网络的构建与保障…

【算法刷题 | 二叉树 02】3.21 二叉树的层序遍历01(5题:二叉树的层序遍历、层序遍历||、右视图、层平均值,以及N叉树的层序遍历)

文章目录 5.二叉树的层序遍历5.1 102_二叉树的层序遍历5.1.1问题5.1.2解法:队列 5.2 107_二叉树的层序遍历||5.2.1问题5.2.2解法:队列 5.3 199_二叉树的右视图5.3.1问题5.3.2解决:队列 5.4 637_二叉树的层平均值5.4.1问题5.4.2解决&#xff1…

VScode通过ssh连接github

通过ssh连接github 1.生成公钥和私钥2.设置config文件3.配置ssh免密登录4.远程仓库初始化 1.生成公钥和私钥 首先选择一个文件夹,右击 git bash here,在命令行输入命令,按下三次回车生成一个**.ssh文件夹**,一般在用户的user根目…

跳过mysql权限验证来修改密码-GPT纯享版

建议重新配置一遍,弄成功好多次了,每次都出bug,又要重新弄,不是过期就是又登不进去了,我服了 电脑配置MySQL环境(详细)这个哥们的10min配完,轻轻松松, 旧方法&#xff…

第十四届蓝桥杯JavaB组省赛真题 - 幸运数字

进制转换可以参考如下的十进制,基本一样的,只是把10变成了其他数字, sum就是各个数位之和 public static int myUtil(int n) {int sum 0;while(n > 0) {sum n % 10;n / 10;}return sum;} 注意: 如果写在同一个类里面&…

北京中科富海低温科技有限公司确认出席2024第三届中国氢能国际峰会

会议背景 随着全球对清洁能源的迫切需求,氢能能源转型、工业应用、交通运输等方面具有广阔前景,氢能也成为应对气候变化的重要解决方案。根据德勤的报告显示,到2050年,绿色氢能将有1.4万亿美元市场。氢能产业的各环节的关键技术突…

Gavin Wood 精彩演讲|安全灵活 JAM 链,打造去中心化多核计算机

Polkadot 年度开发者大会 sub0 Asia 近期在泰国曼谷正式落幕。面对区块链行业的激烈竞争,Polkadot 创始人 Gavin Wood 在演讲中说明将如何利用 Polkadot 2.0 与 JAM 链带来新的技术创新,推动生态持续发展。 Polkadot 将推一个名为 JAM 链的新网络。JAM …

Nature:“量子龙卷风”首次模拟黑洞

科学家们在超流体氦气中首次创造出了一个巨大的“量子漩涡”(quantum vortex),用以模拟黑洞。这一成就不仅使他们能够更加细致地观察模拟黑洞的行为,还能探究其与周围环境的交互作用。 诺丁汉大学的研究团队与伦敦国王学院和纽卡斯…

python - 更改pdf中文本的字体高亮颜色(fitz模块)

import fitzdoc fitz.open(r"e:/test.pdf") pagedoc[0]# 按照指定的位置设置颜色 highlight page.add_highlight_annot((20, 500,60, 520)) highlight.set_colors(stroke[1, 1, 0]) # light red color (r, g, b) 颜色rgb每个除以255得出 highlight.update()# 按照…

序列的使用

目录 序列的创建 序列的使 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在许多数据库之中都会存在有一种数据类型 — 自动增长列,它能够创建流水号。如果想在 Oracle 中实现这样的自动增长列,可…

学习几个地图组件(基于react)

去年开发时用的公司封装的地图组件,挺方便的,但是拓展性不强,所以看看有哪些优秀的开源地图组件吧 1、React Leaflet 介绍:开源的JavaScript库,用于在web上制作交互式地图,允许你使用React组件的方式在应…

基于JavaWeb+BS架构+SpringBoot+Vue+O2O生鲜食品订购小程序系统的设计和实现

基于JavaWebBS架构SpringBootVueO2O生鲜食品订购小程序系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图 文末获取源码 Lun文目录 目 录 摘 要 I Abstract II 1 绪 论 1 1.1课题研究背景及意义 1 1.2研究现状 1 1.3本论文的主要论文结构 3 2系统相关技术…

03-Java面试题八股文-----java基础——10题

41、HashMap 的长度为什么是 2 的 N 次方呢? 为了能让 HashMap 存数据和取数据的效率高,尽可能地减少 hash 值的碰撞,也就是说尽量把数据能均匀的分配,每个链表或者红黑树长度尽量相等。 我们首先可能会想到 % 取模的操作来实现。…

鸿蒙Harmony应用开发—ArkTS(@Builder装饰器:自定义构建函数)

前面章节介绍了如何创建一个自定义组件。该自定义组件内部UI结构固定,仅与使用方进行数据传递。ArkUI还提供了一种更轻量的UI元素复用机制Builder,Builder所装饰的函数遵循build()函数语法规则,开发者可以将重复使用的UI元素抽象成一个方法&a…

代码+视频,R语言logistic回归交互项(交互作用)的可视化分析

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技,几乎在高分的SCI中必出现,因为把人群分为亚组后再进行统计可以增强文章结果的可靠性,不仅如此,交互作用还可以使用来进行数据挖掘。在既往文章中,我们已…

AJAX踩坑指南(知识点补充)

JWT JSON Web Token是目前最为流行的跨域认证解决方案 如何获取:在使用JWT身份验证中,当用户使用其凭据成功登录时,将返回JSON Web Token(令牌) Token本质就是一个包含了信息的字符串 如何获取Token:登录成功之后,服务…

论文阅读之LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS(2021)

文章目录 论文地址主要内容主要贡献模型图技术细节实验结果 论文地址 LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS 主要内容 这篇文章的主要内容是介绍了一种名为LoRA(Low-Rank Adaptation)的技术,这是一种针对大型语言模型进行…