西河刘卡车医 发表于 前天 10:54

CICD 连续集成与连续交付

目录
一 CICD是什么
1.1 连续集成(Continuous Integration)
1.2 连续摆设(Continuous Deployment)
1.3 连续交付(Continuous Delivery)
二 git工具利用
2.1 git简介
2.2 git 工作流程
三 摆设git
3.1 安装git
3.2 初始化
四 git的利用方法
4.1 常用方法
4.1 常用方法
4.2 git对于文件如何忽略
五 gitlab代码仓库
5.1 gitlab简介
5.2 gitlab 的摆设实行
5.2.1 摆设gitlab
5.2.2 设置gitlab
5.2.3 登陆gitlab
5.3 在gitlab中新建项目
六 jenkins
6.1 jenkins 简介
6.2 摆设 jenkins
6.3 jenkins 与gitlab的整合

一 CICD是什么

CI/CD 是指连续集成(Continuous Integration)和连续摆设(Continuous Deployment)或连续交付(Continuous Delivery)
1.1 连续集成(Continuous Integration)

连续集成是一种软件开发实践,团队成员频繁地将他们的工作集成到共享的代码仓库中。其主要特点包括:

[*]频繁提交代码:开发人员可以天天多次提交代码,确保代码库始终保持最新状态。
[*]自动化构建:每次提交后,自动触发构建过程,包括编译、测试、静态分析等。
[*]快速反馈:假如构建失败或测试不通过,能够快速地向开发人员提供反馈,以便及时修复问题。
1.2 连续摆设(Continuous Deployment)

连续摆设是在连续集成的基础上,将通过所有测试的代码自动摆设到生产情况中。其特点如下:

[*]自动化流程:从代码提交到生产情况的摆设完全自动化,无需人工干预。
[*]高频率摆设:可以实现频繁的摆设,使得新功能能够快速地提供给用户。
[*]风险控制:需要有强大的测试和监控体系来确保摆设的稳固性和可靠性。
1.3 连续交付(Continuous Delivery)

连续交付与连续摆设类似,但不肯定自动摆设到生产情况,而是随时可以摆设。其重点在于确保软件随时处于可发布状态。
CI/CD 的长处包括:

[*]进步开发效率:镌汰手动操纵和等待时间,加快开发周期。
[*]尽早发现问题:通过频繁的集成和测试,问题能够在早期被发现和办理。
[*]降低风险:镌汰了大规模摆设时大概出现的问题,进步了软件的质量和稳固性。
[*]加强团队协作:促进团队成员之间的沟通和协作,进步团队的整体效率。
常见的 CI/CD 工具包括 Jenkins、GitLab CI/CD、Travis CI 等。这些工具可以帮助团队实现自动化的构建、测试和摆设流程。
二 git工具利用


https://img-blog.csdnimg.cn/img_convert/79b8ca2c4e10e234522fd87cfc360cfb.png
2.1 git简介

Git 是一个分布式版本控制系统,被广泛用于软件开发中,以管理代码的版本和变更。主要特点:


[*]分布式


[*]

[*]每个开发者都有完备的代码仓库副本,这使得开发者可以在离线状态下进行工作,并且在网络出现问题时也不会影响开发。
[*]即使中心服务器出现故障,开发者仍旧可以在当地进行开发和查看项目历史。



[*]高效的分支管理


[*]

[*]Git 中的分支创建和切换非常快速和简朴。开发人员可以轻松地创建新的分支来进行新功能的开发或修复 bug,而不会影响主分支。
[*]归并分支也相对轻易,可以利用多种归并计谋来满足不同的需求。



[*]快速的版本回退


[*]

[*]假如发现某个版本存在问题,可以快速回退到之前的版本。
[*]可以查看每个版本的详细变更记载,方便相识代码的演进过程。



[*]强大的提交管理


[*]

[*]每个提交都有一个唯一的标识符,可以方便地引用和查看特定的提交。
[*]提交可以包罗详细的提交信息,形貌本次提交的更改内容。



[*]支持协作开发


[*]

[*]开发者可以将本身的更改推送到长途仓库,供其他开发者拉取和归并。
[*]可以处置惩罚多个开发者同时对同一文件进行修改的情况,通过归并冲突办理机制来确保代码的完备性。

Git必看秘笈:Git - Book
2.2 git 工作流程


