gitlab与jenkins

一 gitlab代码仓库

1.1 gitlab简介

在这里插入图片描述

  • GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。
  • GitLab 具有很多功能,比如代码托管、持续集成和持续部署(CI/CD)、问题跟踪、合并请求管理等。它可以帮助开发团队更好地协作开发软件项目,提高开发效率和代码质量。

官网:https://about.gitlab.com/install/

中文站点: https://gitlab.cn/install/

官方包地址:https://packages.gitlab.com/gitlab/gitlab-ce

1.2 gitlab 的部署实施

1.2.1 部署gitlab

部署gitlab需要内存大于4G

#在安装包之前需配置好软件仓库来解决依赖性
[root@gitlab ~]# yum install -y curl policycoreutils-python-untils openssh-server perl		[root@gitlab ~]# dnf install gitlab-ce-17.3.6-ce.0.el9.x86_64.rpm -y

在这里插入图片描述

1.2.2 配置gitlab

#修改配置文件
[root@gitlab ~]# cd /etc/gitlab/
[root@gitlab gitlab]# ls
gitlab.rb
[root@gitlab gitlab]# vim gitlab.rb 
32 external_url 'http://172.25.254.80'#修改配置文件后需利用gitlab-crt来生效,
[root@gitlab gitlab]# gitlab-ctl reconfigure#执行命令成功后会把所有组件全部启动起来

1.2.3 登陆gitlab

用户名默认为 root 。如果在安装过程中指定了初始密码,则用初始密码登录,如果未指定密码,则系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并使用 root 用户名登录。

[!WARNING]

注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。

#查看原始密码
[root@gitlab ~]# cat /etc/gitlab/initial_root_password 
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: H9zmvW4Jml49LoiNBEvN1uyuQXtZ8vaMNvLfYRWkg3k=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

登陆

在这里插入图片描述

设置语言

在这里插入图片描述

点击“Save changes“,然后刷新页面

设置密码

在这里插入图片描述

