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.mzph.cn/news/812289.shtml

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

相关文章

WSL访问adb usb device

1.Windows上用PowerShell运行: winget install --interactive --exact dorssel.usbipd-win 2.在WSLUbuntu上终端运行: sudo apt install linux-tools-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-too…

Gitea是一个开源、轻量级的自托管Git解决方案

Gitea介绍 Gitea是一个由Go语言编写的、轻量级的、自托管的Git解决方案,类似于GitHub、GitLab等平台。它是用Go语言编写的开源软件,提供了Git版本控制系统的基本功能,包括代码托管、问题跟踪、代码审查、Wiki等。Gitea的设计目标是简单易用、…

Swift中的枚举

在Swift中,枚举(Enumeration)是一种定义一组相关值的方式。枚举可以包含零个或多个成员,每个成员可以有关联的值。枚举可以用于定义一组相关的选项、状态或错误类型。 以下是Swift中定义枚举的示例: //定义一个简单的…

酷开科技OTT大屏营销:开启新时代的营销革命

随着互联网技术的不断发展和普及,大屏已经成为越来越多家庭选择的娱乐方式。在这个背景下,酷开科技凭借其强大的技术实力和敏锐的市场洞察力,成功地将大屏转化为一种新的营销渠道,为品牌和企业带来了前所未有的商业机会。 酷开科技…

爬虫jsoup解析工具之解析标题

package day01;import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.junit.Test; import java.net.URL; public class JsoupFirstTest {Testpublic void main() throws Exception {/** <!--jsoup解析工具所需依赖--><dependency><groupId>…

【数据结构与算法篇】双链表实现

【数据结构与算法篇】双链表实现&#xff08;近300行实现代码&#xff09; &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;数据结构与算法&#x1f345; &#x1f33c;文章目录&#x1f33c; 1. List.h 头文件的声明 2. List.c 源文…

上海计算机学会 2023年9月月赛 乙组T3 工程建设(拓扑排序)

第三题&#xff1a;T3工程建设 标签&#xff1a;拓扑排序题意&#xff1a;有 n n n个建设任务&#xff0c;第 i i i个建设任务完成时间为 t i t_i ti​。给定 m m m个前置任务要求&#xff0c;第 j j j条规则&#xff0c;若要开工 b j b_j bj​号任务&#xff0c;必须先完成 a…

etcd相关知识整理归纳 —— 筑梦之路

什么是etcd? Etcd 是 CoreOS 团队于2013年6月发起的开源项目&#xff0c;它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法&#xff0c;Etcd基于 Go 语言实现。 名字由来&#xff0c;它源于两个方面&#xff0c;unix的“/etc”文件…

安卓手机APP开发媒体内容部分__ExoPlayer支持的格式

安卓手机APP开发媒体内容部分__ExoPlayer支持的格式 目录 概述 可适配的流 DASH 光滑流 HLS 先进的容器的格式 RTSP 支持的采样格式 支持的网络类型 采样的格式 FFmpeg 代码库

软件概要设计说明书实际项目编制案例(直接套用)

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 3.2系统管理 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口…

【word2pdf】Springboot word转pdf(自学使用)

文章目录 概要整体介绍具体实现官网pom文件增加依赖 遇到的问题本地运行OK&#xff0c;发布到Linux报错还是本地OK&#xff0c;但是Linux能运行的&#xff0c;但是中文乱码 小结 概要 Springboot word 转 pdf 整体介绍 搜了一下&#xff0c;发现了能实现功能的方法有四种 U…

手写一个简单的 OrbitControls 轨道控制器

手写一个简单的 OrbitControls 轨道控制器 相信使用过THREE.JS的同学&#xff0c;都知道 OrbitControls 这个的轨道控制器&#xff0c;他是绕着一个观察点&#xff0c;来进行什么什么的… 反正就是那么个意思。 所以很明显OrbitControls的运动轨迹是一个球体&#xff0c;他是绕…

【我的代码生成器】React的FrmUser类源码

FrmUser 类的源码中&#xff1a;FrmUser btnSaveClick 等命名方式都是参考VB.Net的写法。 import React, { forwardRef, useImperativeHandle, useState, useEffect, } from "react"; import { makeStyles, TextField, Grid, Paper, Button, ButtonGroup, } from &q…

Ubuntu安装或卸载mariadb-server软件包

sudo apt install mariadb-server 检查MariaDB服务器的服务状态 service mariadb status 仅需要卸载MariaDB&#xff0c;而不是删除所有MariaDB相关软件包 sudo apt-get remove mariadb-server 从系统中完全删除MariaDB数据库&#xff0c;请按照以下步骤操作 sudo apt-get…

(delphi11最新学习资料) Object Pascal 学习笔记---第9章第3节( 真实世界中的异常处理)

9.3 真实世界中的异常处理 ​ 异常是一种很好的错误报告和错误处理机制&#xff08;不是在单个代码片段中&#xff0c;而是作为大型架构的一部分&#xff09;。一般来说&#xff0c;异常不应替代检查一个局部错误条件&#xff08;尽管有些开发人员会这样使用异常&#xff09;。…

AWTK 开源串口屏 MODBUS Server 模型

名称&#xff1a;modbus_server 功能&#xff1a;通过 modbus 协议提供服务&#xff0c;供远程客户端&#xff08;主站&#xff09;访问。 1. 创建 通过 modbus_server 创建模型。 示例&#xff1a; <window v-model"modbus_server" name"home_page&quo…

学习 Rust 的第二天:Cargo包管理器的使用

今天&#xff0c;我们来探讨一下 Cargo&#xff0c;这个强大而方便的 Rust 构建系统和包管理器。 Cargo 是一个稳健而高效的 Rust 构建系统和包管理器&#xff0c;旨在帮助管理项目依赖关系&#xff0c;并确保在不同环境下进行一致的构建。 使用 cargo 创建新程序&#xff1a…

npm install 报错权限问题

npm i 报错权限问题 npm install 报错权限问题 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: npm10.5.0, npm WARN EBADENGINE required: { node: ^18.17.0 || >20.5.0 }, npm WARN EBADENGINE current: { node: v18.15.0, npm: 9.5.0 } …

软考之零碎片段记录(十三)+复习巩固(八)

一、学习 1. 磁头读取数据块 读取 t 块的文件。 磁头从一个磁道移植相邻刺刀需m毫秒, 在磁盘上半连续存放&#xff0c;相邻数据块的平均移动时间为n 个刺&#xff0c;每块的旋转起达时间和传输时间时 h毫秒和y 毫秒。读文件需要多久。 (m * n h y) t 2. 原型模型 不适合大…

Unity面经(自整)——Unity基础知识

Unity基础知识 1. Image和RawImage的区别 Image比RawImage更耗性能。Image只能使用sprite属性的图片。而RawImage什么都可以使用 2. Unity3D中的碰撞器Collider和触发器Trigger的区别 碰撞器是触发器的载体&#xff0c;而触发器是碰撞器上的一个属性。 如果IsTrigger为fal…