https://img-blog.csdnimg.cn/img_convert/ef3c07c0719a7d0017abdc82041bdbbf.png
Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。


[*]已修改表示修改了文件,但还没生存到数据库中。
[*]已暂存表示对一个已修改文件的当前版本做了标记,使之包罗在下次提交的快照中。
[*]已提交表示数据已经安全地生存在当地数据库中。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
三 摆设git

3.1 安装git

#在rhel9的系统中默认自带git
# dnf install git-y
# mkdir zhang
# cd zhang/


#设定命令补全功能
# echo "source/usr/share/bash-completion/completions/git" >> ~/.bashrc
# source~/.bashrc 3.2 初始化

获取 Git 仓库通常有两种方式:


[*]将尚未进行版本控制的当地目录转换为 Git 仓库。
[*]从别的服务器克隆 一个已存在的 Git 仓库。比如: git clone
初始化版本库
# git init
提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示:        git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示:        git branch -m <name>
已初始化空的 Git 仓库于 /root/zhang/.git/

#设定用户信息
# git config --global user.name "haha"
# git config --global user.email "haha@qq.com"

# ls -a
....git
# ls ./.git/
branchesconfigdescriptionHEADhooksinfoobjectsrefs

#查看文件状态
# git status
位于分支 master

尚无提交

无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)

# git status -s                #简化输出
https://img-blog.csdnimg.cn/img_convert/30f10221e2147d9a989d09fde28e74e9.png
https://img-blog.csdnimg.cn/img_convert/61962b6633f9ff11e78162b2dc8c1072.png
.git目录是git跟踪管理版本库的,没事别瞎溜达

四 git的利用方法

4.1 常用方法


https://img-blog.csdnimg.cn/img_convert/b69b4437f9b2b84502f27174ef2d0b32.png
4.1 常用方法

#提交到暂存区
git add README.md

#提交暂存区的数据
git commit -m "add README.md"

#撤销修改
git checkout -- README.md

#从暂存区撤销
git restore --staged README.md

#撤销工作区中删除动作
git checkout -- haha.txt

#查看提交动作
git reflog   

#版本回退到删除之前
git reset 33c058b # echo haha > README.md
# git status
位于分支 master

尚无提交

未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容)
        README.md

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

# git status -s
?? README.md          #??        新建文件未添加到版本库

#提交到暂存区
# git add README.md
# git status -s
AREADME.md            #A 已添加到暂存区

#提交暂存区的数据
# git commit -m "add README.md"
add README.md
1 file changed, 1 insertion(+)
create mode 100644 README.md
# git status -s    #无任何显示,标识已经提交到版本库

#再次修改
# echo >> README.md

# git status -s
M README.md                        #右M 表示文件在工作区被修改

#提交到暂存区
# git add README.md
# git status -s
MREADME.md

#提交暂存区的数据
# git commit -m "README.md v2"
README.md v2
1 file changed, 1 insertion(+)
# git status -s

#查看已暂存和未暂存的修改变化
git diff
https://img-blog.csdnimg.cn/img_convert/941c41e5d311dae5c299df297a3ae8ec.png

再次修改
# vim README.md
haha

haha

# git status -s
M README.md             #右M 表示文件在工作区被修改

#撤销修改
# git checkout -- README.md
# cat README.md
haha

#从新修改
# echo haha> README.md
# git add README.md
# git status -s
MREADME.md          #左M表示文件已经在版本库中并被跟踪,

#从暂存区撤销
# git restore --staged README.md
# git status -s
M README.md

#从新提交
# git add README.md
# git status -s
MREADME.md

#更新
# git commit -m "update v1"
update v1
1 file changed, 1 deletion(-)
# git status -s


#更新文件
# echo haha >> README.md
# git add README.md
# echo haha >> README.md
# git status -s
MM README.md                  #MM表示有一部分在暂存区,还有一部分没有提交

#如果现在提交只能提交在暂存区中的部分
# git commit -m "update v2"
update v2
1 file changed, 1 insertion(+)
# git status -s
M README.md               #右M还在

#查看已暂存和未暂存的修改变化
# git diff
diff --git a/README.md b/README.md
index f247ec3..6b10261 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,4 @@
haha
haha
+haha
+haha

#跳过使用暂存区,只能在提交过的在版本库中存在的文件使用如果文件状态是“??”不能用此方法
# git commit -a -m "update v3"
update v3
1 file changed, 2 insertions(+)

