gitlab、jenkins安装及使用文档二

安装 jenkins

IP地址操作系统服务版本
192.168.75.137Rocky9.2jenkins = 2.450-1.1 jdk = 11.0.22 git = 2.39.3
192.168.75.138Rocky9.2gitlab-ce = 16.10.0

结合上文

jenkins安装

前期准备:
yum install -y epel-release
yum -y install net-tools  vim lrzsz wget git  yum-utils  telnet  unzip tar rsync
systemctl disable --now firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
准备开始安装
wget http://pkg.jenkins.io/redhat/jenkins.repo
mv jenkins.repo /etc/yum.repos.d/
yum -y install java 
rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keyyum install -y jenkins --nogpgcheck 
报错 :
[MIRROR] jenkins-2.451-1.1.noarch.rpm: Curl error (60): SSL peer certificate or SSH remote key was not OK for https://mirrors.jenkins.io/redhat/jenkins-2.451-1.1.noarch.rpm [SSL certificate problem: certificate is not yet valid]
[FAILED] jenkins-2.451-1.1.noarch.rpm: No more mirrors to try - All mirrors were already tried without success                                                           The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'yum clean packages'.
Error: Error downloading packages:jenkins-2.451-1.1.noarch: Cannot download, all mirrors were already tried without success问题原因:
请确保您主机的系统时间设置正确,包括日期、时间和时区。SSL 证书的有效性与当前系统时间密切相关。
如果	系统时间不正确,可能会导致证书无法验证。
处理:date
修改系统时间即可
date -s 2024/3/28 
date -s 17:38:59

报错:
Public key for jenkins-2.451-1.1.noarch.rpm is not installed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'yum clean packages'.
Error: GPG check FAILED处理:
vim /etc/yum.repo/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
enabled=1
gpgcheck=0

继续安装

yum install -y jenkins
修改配置文件
配置文件位置 不一定在哪 ,目前作者的配置文件是在 /usr/下,有的小伙伴是在/etc/下
/etc/sysconfig/jenkins 
/usr/lib/systemd/system/jenkins.servicevim  /usr/lib/systemd/system/jenkins.service
User=jenkins
Group=jenkins
# 在该配置文件中,找到 [Service] 部分,然后添加或修改 StandardOutput 和 StandardError 选项,
# 指定日志的输出路径。配置如下:
StandardOutput=file:/var/log/jenkins/jenkins.log
StandardError=file:/var/log/jenkins/jenkins.log
# 配置文件中有端口,如果8080端口冲突可以自定义修改,默认8080
Environment="JENKINS_PORT=8080"# 创建 log 日志目录
mkdir /var/log/jenkins/systemctl daemon-reload
systemctl restart jenkins
systemctl enable jenkins
安装 git 客户端
yum install -y git
git --version
whereis git
安装mvn
wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
tar -xf apache-maven-3.9.6-bin.tar.gz   
mv apache-maven-3.9.6 /usr/local/maven
vim /etc/profile
export MAVEN_HOME=/usr/local/maven/
export PATH=$PATH:${JAVA_PATH}:${MAVEN_HOME}/bin:source /etc/profile
mvn --version
访问地址:
http://192.168.75.137:8080

在这里插入图片描述

密码:more /var/lib/jenkins/secrets/initialAdminPassword

如果懒得自定义的话,直接安装推荐的插件就够用。

在这里插入图片描述
等待安装完成即可。

在这里插入图片描述

创建一个管理员账户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如果汉化不完全,一半中文一半英文,重启Jenkins就好了

在这里插入图片描述

创建任务

点击 新建item

关联上方的 gitlab项目名称(也可以自定义名称)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

报错处理:

在这里插入图片描述

创建SSH连接方式

点击添加,添加gitlab的私钥

在这里插入图片描述

在这里插入图片描述
选择完成之后报错解决。

创建HTTP连接方式

在这里插入图片描述

在这里插入图片描述

  • 以上两种连接方式(ssh、http)选择其中一种即可
编辑要拉取执行shell

在这里插入图片描述

