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

【DevOps】Jenkins部署

Jenkins部署

文章目录

  • Jenkins部署
    • 资源列表
    • 基础环境
    • 一、部署Gilab
      • 1.1、安装Gitlab
      • 1.2、修改配置文件
      • 1.3、加载配置文件
      • 1.4、访问Gitlab
      • 1.5、修改root登录密码
      • 1.6、创建demo测试项目
      • 1.7、上传代码
      • 1.8、验证上传的代码
    • 二、部署Jenkins所需软件
      • 2.1、部署JDK
      • 2.2、部署Tomcat
      • 2.3、部署Jenkins
      • 2.4、设置Jenkins插件更新源
    • 三、Jenkins初始化
      • 3.1、登录Jenkins页面
      • 3.2、选择插件安装方式
      • 3.3、创建管理员用户
      • 3.4、Jsenkins插件管理
      • 3.5、安装插件
      • 3.6、软件包安装插件
    • 四、Jenkins角色与权限管理
      • 4.1、全局安全配置
      • 4.2、角色
        • 4.2.1、角色种类
        • 4.2.2、设置角色
        • 4.2.3、添加角色
        • 4.2.4、创建用户
          • 4.2.4.1、添加用户
          • 4.2.4.2、绑定角色
        • 4.2.5、创建项目测试权限
          • 4.2.5.1、创建项目
          • 4.2.5.2、测试权限
    • 五、凭证管理
      • 5.1、凭据的种类
      • 5.2、添加用户密码类型的凭据
        • 5.2.1、添加凭据
        • 5.2.2、添加凭据参数
        • 5.2.3、使用凭据
          • 5.2.3.1、创建test01项目
          • 5.2.3.2、配置源码管理
          • 5.2.3.3、发布项目
      • 5.3、添加SSH类型的凭据
        • 5.3.1、Jenkins主机生成密钥对
        • 5.3.2、将公钥存放到gitlab
        • 5.3.3、Jenkins添加SSH凭据
        • 5.3.4、添加凭据参数
        • 5.3.5、测试凭据
          • 5.3.5.1、创建test02项目
          • 5.3.5.2、配置源码管理
          • 5.3.5.3、发布项目

资源列表

操作系统主机名配置IP
CentOS 7.9jenkins2C4G192.168.93.101
CentOS 7.9gitlab2C4G192.168.93.102

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/.*SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname jenkins
hostnamectl set-hostname gitlab

一、部署Gilab

1.1、安装Gitlab

  • 注意:
    • 本案例没有修改端口,直接使用了80端口,注意不要有冲突。
    • 如果不修改,在克隆项目的时候,给出的仓库链接使用的是gitlab.example.com,在局域网中使用起来不方便,还要修改成gitlab的ip地址。修改后就直接是gitlab的ip地址了。
[root@gitlab ~]# yum -y install policycoreutils-python
[root@gitlab ~]# rpm -ivh gitlab-ce-15.5.1-ce.0.el7.x86_64.rpm

1.2、修改配置文件

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.93.102'

1.3、加载配置文件

  • 前提是80端口没有被占用
  • 备注:
    • 重启:gitlab-ctl restart
    • 关闭:gitlab-ctl stop
    • 启动:gitlab-ctl start
    • 状态:gitlab-ctl status
    • 帮助:gitlab-ctl --help