#撤销工作区中删除动作
# touch haha.txt
# git add haha.txt
# git commit-m "add haha.txt"
add haha.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 haha.txt
# git status -s
# git checkout -- haha.txt
# ls
haha.txtREADME.md

#从版本库中删除文件
# git rm haha.txt
rm 'haha.txt'
# git status -s
Dhaha.txt      #左D表示文件删除动作被提交到暂存区

# git commit -m "delete haha.txt"
位于分支 master
无文件要提交,干净的工作区
# git status -s


#恢复从版本库中被删除的文件
# git log    #查看操作日志
commit 1282fe5f0af2892ec977a646cf54a519b4e15cb1 (HEAD -> master)
Author: haha <haha@qq.com>
Date:   Thu Sep 12 19:42:39 2024 +0800

    delete lee.txt

commit 33c058b8be9c0da32e4e508330ea323899b6191f
Author: haha <haha@qq.com>
Date:   Thu Sep 12 19:35:12 2024 +0800

    add haha.txt

commit b2ed96fb7c40a4581e412c8224507fe739a973be
Author: haha <haha@qq.com>
Date:   Thu Sep 12 19:34:34 2024 +0800

    update v3

commit 63411dcad59cdfcec1aa62d746d412eb9614c934
Author: haha <haha@qq.com>
Date:   Thu Sep 12 19:33:28 2024 +0800


# git reflog   #查看提交动作
1282fe5 (HEAD -> master) HEAD@{0}: commit: delete lee.txt
33c058b HEAD@{1}: commit: add haha.txt
b2ed96f HEAD@{2}: commit: update v3
63411dc HEAD@{3}: commit: update v2
e51ef6c HEAD@{4}: commit: update v1
8a9949f HEAD@{5}: commit: README.md v2
1f98d1a HEAD@{6}: commit (initial): add README.md

#版本回退到删除之前
# git reset 33c058b
4.2 git对于文件如何忽略

在做软件开发时对源码编译会产生一些临时文件,我们在提交时需要忽略这些临时文件
# mkdir dir1/
# touch dir1/.file2
# git status -s
?? dir1/

# echo .file1 > .gitignore
# git status -s
?? .gitignore
?? dir1/

# echo ".*" > .gitignore
# git status -s 五 gitlab代码仓库


https://img-blog.csdnimg.cn/img_convert/fc94608a80fb4a28fe1852e3ee223d3d.png
5.1 gitlab简介



[*]GitLab 是一个用于仓库管理系统的开源项目,利用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。
[*]GitLab 具有很多功能,比如代码托管、连续集成和连续摆设(CI/CD)、问题跟踪、归并请求管理等。它可以帮助开发团队更好地协作开发软件项目,进步开发效率和代码质量。
官网:https://about.gitlab.com/install/
中文站点: GitLab下载安装_GitLab安装和设置_GitLab最新中文官网免费版下载-极狐GitLab
官方包地点:gitlab/gitlab-ce - Packages · packages.gitlab.com
5.2 gitlab 的摆设实行

5.2.1 摆设gitlab

摆设gitlab需要内存大于4G
#在安装包之前需配置好软件仓库来解决依赖性
# yum install -y curl policycoreutils-python-utils openssh-server perl

# dnf install gitlab-ce-17.1.6-ce.0.el9.x86_64.rpm -y
https://img-blog.csdnimg.cn/img_convert/b7fa6a6e1e5624ebd9f7478be96578ba.png
5.2.2 设置gitlab

#修改配置文件
# cd /etc/gitlab/
# ls
gitlab.rb
# vim gitlab.rb
32 external_url 'http://172.25.254.80'

#修改配置文件后需利用gitlab-crt来生效,
# gitlab-ctl reconfigure

#执行命令成功后会把所有组件全部启动起来
https://img-blog.csdnimg.cn/img_convert/4a65271fec74c6a2df15bd829cd831bc.png
5.2.3 登陆gitlab


https://img-blog.csdnimg.cn/img_convert/126a367392b92e105489fb8ecf5dff2a.png
用户名默认为 root 。假如在安装过程中指定了初始密码,则用初始密码登录,假如未指定密码,则系统会随机天生一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并利用 root 用户名登录。
注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若利用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。
#查看原始密码
# 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: jN9lq6NSP8a2V+4n57djzWlEGP7RZ43DSIse8sXJGTQ=      #密码

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
https://img-blog.csdnimg.cn/img_convert/d1eabba6ca766ec324989455250836ea.png
登陆