#!/bin/bash
#action="$1" 
case $action in
'deploy')
# 目标目录路径TARGET_DIR="/data/www/diting/sources/admin/${BUILD_NUMBER}"echo "将当前jenkins项目的工作目录(git库的PHP代码)复制到指定目录"rsync -av --exclude='.git' ${WORKSPACE}/* $TARGET_DIR echo "创建vendor目录软连接"ln -s /data/www/diting/test-admin.vendor $TARGET_DIR/vendor echo "执行composer更新"cd $TARGET_DIR/usr/local/bin/composer update# echo "修改目录所有者"# chown -R gitlab-runner:gitlab-runner $TARGET_DIRecho "删除旧软连接"unlink /data/www/diting/test-adminecho "创建源码软连接"ln -s $TARGET_DIR /data/www/diting/test-adminecho "部署完成";;
# 
'rollback')echo "回滚操作"version="$2"echo "回滚版本 #$version"# 目标目录路径TARGET_DIR="/data/www/diting/sources/admin/$version"echo "源码目录 $TARGET_DIR"echo "检查源码目录"if [ ! -d $TARGET_DIR ]; thenecho "源码目录不存在了"exit 1fiecho "删除旧软连接"unlink /data/www/diting/test-adminecho "创建源码软连接"ln -s $TARGET_DIR /data/www/diting/test-adminecho "回滚完成"
;;
#
#*)
#    echo "无效的选项,请输入 'deploy' 或 'rollback'"
#    exit 1
#;;
esac

可以把脚本写到一个指定位置
然后再执行
也可以直接把脚本写到执行shell中。

在这里插入图片描述

创建目录:
mkdir -p /data/www/diting/
mkdir -p /data/www/diting/sources/admin/
mkdir -p /data/www/diting/test-admin.vendorchmod 755 /data/www/jenk-deploy.sh
chown -R jenkins.jenkins /data/www/jenk-deploy.sh
chown -R jenkins.jenkins /data/www/diting/
### 这一步可忽略 。。。。。。
安装 composeryum -y install php
php -v
cd /usr/local/bin/
curl -sS https://getcomposer.org/installer | php
mv composer.phar composer
chmod a+x /usr/local/bin/composer
[root@localhost ~]# composer______/ ____/___  ____ ___  ____  ____  ________  _____/ /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_//_/
Composer version 2.7.2# 因下载好的composer默认的下载地址是国外的,在下载的过程中网络不好或可能被墙,将下载的地址换成国内的地址即可实现加速。
# 即将配置信息添加到 Composer 的全局配置文件 config.json 中
composer config -g repo.packagist composer https://packagist.phpcomposer.com进入到项目目录
cd /data/www/diting/test-admin
/usr/local/bin/composer require
查看是否有报错
构建

点击保存,然后构建,点击 Build with Parameters

在这里插入图片描述

需求:将gitlab中更新代码,分发到两台web服务器中
一台是本机,一台是远端服务器

通过SSH发送文件或执行命令到远程服务器上
安装插件
  • 点击系统管理 —>插件管理—> Available plugins —> 搜索: publish over ssh –> 点击安装(install)
添加一台远程服务器
  • 点击系统管理 —》系统配置 —》在最下方找到 Publish over SSH 设置 (如图所示)

在这里插入图片描述

修改配置
  • 点击项目 —》配置 —》点击 构建后操作 —》选择 Send build artifacts over SSH

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

添加脚本
  • 在 Exec command 中 添加脚本,脚本如下