# 加载配置文件时间会有点小漫长,请耐心等待
[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# netstat -anpt | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9536/nginx: master
# 查看状态
[root@gitlab ~]# gitlab-ctl status
run: alertmanager: (pid 9869) 80s; run: log: (pid 9755) 102s
run: gitaly: (pid 9858) 81s; run: log: (pid 9121) 194s
run: gitlab-exporter: (pid 9835) 82s; run: log: (pid 9695) 120s
run: gitlab-kas: (pid 9811) 84s; run: log: (pid 9383) 180s
run: gitlab-workhorse: (pid 9820) 84s; run: log: (pid 9518) 137s
run: logrotate: (pid 9055) 207s; run: log: (pid 9063) 206s
run: nginx: (pid 9536) 134s; run: log: (pid 9549) 131s
run: node-exporter: (pid 9830) 83s; run: log: (pid 9619) 125s
run: postgres-exporter: (pid 9953) 79s; run: log: (pid 9775) 96s
run: postgresql: (pid 9240) 189s; run: log: (pid 9335) 186s
run: prometheus: (pid 9843) 81s; run: log: (pid 9731) 108s
run: puma: (pid 9443) 152s; run: log: (pid 9452) 148s
run: redis: (pid 9085) 201s; run: log: (pid 9093) 200s
run: redis-exporter: (pid 9837) 82s; run: log: (pid 9713) 114s
run: sidekiq: (pid 9462) 146s; run: log: (pid 9488) 143s

1.4、访问Gitlab

  • 访问地址:
  • http://192.168.93.102
    • 默认账号:root
    • 默认密码:cat /etc/gitlab/initial_root_password | grep Password:
      在这里插入图片描述

1.5、修改root登录密码

  • 点击右上角用户头像,在下拉菜单中点Preferences,在左侧列表中开打password。本案例中使用的root密码为pwd12345,注意密码长度至少8位。
    在这里插入图片描述

1.6、创建demo测试项目

  • 创建一个项目名称叫demo
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.7、上传代码

[root@jenkins ~]# yum -y install git
[root@jenkins ~]# tar -zxvf BlueLight.git.tar.gz
[root@jenkins ~]# git clone http://192.168.93.102/root/demo.git
[root@jenkins ~]# mv -f BlueLight/* demo/
[root@jenkins ~]# cd demo/
[root@jenkins demo]# git config --global user.email "wzh@admin.com"
[root@jenkins demo]# git config --global user.name "wzh@wzh.com"
[root@jenkins demo]# git add .
[root@jenkins demo]# git commit -m "web"
[root@jenkins demo]# git push -uf origin main

1.8、验证上传的代码

在这里插入图片描述

二、部署Jenkins所需软件

  • Jenkins节点操作

2.1、部署JDK

[root@jenkins ~]# tar -zxvf jdk-11.0.16.1_linux-x64_bin.tar.gz
[root@jenkins ~]# mv jdk-11.0.16.1 /usr/local/java11[root@jenkins ~]# cat >> /etc/profile << 'EOF'
export JAVA_HOME=/usr/local/java11/
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
EOF[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# java -version
java version "11.0.16.1" 2022-08-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.16.1+1-LTS-1)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.16.1+1-LTS-1, mixed mode)

2.2、部署Tomcat

[root@jenkins ~]# tar -zxvf apache-tomcat-8.5.56.tar.gz
[root@jenkins ~]# mv apache-tomcat-8.5.56 /usr/local/tomcat

2.3、部署Jenkins