1.3 在gitlab中新建项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#生成sshd密钥
[root@gitlab ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:8BOWjhO4L7tLFWyi71i/x7RfMjcQ7T0dm1/HLwk9Zbk root@gitlab.org
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|     o   . .    .|
|    o * + . .  oo|
|   . + O . o o ==|
|  . . + S . o =E=|
|   . o ... . . +=|
|    = .o .o + o o|
|   = +  +  = . . |
|  . =ooo ..      |
+----[SHA256]-----+
[root@gitlab ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC2iVGLEc+Yt6kb9CJP+AzR8R7v1HBAameILKrcVTVUDhR0xw5vBnWYXpfHIoxSQVk13Gzg6Ub1PGp8t+QB+w3nneOAGi4tvs1DfSAc3KjcE1RXMzZ6RH35QcWRI40OcX99cJOVm+VAsBjV+Qq4H57gWnrtkpnJZRddP9MRf+3fqX7q9ReYK3d93d5O8Y9tzo5rO+h9OJqwkElaCNeTxmy/lUZ7LRX4zV00uGI6zZ7xJWNlvXPEORrPOI0RKdcyeL3m5xaL/JfQs7diBwzkbCQQP7bdoSzp3kaWg0xJm4BkRtlHskb/ZC5JIEFHmkZ/n4K3j1Dxk8mtGmjfsnZ8yEAQ4ZDQBxQjxPJ7cMpgE6aBb+2mcYiEgogZQvNqA0EdZVRzQF+vHc1+UYBBpOQ14cTVumEQ/dl7ytyyMY3JhHQRi55zgAwBnKJjBKJpSPdZm2pYudMMb+VPKh6IZrNj+hqdp5Lfi96ASkCuzkVCyhVxZhD0X2J4orEtLhmzpen+nFk= root@gitlab.org

上传公钥到gitlab中

在这里插入图片描述

下载项目

[root@gitlab ~]# mkdir ran123
[root@gitlab ~]# git clone git@172.25.254.80:root/ran.git ran123
正克隆到 'ran123'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
接收对象中: 100% (3/3), 完成.[root@gitlab ~]# ls -R
.:
anaconda-ks.cfg  gitlab-ce-17.3.6-ce.0.el9.x86_64.rpm  ran  ran123./ran:
dir1  hao.txt  README.md./ran/dir1:./ran123:
README.md
[root@gitlab ~]# cd ran123/
[root@gitlab ran123]# ls
README.md
[root@gitlab ran123]# git remote -v
origin  git@172.25.254.80:root/ran.git (fetch)
origin  git@172.25.254.80:root/ran.git (push)#文件提交
[root@gitlab ran123]# echo jran > ran123
[root@gitlab ran123]# ls
ran123  README.md
[root@gitlab ran123]# git add ran123 
[root@gitlab ran123]# git commit -m "add ran123"
[main e0d88f3] add ran1231 file changed, 1 insertion(+)create mode 100644 ran123
[root@gitlab ran123]# git push -u origin main 
枚举对象中: 4, 完成.
对象计数中: 100% (4/4), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 265 字节 | 265.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
To 172.25.254.80:root/ran.git5a59d56..e0d88f3  main -> main
分支 'main' 设置为跟踪 'origin/main'

在这里插入图片描述

二 jenkins

2.1 jenkins 简介

在这里插入图片描述

  • Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
  • Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行

CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。

在这里插入图片描述

CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中

在这里插入图片描述

2.2 部署 jenkins

软件下载:https://www.jenkins.io/download/

jenkins需要部署在新的虚拟机中

[!WARNING]

jenkins需要部署在新的虚拟机中,建议最少4G内存,4核心cpu

#安装依赖包
[root@jenkins ~]# yum install fontconfig java-17-openjdk git#安装jenkins
[root@jenkins ~]# dnf install jenkins-2.479.1-1.1.noarch.rpm #启动jenkins
[root@jenkins ~]# systemctl enable --now jenkins.service#查看原始密码
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
66215362152d4644985c71965ed2b1ea

部署插件

浏览器访问172.25.254.90:8080

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[!NOTE]

建议修改admin的密码,在admin的设置中修改即可

2.3 jenkins 与gitlab的整合

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这个错误的原因是因为本机没有gitlab上的sshkey

[root@jenkins ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:RwdTvlA20uSJ7zrEnFLAz+k/18kRFcUf1HN0XH7SaU8 root@jenkins.org
The key's randomart image is:
+---[RSA 3072]----+
|       .  ++* .*X|
|        o  X.o =O|
|         ++.= .oE|
|         .=+ ..++|
|        S=..o   o|
|        ..*.   . |
|         o .. ..o|
|          ..o .o.|
|          .. o   |
+----[SHA256]-----+
[root@jenkins ~]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCqK8m8jjv1/47fV5iMqfBVF3yxCo/gmVlT/o/mVAMHpoPE/Ys+lBtNNVUgZpkY/CPVsWRcsU8AbNyTEiKzvlywIhvQHTKn/YIBHZ9qYTXJ4vtDB7fEHkcNhg7Jy2oRS5EKVndiGiYUNgVaNW7uHK5hQURLKci3DpQcagnZnGcXU14C35TFkLRn7t8ksgqYDDP+5Ue0d7dOmg2jDVQeRwNElDe2m8BMdNrvtGC7quuHIS5vUSRt8yor0C4WeTNE0jSCK289UIoRo4l8b5XsaDkLku9qL4Ny1BF/7vz69HKTlsw7oEiDUgQP0qMieV06mj7XosMqjd3OJPEIsfvL5oziayjKG+uETSXhZtXBT4WmJGNhgvXNcA8o6Prs8H+UxuOH7JJQAYatQ9eeZAPMOGSbae2zkz2N8XDIp2h/SOnduFo+7U8v3KU63kqTuBW0e6wWKdurbBdhxXRSTrUVrit6sMeC8mvuSPP/VIaFzK3eU2WErd8kiJX7TDrWrjqTh0U= root@jenkins.org

把此密钥添加到gitlab上即可

在这里插入图片描述

添加密钥凭据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

添加完成后报错依然存在,因为ssh首次连接主机是需要签名认证,需要手动输入yes

还有两太主机之间一定要做好解析 (/etc/hosts)

[root@jenkins ~]# vim /etc/ssh/ssh_config
Host *StrictHostKeyChecking no

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14722.html

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

相关文章

LeetCode 86.分隔链表

题目: 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 思路: 代码: /*** Definiti…

Qt/C++ 开源控件 可折叠的标签管理控件

在 Qt 开发中,许多项目需要处理标签管理功能,例如分类管理、标签筛选等需求。本文将分享如何利用 Qt/C 实现一个具备动态增删标签、展开折叠功能的控件。此控件由 TagWindow 和 TagItemWidget 两个类组成,前者负责整个标签管理窗口的布局与逻…

Jmeter中的监听器(三)

9--断言结果 功能特点 显示断言结果:列出所有断言的结果,包括通过和失败的断言。详细信息:显示每个断言的详细信息,如断言类型、实际结果和期望结果。错误信息:显示断言失败时的错误信息,帮助调试。颜色编…

七牛云上传图片成功,但是无法访问显示{error : document not found}

上传图片成功,但是访问不了的问题,直接把地址放进浏览器显示{error : document not found},直接访问 DCNF 404是符合预期的,因为还没有去空间复制外链,要访问实际存在的资源才可以的. 配置区域和访问域名 设置没问题了…

虚拟与现实交融,线上元宇宙会议应用场景有哪些?

随着科技的飞速发展,元宇宙技术正逐渐渗透到我们生活的各个领域,为企业会议、学术会议、行业展会以及文化娱乐等带来了前所未有的变革。线上元宇宙会议打破了地域和物理空间的限制,让人们能够在虚拟世界中实现跨时空的交互与合作。本文将深入…

构建高效在线商店:Spring Boot框架应用

1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前&#…

鸿蒙网络编程系列47-仓颉版UDP客户端

1. UDP通讯简介 本系列的第1篇文章《鸿蒙网络编程系列1-UDP通讯示例》中基于ArkTS语言在API 9的环境下演示了UDP通讯的基础用法,本文将使用仓颉语言在API 12的环境中实现类似的功能。这可能听起来有点不太现实,在ArkTS语言下可以利用kit.NetworkKit下的…

Redis与IO多路复用

1. Redis与IO多路复用概述 1.1 Redis的单线程特性 Redis是一个高性能的键值存储系统,其核心优势之一便是单线程架构。在Redis 6.0之前,其所有网络IO和键值对的读写操作都是由一个主线程顺序串行处理的。这种设计简化了多线程编程中的锁和同步问题&…

HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上) 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(下) 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上) 【…

API接口:助力汽车管理与安全应用

随着汽车行业的飞速发展,越来越多的汽车管理技术被应用到交通安全和智慧交通系统中。在这一过程中,API接口起到了至关重要的作用。通过API接口,我们可以实现诸如车主身份验核、车辆信息查询等功能,从而为汽车智慧交通发展与安全应…

C哈的刷题计划之输出数字螺旋矩阵(1)

1、盲听C哈说 都说数据结构与算法是编程的核心,它们两个是内功与心法😀,其它编程工具只是招式,学会了内功与心法,学习新事物(这里特指层出不穷的IT技术)就没有那么难了,实际上&#…

AD22Duplicate Net Names Wire问题

在验证的时候发现报了这个错误 我这个原理图都是用自定义的元件 只写在name引脚名字是会报这个错的 但是换成designator引脚标识就不会了 建议是name引脚名字和designator引脚标识都写 写成一样都行,就不会报这个错了,别空着

centos7上安装mysql

1.现查看虚拟机上有没有wget包,如果没有的话进行安装 yum install -y wget 2.进入MySQL :: Download MySQL Yum Repository下载mysql安装源 找到与linux相应的版本,复制地址,如果找不到地址,可以复制如下 3.下载mysql官方yum源 …

hadoop报错找不到主类

错误: (base) mpsmps3:~$ hadoop hadoop_map_redce-1.0-SNAPSHOT.jar MovieDriver /input/movies-to-be-predicted.txt Error: Could not find or load main class hadoop_map_redce-1.0-SNAPSHOT.jar解决办法: 1.输入命令 hadoop classpath配置好了ha…

使用 start-local 脚本在本地运行 Elasticsearch

警告:请勿将这些说明用于生产部署 本页上的说明仅适用于本地开发。请勿将此配置用于生产部署,因为它不安全。请参阅部署选项以获取生产部署选项列表。 使用 start-local 脚本在 Docker 中快速设置 Elasticsearch 和 Kibana 以进行本地开发或测试。 此设…

Day14 - CV项目实战:SAR飞机检测识别

论文原文: ​​​​​​SAR-AIRcraft-1.0:高分辨率SAR飞机检测识别数据集 - 中国知网 第一排的7张图片,普通人肉眼很难看出对应的是第二排的飞机。 还有上图里标注的飞机,外行根本看不明白,为什么这些是,其他的不是。…

Threejs 材质贴图、光照和投影详解

1. 材质和贴图 材质(Material)定义了物体表面的外观,包括颜色、光泽度、透明度等。贴图(Textures)是应用于材质的图像,它们可以增加物体表面的细节和真实感。 1.1材质类型 MeshBasicMaterial&#xff1a…

笔记整理—linux驱动开发部分(11)中断上下文

触摸屏分为两种,一种为电阻式触摸屏,另一种为电容式触摸屏。电阻式触摸屏(x、x-、y、y-、AD)有两种接口,一种为SOC自带的接口(miscinput或platform),第二种为外部IC,通过…

网络编程示例之开发板测试

编译elf1_cmd_net程序 (一)设置交叉编译环境。 (二)查看elf1_cmd_net文件夹Makefile文件。查看当前编译规则,net_demo是编译整个工程,clean是清除工程。 (三)输入命令。 &#xff0…

【GD32】(一) 开发方式简介及标准库开发入门

文章目录 0 前言1 开发方式选择2 标准库模板的创建3 遇到的问题和解决方法 0 前言 因为项目关系,需要使用GD32。之前对此早有耳闻,知道这个是一个STM32的替代品,据说甚至可以直接烧录STM32的程序(一般是同型号)&#x…