#!/bin/bash
#action="$1" 
case $action in
'deploy')
# 目标目录路径TARGET_DIR_copy="/data/www/diting/sources/admin/"    TARGET_DIR="/data/www/diting/sources/admin/${BUILD_NUMBER}"echo "将当前jenkins项目的工作目录(git库的PHP代码)复制到指定目录"
#    rsync -av --exclude='.git' ${WORKSPACE}/*  $TARGET_DIR rsync -av --exclude='.git' root@192.168.75.137:/data/www/diting/sources/admin/${BUILD_NUMBER}  $TARGET_DIR_copyecho "创建vendor目录软连接"ln -s /data/www/diting/test-admin.vendor $TARGET_DIR/vendor echo "执行composer更新"cd $TARGET_DIR/usr/local/bin/composer update# echo "修改目录所有者"# chown -R gitlab-runner:gitlab-runner $TARGET_DIRecho "删除旧软连接"unlink /data/www/diting/test-adminecho "创建源码软连接"ln -s $TARGET_DIR /data/www/diting/test-adminecho "部署完成";;
# 
'rollback')echo "回滚操作"version="$2"echo "回滚版本 #$version"# 目标目录路径TARGET_DIR="/data/www/diting/sources/admin/$version"echo "源码目录 $TARGET_DIR"echo "检查源码目录"if [ ! -d $TARGET_DIR ]; thenecho "源码目录不存在了"exit 1fiecho "删除旧软连接"unlink /data/www/diting/test-adminecho "创建源码软连接"ln -s $TARGET_DIR /data/www/diting/test-adminecho "回滚完成"
;;
esac
启动程序

在这里插入图片描述

查看结果

在这里插入图片描述

在这里插入图片描述

在服务器上查看
[root@localhost www]# ll -lrth  /data/www/diting/sources/admin/
total 0
drwxr-xr-x. 3 jenkins jenkins 105 Apr  7 14:52 1
drwxr-xr-x. 3 jenkins jenkins 105 Apr  7 14:53 2
drwxr-xr-x. 3 jenkins jenkins 105 Apr  7 14:57 3
..... (省略多个)
drwxr-xr-x. 3 jenkins jenkins 105 Apr  7 18:01 35
drwxr-xr-x. 3 jenkins jenkins 105 Apr  8 09:26 36
drwxr-xr-x. 3 jenkins jenkins 105 Apr  8 09:43 37
drwxr-xr-x. 3 jenkins jenkins 105 Apr  8 09:44 38
drwxr-xr-x. 3 jenkins jenkins 105 Apr  8 13:28 39
在服务器上会显示你所有完成的构建( 失败的并不会构建成功 )# 脚本中,先将程序拉取到  /data/www/diting/sources/admin/ 的目录下,然后软链到 test-admin中
# test-admin目录就是当前程序展示目录
[root@localhost www]# ll -lrth  /data/www/diting/
total 0
drwxr-xr-x. 2 jenkins jenkins  6 Apr  3 09:30 test-admin.vendor
drwxr-xr-x. 3 jenkins jenkins 19 Apr  7 14:46 sources
lrwxrwxrwx. 1 jenkins jenkins 33 Apr  8 13:28 test-admin -> /data/www/diting/sources/admin/39正常情况下,两台服务器的展示结果为一样。如果不一样,则错误,需要排查。
回滚操作

在这里插入图片描述

查看日志

在这里插入图片描述

查看服务器
[root@localhost www]# ll -lrth  /data/www/diting/
total 0
drwxr-xr-x. 2 jenkins jenkins  6 Apr  3 09:30 test-admin.vendor
drwxr-xr-x. 3 jenkins jenkins 19 Apr  7 14:46 sources
lrwxrwxrwx. 1 jenkins jenkins 33 Apr  8 13:28 test-admin -> /data/www/diting/sources/admin/39
[root@localhost www]#  ll -lrth  /data/www/diting/
total 0
drwxr-xr-x. 2 jenkins jenkins  6 Apr  3 09:30 test-admin.vendor
drwxr-xr-x. 3 jenkins jenkins 19 Apr  7 14:46 sources
lrwxrwxrwx. 1 jenkins jenkins 33 Apr  8 13:51 test-admin -> /data/www/diting/sources/admin/37
远程服务器
[root@gitlab ~]# ll -lrth  /data/www/diting/
total 0
drwxr-xr-x 3 jenkins jenkins 19 Apr  3 10:18 sources
drwxr-xr-x 2 jenkins jenkins 31 Apr  7 17:16 test-admin.vendor
lrwxrwxrwx 1 root    root    33 Apr  8 13:28 test-admin -> /data/www/diting/sources/admin/39[root@gitlab ~]#  ll -lrth  /data/www/diting/
total 0
drwxr-xr-x 3 jenkins jenkins 19 Apr  3 10:18 sources
drwxr-xr-x 2 jenkins jenkins 31 Apr  7 17:16 test-admin.vendor
lrwxrwxrwx 1 root    root    33 Apr  8 13:51 test-admin -> /data/www/diting/sources/admin/37
jenkins删除构建历史并重置构建序号
  • 系统管理 —> 工具和动作 --> 脚本命令行(Script Console) –> 输入脚本