[root@jenkins ~]# yum -y install fontconfig
[root@jenkins ~]# mv jenkins2.401.1.war jenkins.war# 不需要手动解包,把war包移动到tomcat的项目目录中webapps中开启tomcat将会自动解压
[root@jenkins ~]# mv jenkins.war /usr/local/tomcat/webapps/
[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh

2.4、设置Jenkins插件更新源

  • 注意:default.json文件或updates目录需要jenkins初始化结束才能出来。此处需要稍等片刻。
[root@jenkins ~]# cd /root/.jenkins/updates/
[root@jenkins updates]# sed -i 's/https:\/\/www.jenkins.io/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json 
[root@jenkins updates]# sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

三、Jenkins初始化

  • 访问地址:http://192.168.93.101:8080/jenkins

3.1、登录Jenkins页面

  • 根据页面提示,复制Jenkins安装后初始的密钥
[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
72a19165668b4b1daec409d9edce6c4e

在这里插入图片描述

3.2、选择插件安装方式

  • 注意:如果有插件安装失败也没关系,因为安装插件需要网络,结束后可以点击重试。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.3、创建管理员用户

  • 本案例将初始的管理员账号和密码都设置为admin
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.4、Jsenkins插件管理

  • 在安装Jenkins时,选择默认安装插件会很慢,甚至会失败,因此我们可以配置插件源为国内的地址。

  • 进入Manage Jenkins——>Plugins——>Advancedsettings最下面有Update Site(升级站点),设置为如下链接,并点“提交”按钮

  • https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
    在这里插入图片描述

  • 然后重启Jenkins

# 关闭
[root@jenkins ~]# /usr/local/tomcat/bin/shutdown.sh# 开启
[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh

3.5、安装插件

  • 点击“Manage jenkins”——>“Plugins”——>“Avalableplugins”,输入要安装的插件,并勾选列出来的插件,然后点击安装。
  • 可以都去搜索一下防止插件没有安装
# 本课程内,可能会用的插件如下所示
Git Parameter
Git Pipeline for Blue Ocean GitLab
Blue Ocean
Blue Ocean Pipeline Editor Blue OceanCore JS
Pipeline SCM API for Blue Ocean Dashboardfor Blue Ocean
Build With Parameters extended Choice ParameterKubernetes
Kubernetes CLI Kubernetes CredentialsImage Tag Parameter Active Choices
SSH
ansible
Maven Integration Publish Over SSH
Role-based Authorization Strategy NodeJS
############################################################
Git Credentials
Credentials Binding
Dynamic Extended ChoiceParameter Plug-In Dynamic Parameter Plug-In
Pipeline
Pipeline: DeclarativeLocalization: Chinese (Simplified)
############################################################# 注意:在初始化如果没有安装好,此处可以进行手动安装,为其他项目的实施提供功能

3.6、软件包安装插件

  • 将本课程提供的软件包上传至jenkins服务器
# 第一个mv是备份的意思
[root@jenkins ~]# mv /root/.jenkins/plugins /root/.jenkins/plugins.old
[root@jenkins ~]# tar zxf jenkins-plugins.tar.gz
[root@jenkins ~]# mv plugins/ /root/.jenkins# 重启Tomcat
[root@jenkins ~]# /usr/local/tomcat/bin/shutdown.sh
[root@jenkins ~]# /usr/local/tomcat/bin/startup.sh

四、Jenkins角色与权限管理

  • 我们可以利用”Role-basedAuthorization Strategy“插件来管理Jenkins用户权限,在前面的插件安装中已经安装过次插件。

4.1、全局安全配置

  • “Dashboard”——>“ManageJenkins”——>“Security”——>“Authentication”
  • 将授权策略修改为“Role-Based Strategy”,并保存设置。
    在这里插入图片描述

4.2、角色

  • 为了更方便的为用户授权,jenkins中使用角色作为一类权限的容器。角色是一组相关权限的集合。可以为用户指定角色,而不是直接指定权限。
4.2.1、角色种类
  • Global roles:Global roles(全局角色)管理员等高级用户可以创建基于全局的角色
  • Item roles:针对某个或者某些项目的角色
  • Agent roles:节点相关的权限
4.2.2、设置角色
  • ”Dashboard“——>”Manage Jenkins“——>”Manage and AssingRoles“。点击”Manage Roles“

  • 本案例中我们添加三个角色:

    • baseRole:该角色为全局角色,这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错:用户名ismissing the Overall/Read permission
      • role1:该角色为项目角色。使用正则表达式绑定”my-itme01.*“,意思是只能操作名称为”my-item01‘开头的项目。
      • role2:该角色也为项目角色。绑定”my-item02“,意思是只能操作”my-item02“开头的项目。
4.2.3、添加角色
  • 添加Global roles
    在这里插入图片描述

  • 添加item roles
    在这里插入图片描述
    在这里插入图片描述

4.2.4、创建用户
4.2.4.1、添加用户
  • ”Dashboard“——>”Manage Jenkins“——>”Users“,在右上角点击”CreateUser“,创建用户。
  • 添加两个用户zhangsanlisi
    在这里插入图片描述

在这里插入图片描述

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

4.2.4.2、绑定角色
  • ”Dashboard“——“Manage Jenkins”——>”Manage and Assign Roles“,然后点击”Assign Roles“
  • 为zhangsan用户绑定baseRole和role1角色
    在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 为lisi用户绑定baseRole和role2角色
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.2.5、创建项目测试权限
4.2.5.1、创建项目
  • 用管理员的权限创建两个项目,名字分别是my-item01-zhangsanmy-item02-lisi

  • 创建zhangsan项目

  • ”Dashboard“——>”新建Item“——>”确定“按钮
    在这里插入图片描述
    在这里插入图片描述

  • 创建lisi项目

  • ”Dashboard“——>”新建Item“——>”确定“按钮
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

4.2.5.2、测试权限
  • 分别用zhangsanlisi的身份登录到系统
  • 可以发现,每个用户只能管理属于自己的角色范围内的项目
    在这里插入图片描述

在这里插入图片描述

五、凭证管理

  • 在许多第三方网站和应用程序可以与Jenkins进行交互,例如程序代码仓库,云存储系统和服务等。此类应用程序的系统管理员可以在应用程序中配置凭据以专供Jenkins使用。通常通过将访问控制应用于这些凭据来完成这项工作,以”锁定“Jenkins可用的应用程序功能区域。一旦Jenkins管理员(即管理Jenkins站点的Jenkins用户)在Jenkins中添加/配置这些凭据,Pipeline项目可以使用凭据与这些第三方应用程序进行交互。
  • 用管理员身份登录到Jenkins。要在Jenkins使用凭据管理功能,需要安装”CreadentialsBinding“插件,前面已经安装过此插件,这里不再安装
  • 凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。

5.1、凭据的种类

  • Jinkins提供了多种类型的凭据,使用与不同的业务需求,具体类型如下:

    • Username with password:用户名和密码
    • GitHub App:GitHub应用进行身份验证
    • GitLab API token:存储GitLab的用户给API token
    • OpenShift Username and password:存储OpenShift的用户名和密码
    • SSH Username with private key:使用SSH用户和密钥
    • Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
    • Secret text:需要保存的一个加密的文本串,如顶顶机器人或GitHun的api token
    • Certificate:通过上传证书文件的方式
  • 其中,常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH密钥)。接下来以使用Git工具到GitLab拉取项目源代码为例,演示Jenkins的如果管理GitLab的凭证。

  • 注意:为了让Jenkins支持从GitLab拉取源码,需要安装Git插件以及在CentOS 7系统上安装Git工具

  • 凭据的作用范围

    • 凭据具有与它们相关联的范围。这是一种表示它们如何才能被暴露的方式,Jenkins使用的主要范围有如下2种。
  • System(系统)

    • 顾名思义,这个范围与跟上下文,也就是Jenkins系统相关联。此范围中的凭据只被暴露给系统和后台任务,并且一般被用于连接到构建节点或代理节点等。
  • 全局

    • 全局范围是默认选项,通过用来确保Jenkins中的任务可以使用凭证

5.2、添加用户密码类型的凭据

5.2.1、添加凭据
  • ”Manage jenkins“——>”Credentials“,打开如下页面,并点击”全局“,进入全局凭据管理界面,如下图所示
    在这里插入图片描述

  • 在如下界面中,点击右上角的”Add Credentials“按钮,添加凭据
    在这里插入图片描述

5.2.2、添加凭据参数
  • 这里主要的内容有:

    • 凭据类型:Username with password
    • 范围:Global
    • 用户名:root(该账号是gitlab中添加的账号)
    • 密码:gitlab中为root用户设置的密码(本案例此处为wzh.2005,注意不是系统的root密码)
    • ID:选填(设置平局的唯一标识,不设置会自动分配一个唯一标识)
    • 描述:选填(凭据名称,此处最好添加一下,使用凭据的时候便于识别,不设置就是用用户名)
      在这里插入图片描述
  • 点击”Create“创建此凭据,添加结果如下:
    在这里插入图片描述

5.2.3、使用凭据
5.2.3.1、创建test01项目
[root@jenkins ~]# yum -y install git

在这里插入图片描述

在这里插入图片描述

5.2.3.2、配置源码管理

在这里插入图片描述

5.2.3.3、发布项目

在这里插入图片描述

  • 运行成功之后,如果没有报错,可以刷新页面,就可以看到绿色的标识了
    在这里插入图片描述

5.3、添加SSH类型的凭据

  • SSH类型的凭据可以使Jenkins在拉去gitlab中的代码时使用密钥对的方式,不仅实现了免密连接,同时也会对数据进行加密,是一种安全可靠的凭据方式。
    在这里插入图片描述
5.3.1、Jenkins主机生成密钥对
  • 在Jenkins主机上以root身份生成密钥对
# 一路回车即可
[root@jenkins ~]# ssh-keygen
5.3.2、将公钥存放到gitlab
# 查看公钥文件内容
[root@jenkins ~]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClBYGM15IosBfenQszhhjbet06ww1YeapOb0lv7M+o9npYYW5nZ9aKHNzYsHIydkJ/ihO+ohJJe+/3ZYHKHSfd2kyOGC2/wWn/lBvbZTinA0UlDZayM/41gEU0vlv2evlM4h3B1SKbWHTM6C/XjwUhBtyaa1rRaSiaCTUjPfKtZu9mviNMn8mxGPgeyjTghqE/CrM8iGGuFkYsowI2Z+bhai8mIKGri3eIGQvuLYgO5X7s9W/g94wJAgapf+8rNrOeU8r9Vl92O3rGO+0ry9eNg8fbY8zuzPN6qWe3GnNT9cHN8qmHBqb4mHDzTsCMDgfTss+8CzxEAxF7VOYpRb/t root@jenkins
  • 用root用户登录gitlab,点击右上角的头像,在下拉菜单中点”perferneces“,然后在左侧点击”SSH Keys“
    在这里插入图片描述

在这里插入图片描述

5.3.3、Jenkins添加SSH凭据
  • ”Manage jenkins“——>”Credentials“,打开如下页面,并点击”全局”,进入全局凭据界面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
5.3.4、添加凭据参数
  • 这里主要的参数有:
    • 类型:SSH
    • 范围:Global
    • ID:可选
    • 描述:可选
    • Username:root(这个密钥对是用root的身份生成的)
    • Private Key:添加root生成的私钥
# 查看私钥文件内容
[root@jenkins ~]# cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEApQWBjNeSKLAX3p0LM4YY23rdOsMNWHmqTm9Jb+zPqPZ6WGFu
Z2fWihzc2LByMnZCf4oTvqISSXvv92WByh0n3dpMjhgtv8Fp/5Qb22U4pwNFJQ2W
sjP+NYBFNL5b9nr5TOIdwdUim1h0zOgv148FIQbcmmta0Wkomgk1Iz3yrWbvZr4j
TJ/JsRj4Hso04IahPwqzPIhhrhZGLKMCNmfm4WovJiChq4t3iBkL7i2IDuV+7PVv
4PeMCQIGqX/vKzaznlPK/VZfdjt6xjvtK8vXjYPH22PM7szzeqlntxpzU/XBzfKp
hwam+Jhw807AjA4H07LPvAs8RAMRe1TmKUW/7QIDAQABAoIBAFvqCDGBdLhS9Mia
oj2NiFTfR0/OiqVoBtLvK3E67qNGvfhyNENGU/nTf7L1/HVc50cQilTZAuSJMqyS
jkscGDN6vr86emje+wJO5YE7DOYBbUbpHbGeQg5cpq9tA93yut725uoqo77w8wWa
oeMnlwzBPKiJ+SjAsMuzKzS48W1hDgr+CfTxjCY0/1RdazuGn5J2Fx841ZJ/JFgK
MtkVIpzd8f4pHdWIaPfLpCE2595tbQcJsu6ZDbUzHS0MBG3RUrMLqghriYHJkZmi
6YW2Fc7LOW/brw293IdM43myQUEmao8Wl/MWF19BB4En/p2dpGZnTcFTxAdv+q4z
Ow3KYCECgYEA1FjgQw0A1wm3SNVQbX1c/jGZrRily9AcMkFC8EGYQCYhxs0vyOyz
/vGtXivEu5eyyBGy2rSklFSJL/GjG87wUmd4MEAGSO1OYregnY1AtyyeuUpLrGL1
YqA/2E7lSH2ZBewNlbRpg6cetYV7wbpKjcCbxrp+N9+shDc4mqBzHnUCgYEAxvIJ
vk/oqYI5m6QGHT/Yd2Nh9nTmp4t7x5SQI4zc3bxIJGAg5MLr7ov+rmtusGr1SHzb
vhQfNWeWooaCiQzxuIEId4MSZq+BOrxKQl39jIdY9EKNroRU43BF2At9NNs0H3qu
gETUSTNi648Kt1vAgNBZIft85DipChIAnMuc3JkCgYAjqfWobUOp2iDlY6ZJbVez
/aKg1tXpwD8sFZfngCzRAVaE7CtNZKvqcq66dUFqfFTzkz1lzBckLnqICd5qKjxk
qqod+HLVxr12iP6512J6IU1bM2Y4QrqR4PY4HzAVF7seqoGxlgZurR/UPuIFLIOf
AS1omCPgwHlaD2g7WB1djQKBgQC9Wx6e/5vpy0Nduq7/JAe7CuLxG692hTKZcfQH
gkmu20inJr/oPQcnFCSiiyrdy9AO4JiewLQ7to8Pvot8Os/P1zDh3+WhyyZra1Aa
/y8XlLO8OaR1GQtbNz+jNLxFlOZ1l+WDvP95dOmQX6PJhhEiCizsRVxINQ3fwebH
Vp3E8QKBgHx/PQAlldjgPrUFs6xq0A6OCLtn6PWASBoFjh3SV4jXKUlY60Wg45H8
x60Kr44dAgvONbVFlyaUCl7nY78GeeMlCx7NtHktmyQDC5AL+3g2Dmfzfq7Klcc7
cKm534YYtALBTEVXsDalL9SP5JRnBqKPPzF7Wu88d/rEL7r1UaQ2
-----END RSA PRIVATE KEY-----

在这里插入图片描述

在这里插入图片描述

5.3.5、测试凭据
5.3.5.1、创建test02项目

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

5.3.5.2、配置源码管理
  • 如果报错以下错误可以使用Jenkins节点手动使用ssh登录一下
  • 在使用密钥对时,要提前在jenkins主机上生成gitlab主机的fingerprint,否则,此处会提示报错。错误信息如下:
  • 第一次连接的话可以看到提示:”Are yousure you want to continue connecting (yes/no)? yes“,输入yes并回车即可生成gitlab主机的fingerprint
[root@jenkins ~]# ssh root@192.168.93.102
The authenticity of host '192.168.93.102 (192.168.93.102)' can't be established.
ECDSA key fingerprint is SHA256:ulREvG0hrcgiCcK7+Tcbv+p0jxe7GDM8ZthK7bU3fMM.
ECDSA key fingerprint is MD5:4b:84:94:c0:62:22:76:ed:26:24:8e:46:c9:1e:03:85.
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '192.168.93.102' (ECDSA) to the list of known hosts.
root@192.168.93.102's password: 

在这里插入图片描述

在这里插入图片描述

5.3.5.3、发布项目

在这里插入图片描述

  • 运行成功之后,如果没有报错,可以刷新页面,就可以看到绿色的标识了
    在这里插入图片描述

相关文章:

【DevOps】Jenkins部署

Jenkins部署 文章目录 Jenkins部署资源列表基础环境一、部署Gilab1.1、安装Gitlab1.2、修改配置文件1.3、加载配置文件1.4、访问Gitlab1.5、修改root登录密码1.6、创建demo测试项目1.7、上传代码1.8、验证上传的代码 二、部署Jenkins所需软件2.1、部署JDK2.2、部署Tomcat2.3、部…...

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)

【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型&#xff08;敏感性分析方法&#xff09; 引言 该文章实现了一个可解释的神经网络回归模型&#xff0c;使用BP神经网络&#xff08;BPNN&#xff09;来预测特征输出。该模型利用七个变量参数作为输入特征进行训练。为…...

【Shell编程 / 4】函数定义、脚本执行与输入输出操作

文章目录 函数 与 脚本定义函数示例&#xff1a;简单的 Shell 函数函数参数返回值 脚本执行创建脚本执行脚本 输入输出输出&#xff1a;echo 和 printf输入&#xff1a;read 命令 命令行参数示例&#xff1a;传递参数 函数 与 脚本 在 Shell 编程中&#xff0c;函数和脚本是组…...

RK3588+麒麟国产系统+FPGA+AI在电力和轨道交通视觉与采集系统的应用

工业视觉识别系统厂家提供的功能主要包括&#xff1a; 这些厂家通过先进的视觉识别技术&#xff0c;实现图像的采集、处理与分析。系统能够自动化地完成质量检测、物料分拣、设备监控等任务&#xff0c;显著提升生产效率和产品质量。同时&#xff0c;系统具备高度的灵活性和可扩…...

MySQL 01 02 章——数据库概述与MySQL安装篇

一、数据库概述 &#xff08;1&#xff09;为什么要使用数据库 数据库可以实现持久化&#xff0c;什么是持久化&#xff1a;数据持久化意味着将内存中的数据保存到硬盘上加以“固化”持久化的主要作用是&#xff1a;将内存中的数据存储在关系型数据库中&#xff0c;当然也可以…...

运行framework7

安装 framework7 下载地址https://gitcode.com/gh_mirrors/fr/framework7-vue node 下载 https://nodejs.cn/#ionic 配置npm 的镜像源 npm config set registry https://registry.npmmirror.com 下载nvm 进行nvm管理https://www.downza.cn/soft/352547.html 我一开始使用node…...

【Web】软件系统安全赛CachedVisitor——记一次二开工具的经历

明天开始考试周&#xff0c;百无聊赖开了一把CTF&#xff0c;还顺带体验了下二开工具&#xff0c;让无聊的Z3很开心&#x1f642; CachedVisitor这题 大概描述一下&#xff1a;从main.lua加载一段visit.script中被##LUA_START##(.-)##LUA_END##包裹的lua代码 main.lua loca…...

实现自定义集合类:深入理解C#中的IEnumerable<T>接口

文章目录 介绍主要成员示例代码约束常见的约束类型示例代码介绍 在C#中,IEnumerable<T> 是一个泛型接口,用于表示可以被枚举的集合。它定义了用于遍历集合中元素的方法和属性。IEnumerable<T> 是 IEnumerable 的泛型版本,提供了类型安全的枚举功能。 当我们实…...

Compression Techniques for LLMs

Compression Techniques for LLMs 随着大型语言模型&#xff08;LLMs&#xff09;的迅速发展&#xff0c;提高其计算效率和存储效率成为研究的重要方向。为了实现这一目标&#xff0c;诸多压缩技术应运而生。本文将深入探讨几种有效的压缩技术&#xff0c;这些技术不仅能够降低…...

Nexus Message Transaction Services(MTS)

Nexus 系列交换机遇到以下情形时&#xff0c;可以尝试查看是否是 MTS 消息卡在缓冲区过多&#xff0c;因为 MTS 负责处理模块内以及跨模块&#xff08;包括跨管理引擎&#xff09;的各服务之间的消息路由和排队。 • CPU 高 • 命令行无响应、响应慢 • 控制平面中断 • 流量问…...

2025年Stable Diffusion安装教程(超详细)

StableDiffusion的安装部署其实并不困难&#xff0c;只需简单点击几下&#xff0c;几分钟就能安装好&#xff0c;不管是windows还是苹果mac电脑&#xff0c;关于StableDiffusion的各种安装方式&#xff0c;这片文章一一来给大家讲明白。&#xff08;所有安装资料都给大家整理好…...

力扣【SQL连续问题】

180. 连续出现的数字 SELECT DISTINCT if(a.num b.num AND b.num c.num,a.num,null) AS ConsecutiveNums FROM Logs a LEFT OUTER JOIN Logs b ON a.id1 b.id LEFT OUTER JOIN Logs c ON a.id2 c.id WHERE if(a.num b.num AND b.num c.num,a.num,null) IS NOT NULL603. 连…...

深圳市-地铁线路和站点名称shp矢量数据(精品)2021年-2030最新arcmap含规划路线内容测评分析

深圳市的地铁网络是城市公共交通系统的重要组成部分&#xff0c;随着城市的发展&#xff0c;其规模和覆盖范围也在不断扩大。这份"深圳市-地铁线路和站点名称shp矢量数据&#xff08;精品&#xff09;2021年-2030最新arcmap含规划路线.zip"压缩包提供了全面而详细的信…...

企业级网络运维管理系统深度解析与实践案例

企业级网络运维管理系统深度解析与实践案例 在当今这个信息化时代,企业网络系统的稳定运行和高效管理成为了业务持续发展和创新的关键。企业级网络运维管理系统作为支撑这一目标的基石,其重要性不言而喻。本文将深入探讨企业级网络运维管理系统的构建原则、关键组件、实施步…...

音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现

一、引言 从《音视频入门基础&#xff1a;MPEG2-PS专题&#xff08;3&#xff09;——MPEG2-PS格式简介》中可以知道&#xff0c;PS流由一个个pack&#xff08;包装&#xff09;组成。一个pack 一个pack_header 一个或多个PES_packet。pack_header中还可能存在system header…...

【问题记录】npm create vue@latest报错

1&#xff0c;错误日志 npm error code EPERM npm error syscall mkdir npm error path D:\Program Files\nodejs\node_cache\_cacache npm error errno EPERM npm error FetchError: Invalid response body while trying to fetch https://registry.npmjs.org/create-vue: EP…...

OpenGL材质系统和贴图纹理

上一篇文章当中笔者为大家介绍了风氏光照模型&#xff0c;相信大家也发现了光照着色器当中有设置有很多控制光照强度的参数&#xff0c;而所谓的材质系统就是我们可以人为的去调节这些参数&#xff0c;让一个物体的反光效果能够更加接近我们现实生活当中的一些物体。 材质系统…...

Markdown中类图的用法

Markdown中类图的用法 前言语法详解基本流程图几何图形节点默认的节点分离节点的ID与内容节点形状圆角形节点的语法圆形节点的语法。非对称节点语法菱形节点的语法。六角形节点的语法。平行四边形节点的语法。梯形节点的语法。 连接线基本的连接线语法。无向线段连接线。点状连…...

钓鱼攻击(Phishing)详解和实现 (网络安全)

钓鱼攻击&#xff08;Phishing&#xff09;详解和实现 钓鱼攻击是一种社会工程学攻击&#xff0c;攻击者通过伪装成可信任的实体诱使受害者泄露敏感信息&#xff0c;如用户名、密码、信用卡号等。以下详细介绍钓鱼攻击的原理、种类、实现方式&#xff0c;以及防御措施。 一、钓…...

window11 wsl mysql8 错误分析:1698 - Access denied for user ‘root‘@‘kong.mshome.net‘

&#x1f6a8; 错误分析&#xff1a;1698 - Access denied for user rootkong.mshome.net 这个错误是因为 MySQL 的 root 用户 使用 auth_socket 插件进行身份验证&#xff0c;而不是使用密码。因此&#xff0c;当你尝试从 远程主机 连接时&#xff0c;MySQL 会拒绝访问。 ✅ …...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...