https://img-blog.csdnimg.cn/img_convert/342a780b7ac717f9b86c9833eddbc27d.png
设置语言

https://img-blog.csdnimg.cn/img_convert/99eca5f12220be0a11d7e2825ab440bf.png
选项在下面
设置密码

https://img-blog.csdnimg.cn/img_convert/5cb9fbcfc31a17183f0e390bca4aa980.png

5.3 在gitlab中新建项目


https://img-blog.csdnimg.cn/img_convert/be6ec62f225c033bd92bff89a9a07c25.png

https://img-blog.csdnimg.cn/img_convert/9509606fe518829e021fe5758bdc6826.png
https://img-blog.csdnimg.cn/img_convert/fcb7891cfe7355e4fdfd7cf2352dd226.png

https://img-blog.csdnimg.cn/img_convert/f2ba4635b520b7d4635adb581a64f985.png
#生成sshd密钥
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:biLSHPSri2ATy4Hj4bjyPNznfK6Ih3x/1bAM7YoEq+c root@getlab-node1
The key's randomart image is:
+-------+
|               |
|               |
|    .    .       |
|..... o      |
|o+.o. S+ +   |
|=.=o...o= .    |
|oX.++.o.oo       |
|o+B+==oo+      |
|o.=*E===.      |
+---------+

# cd
# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCvOH0VlHeeMR8w3g677WL6WWQE3VMsS2fETfE/2/yKWXi+0iWXzxRZJq0NFxF3js0Uu64Yfobg94eO99FQcI6K6TfJQzaiMR/G3e0No5F0ydQ08U/Te1DzFv4lOoExWCd8EZg/MfmEmvgHhVdC3QmFyiZVPw/90ljCJErrZCrWPs9v8FhWEPWc4C6ZJ2ZFwgDQrNuTD7dnKCTTAgcFUZ40CSpIV72E07LerUdX7YgVvmnoGQ7V0Gs2AzOnDh+9Zwlpb9/NHWkgwRYTiLM12IH7bgSRUcsPs32yaOXf8msHwqCYm1kEysm4fTw06nTvYvDLwB20f3qDTEvV06aRz0jiw8eKlXG1r8z4UZVf6EY/8nT/BZv/HiFSyqZxHfYSV6zh/7qahOVbN1Fnr/52PFDYCmbJYPUXn0O3IXa9vHnwyQhw3k/DK/5feJxqDDMrO+8Ujlzx1iWRfBtt9J9CVtWnS296o5gsirg/jaUf2EmCtRqCn0crYXhCs6uGnolwWR8= root@getlab-node1

https://img-blog.csdnimg.cn/img_convert/2ac9b668f8cee03cc6bfcc5382c6dd4d.png
上传公钥到gitlab中

https://img-blog.csdnimg.cn/img_convert/529f74bc5b6319ae868b8722ef5b90bd.png
下载项目
# git clonegit@172.25.254.80:root/hahaha.git
正克隆到 'hahaha'...
The authenticity of host '172.25.254.80 (172.25.254.80)' can't be established.
ED25519 key fingerprint is SHA256:ov5ncy/2ZvbULX/pM00/gNAp6EIEv1j6jwYEnCtTeX8.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/)? yes
Warning: Permanently added '172.25.254.80' (ED25519) to the list of known hosts.
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), 完成.

# ls -R
./hahaha:
README.md

# cd hahaha/
# ls
README.md

# git remote -v
origin        git@172.25.254.80:root/hahaha.git (fetch)
origin        git@172.25.254.80:root/hahaha.git (push)

https://img-blog.csdnimg.cn/img_convert/15c3a60e8cb02e71d65adacd1f6ccbc9.png

https://img-blog.csdnimg.cn/img_convert/3619a9752d2cfed8e9bb64c2bd429edd.png

#文件提交
# cd hahaha/
# ls
README.md
# git remote -v
origin        git@172.25.254.80:root/hahaha.git (fetch)
origin        git@172.25.254.80:root/hahaha.git (push)
# echo haha1 > haha
# git add haha
# git commit -m "add haha"
add haha
1 file changed, 1 insertion(+)
create mode 100644 haha
# git push -u origin main
枚举对象中: 4, 完成.
对象计数中: 100% (4/4), 完成.
使用 4 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 260 字节 | 260.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0
To 172.25.254.80:root/hahaha.git
   92afb73..aff2e07main -> main