println(Jenkins.instance.getJobNames()) //查看获取任务名列表
//要重置的任务名称
def jobName = Jenkins.instance.getJobNames()[0] //获取任务名
item = Jenkins.instance.getItemByFullName(jobName)
item.builds.each() { build ->
build.delete() //删除构建历史
}//重置构建序号
item.updateNextBuildNumber(1)

在这里插入图片描述

  • 結果為空(服务器中并不会删除记录)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【双指针】成最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 示例 1: 输入:[1,…

科技云报道:从“奇点”到“大爆炸”,生成式AI开启“十年周期”

科技云报道原创。 世界是复杂的,没有人知道未来会怎样,但如果单纯从技术的角度,我们总是能够沿着技术发展的路径,找到一些主导未来趋势的脉络。 从Sora到Suno,从OpenAI到Copilot、Blackwell,这些热词在大…

【微服务】------微服务架构技术栈

目前微服务早已火遍大江南北,对于开发来说,我们时刻关注着技术的迭代更新,而项目采用什么技术栈选型落地是开发、产品都需要关注的事情,该篇博客主要分享一些目前普遍公司都在用的技术栈,快来分享一下你当前所在用的技…

Java语言实现文件分割与合并

一: 题目: 写一个方法,将feige.exe文件分割为每份1MB大小的若干份(最后一份可以不满1MB), 存储在一个temp的文件夹中(每份文件名自己定义,例如1.temp 2.temp), 然后再写一个方法,将temp文件夹中的若干份合并为一个文件fg.exe 代码: main…

Linux查看系统配置信息的命令【lscpu】【free】【df】【uname】【lsblk】

目录 1.查看CPU信息【lscpu】 2.查看内存信息【free】 3.查看文件系统信息【df】 4.查看系统信息【uname】 知识扩展:Red Hat Enterprise Linux 和 Debian GNU/Linux 两者的发展介绍 知识扩展:Centos 和 ubuntu的区别 知识扩展:更多 …

51单片机入门_江协科技_25~26_OB记录的笔记_蜂鸣器教程

25. 蜂鸣器 25.1. 蜂鸣器介绍 •蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号 •蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器(开发板上用的无源蜂鸣器) •有源蜂鸣器:内部自带振荡源&a…

C语言 知识点 + 笔记(2w6千字 持续更新...)

前言 本篇以笔记为主的C语言详解,全篇一共十章内容,2万6千多字,会持续更新基础内容,争取做到更详细。多一句没有,少一句不行! 形而上学者谓之道,形而下学者谓之器 第 1 章 C语言的流程 (1) C程序经历的六个阶段 编辑(Edit)预处理(Preprocess)编译(Compile)汇编(Assemb…

llama2.c与chinese-baby-llama2语言模型本地部署推理

文章目录 简介Github文档克隆源码英文模型编译运行中文模型(280M)main函数 简介 llama2.c是一个极简的Llama 2 LLM全栈工具,使用一个简单的 700 行 C 文件 ( run.c ) 对其进行推理。llama2.c涉及LLM微调、模型构建、推理端末部署&#xff08…

Windows系统上运行appium连接iOS真机自动化测试

步骤: 1、windows安装tidevice工具 2、Mac系统打包安装WebDriverAgent(WDA)工具 3、安装Appium 4、连接iOS手机 iOS自动化的实现和执行都依赖Mac系统,因为需要通过Xcodebuild编译安装WDA (WebDriverAgent)到iOS设备中,通过WDA实现对被测应用进行操作。而Windows系统无…

汽车疲劳测试试验平台技术要求(北重厂家)

汽车疲劳测试试验平台技术要求通常包括以下几个方面: 车辆加载能力:测试平台需要具备足够的承载能力,能够同时测试多种车型和不同重量的车辆。 动力系统:测试平台需要具备稳定可靠的动力系统,能够提供足够的力和速度来…

# ABAP SQL 字符串处理

经常我都要在ABAP的sql语句中对字符串进行处理,现在就总结一下可以用到的方法 文章目录 字符串处理拼接字段运行结果 填充字符串运行结果 截取字符串 SUBSTRING运行结果 CAST转换类型程序运行结果 字符串处理 在SQL语句中,有时候会有需要拼接字段或者是…

无影云电脑不能连接到本机的调试串口的解决方案

目录 概述 解决方案 云端电脑中的操作 本地USBDK驱动程序的更新 概述 我从1月份开始使用阿里的无影云电脑进行嵌入式开发板的测试,主要的原因有两个:一是平时使用的笔记本资源过于紧张,二是方便移动办公,这样我只要平时拿着开…

SCI一区 | Matlab实现OOA-TCN-BiGRU-Attention鱼鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现OOA-TCN-BiGRU-Attention鱼鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现OOA-TCN-BiGRU-Attention鱼鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述程序…

HarmonyOS实战开发-如何使用 geolocation 实现获取当前位置经纬度

介绍 本示例使用 geolocation 实现获取当前位置的经纬度,然后通过 http 将经纬度作为请求参数,获取到该经纬度所在的城市。通过 AlphabetIndexer 容器组件实现按逻辑结构快速定位容器显示区域。 效果预览 使用说明 1.进入主页,点击国内热门城市,配送地址会更新为选择的城…

AI大模型探索之路-应用篇2:Langchain框架ModelIO模块—数据交互的秘密武器

目录 前言 一、概述​​​​​​​ 二、Model 三、Prompt 五、Output Parsers 总结 前言 随着人工智能技术的不断进步,大模型的应用场景越来越广泛。LangChain框架作为一个创新的解决方案,专为处理大型语言模型的输入输出而设计。其中,…

如何通过navicat连接SQL Server数据库

本文介绍如何通过Navicat 连接SQL Server数据库。如果想了解如何连接Oracle数据库,可以参考下边这篇文章。如何通过Navicat连接Oracle数据库https://sgknight.blog.csdn.net/article/details/132064235 1、新建SQL Server连接配置 打开Navicat软件,点击…

智过网:非安全专业能否报考注安?哪些专业可以报考?

近年来,随着社会对安全生产管理的日益重视,注册安全工程师(简称注安)这一职业逐渐受到广大从业人员的青睐。然而,对于许多非安全专业的朋友来说,他们可能会困惑:非安全专业是否可以报考注安&…

【VUE】Vue3+Element Plus动态间距处理

目录 1. 动态间距调整1.1 效果演示1.2 代码演示 2. 固定间距2.1 效果演示2.2 代码演示 其他情况 1. 动态间距调整 1.1 效果演示 并行效果 并列效果 1.2 代码演示 <template><div style"margin-bottom: 15px">direction:<el-radio v-model"d…

【状态机dp】【 排序 】 2809使数组和小于等于 x 的最少时间

本文涉及知识点 【状态机dp】 排序 LeetCode 2809. 使数组和小于等于 x 的最少时间 给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒&#xff0c;对于所有下标 0 < i < nums1.length &#xff0c;nums1[i] 的值都增加 nums2[i] 。操作 完成后 &…

在【Cencos7】中安装【Nacos】并适配【PostgreSQL】数据库

在【Cencos7】中安装【Nacos-2.3.0】并适配【PostgreSQL】数据库 安装JDK wget命令下载&#xff1a; wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz解压 tar -xzvf jdk-7u80-linux-x64.tar.gz将解压后的目录移动到/opt下 sudo mv jdk…