分支 'main' 设置为跟踪 'origin/main'。

https://img-blog.csdnimg.cn/img_convert/d12b3200625c4f38d7e005f2652996d5.png

https://img-blog.csdnimg.cn/img_convert/9312920d9e94dc2fe8dda37d633f8d98.png

六 jenkins


https://img-blog.csdnimg.cn/img_convert/631aa1ec907571be93379ce728cb7143.png
6.1 jenkins 简介



[*]Jenkins是开源CI&CD软件领导者, 提供凌驾1000个插件来支持构建、摆设、自动化, 满足任何项目的需要。
[*]Jenkins用Java语言编写,可在Tomcat等盛行的servlet容器中运行,也可独立运行
CI(Continuous integration连续集成)连续集成强调开发人员提交了新代码之后,立刻进行构建、(单位)测试。

https://img-blog.csdnimg.cn/img_convert/5b1444358d34eb73b79d25bc3bf68603.png
CD(Continuous Delivery连续交付) 是在连续集成的基础上,将集成后的代码摆设到更贴近真实运行情况(类生产情况)中

https://img-blog.csdnimg.cn/img_convert/c311d1c444417f6888c0acd309fbd563.png
6.2 摆设 jenkins

软件下载:Download and deploy
jenkins需要摆设在新的虚拟机中
jenkins需要摆设在新的虚拟机中,建议最少4G内存,4焦点cpu
#注意:两台主机做解析(jenkins和getlab)
# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.25.254.90   jenkins
172.25.254.80   getlab-node1

# /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.25.254.90   jenkins
172.25.254.80   getlab-node1
#安装依赖包
# yum install fontconfig java-17-openjdk git

#安装jenkins
# dnf install jenkins-2.476-1.1.noarch.rpm

#启动jenkins
# systemctl enable --now jenkins.service

#查看原始密码
# cat /var/lib/jenkins/secrets/initialAdminPassword
b2e1dcd091e744f88dc67f388e8bd88e
#清除文件的方法
# systemctl stop jenkins.service
# rm -rf /var/lib/jenkins/*
# systemctl start jenkins.service
#查看jenkins配置文件
# cd /var/lib/jenkins/
# ls
config.xml                        logs                      secrets
hudson.model.UpdateCenter.xml   nodeMonitors.xml          updates
hudson.plugins.git.GitTool.xml    plugins                   userContent
identity.key.enc                  queue.xml.bak             users
jenkins.telemetry.Correlator.xmlsecret.key
jobs                              secret.key.not-so-secret

# vim hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>

# cd updates/
# vim default.json
https://img-blog.csdnimg.cn/img_convert/2a229f14457f619974551d9220d29669.png
摆设插件
#由于网络问题,直接导入插件包
# tar zxf plugins.tar.gz -C /var/lib/jenkins/
# systemctl restart jenkins.service

https://img-blog.csdnimg.cn/img_convert/f2aac31cd7f3ff871674d32ac9c12c08.png


https://img-blog.csdnimg.cn/img_convert/1ab3533356b65c3643289ccc30ceffa3.png

https://img-blog.csdnimg.cn/img_convert/3c9aed1370ffa97900109f377bdec99d.png

https://img-blog.csdnimg.cn/img_convert/9c771428e1a3ed4b496e55a188a9d3fb.png

https://img-blog.csdnimg.cn/img_convert/3b8c9ee42215160979d4e9e18c942cf2.png

https://img-blog.csdnimg.cn/img_convert/c205e861423f3610fce47784e7ef5bd1.png
建议修改admin的密码,在admin的设置中修改即可
修改密码方法:

https://img-blog.csdnimg.cn/img_convert/dd5e3e0b5252d600ea21e508deaf4bfc.png

https://img-blog.csdnimg.cn/img_convert/26550133dbdd5e5217deba4bdf907e3b.png

https://img-blog.csdnimg.cn/img_convert/d3e98dd391dd4a67a0c4cb64e5c2c21f.png

6.3 jenkins 与gitlab的整合


https://img-blog.csdnimg.cn/img_convert/04cd7a42ae1403f7ec8b880ef7ad8f46.png

https://img-blog.csdnimg.cn/img_convert/99dac70a77bd38fda0a8ba8cd3216fe4.png

https://img-blog.csdnimg.cn/img_convert/9cb1f39c0e29105f8f75c7b8867dd6f4.png

https://img-blog.csdnimg.cn/img_convert/e978b527bfe7c5d06ae0fadfdca7aa52.png
这个错误的原因是由于本机没有gitlab上的sshkey
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:xzD7SdNTNuwG16h2hnchlhDwiQwqj08D6bz86Z1QY50 root@jenkins
The key's randomart image is:
+-------+
|       . ..o.    |
|    . . o o o..o |
|   + .oo o.+B..|
|o =   .=...O...|
|   + + +SE= * * .|
|. + + .+ + * . |
|   o o    o      |
|    . + .      |
|    .+ o         |
+---------+
# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7qa28BbQXEi94LUVEnSTo2O5cQbqQwi2sKErSi/UhbhMVyUIcm36ggx4x/AoaSClSWNRxEZp3g6uV+txxtk3CyL23P9WHAjOPHHOVU82PWBxRMzMdLQiXMzh70OF3VXBqRt6i0ZxpoKj03ZuW3gAo8T2mSVMiITMyHcAGKTNM9LjNrRVzNqxfYbYC5RmvGFPJ73y+JxRZVb9sAxWkDwpVm4J3ORDV2T4lR7z4itpnHymcYED9Xcu/j+P2psYMx04/1nKBVpjEMnUYAPBs2UiaYEF0u0/KDprX8Oh1VwVcImaNTQoCHwjYp0oCwLK0ThKt839Nl+Ixnmw5tzsYXy8gGgu4cS+LlnrPg8Ys2lb9Vrre3g7KRtn06UlDoV6wGXULrtUIN5B8KP3iy6DPkGbJ6MLLeulVeimzzxtQyrtacm9EHVrjZprqRE4QxO0bIO37tnmJOAxJ9GchxOSFQFrV4eL4ND9ZIRMlcGivrAtWHu832s6jtlC76RzW5XEiaCc= root@jenkins

https://img-blog.csdnimg.cn/img_convert/bacf71eb563082d0b3d6b91dee5c69f9.png
把此密钥添加到gitlab上即可

https://img-blog.csdnimg.cn/img_convert/bbb361c783a7f4cf1a34c44daef1d3a6.png
添加密钥凭据

https://img-blog.csdnimg.cn/img_convert/0838a9b0c738487eda59aa4a59447473.png

https://img-blog.csdnimg.cn/img_convert/befa386dc3dd9b46160ec6837ffe5190.png

https://img-blog.csdnimg.cn/img_convert/5492c3187d66ab56034d68f5833476de.png
查看密钥
# cat /root/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

https://img-blog.csdnimg.cn/img_convert/89136f049db087d6255cb88bc62082f5.png

https://img-blog.csdnimg.cn/img_convert/89a2add92bb400ddcc799a453a8c5741.png
添加完成后报错依然存在,由于ssh首次毗连主机是需要署名认证,需要手动输入yes

https://img-blog.csdnimg.cn/img_convert/3fdd6e5623c2aac98a1830cb525147b0.png
原因:没有输入这个yes
https://img-blog.csdnimg.cn/img_convert/e904770caf62c1342a62cdb6fb282544.png
另一种办理方法
# vim /etc/ssh/ssh_config
Host *
    StrictHostKeyChecking no

https://img-blog.csdnimg.cn/img_convert/4c24926bcb2e1755bcc3298e9c41120a.png
还有两太主机之间肯定要做好解析

返回欣赏器,革新一下

https://img-blog.csdnimg.cn/img_convert/83169175755976c542cc329e33cb763d.png

https://img-blog.csdnimg.cn/img_convert/caeea80fac11591325fced557b0e5bed.png

https://img-blog.csdnimg.cn/img_convert/f525dc7980cb02c303637e385e1ca2bb.png

https://img-blog.csdnimg.cn/img_convert/e33c31c47085cfcdd3b94e6d97ab4725.png

https://img-blog.csdnimg.cn/img_convert/3a85b2c215123f63929aba1f7dd2db29.png

查看效果

https://img-blog.csdnimg.cn/img_convert/a1f582a45251a9a6a5a87d5abaf829a5.png
等一分钟

https://img-blog.csdnimg.cn/img_convert/b8b8f6f6102fa0abda8f4e45dea11781.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: CICD 连续集成与连续交付